个人项目--四则运算器

需求分析

*随机生成指定数量的表达式,存入*.txt文档中

从*.txt文档中导入算式,在屏幕中显示,并等待用户输入一个运算结果

待用户输入后,将用户结果与标准答案进行比对,并显示正确答案

当用户完成对所有的题目的解答后,程序给出用户作答的统计结果,正确率或错误率等等

规格说明

包含的运算符有:+,-,*,/,(,)等

包含的操作数有:整数,真分数,假分数

每个算式的长度不大于10(可在程序内设定)

总运算题目数不大于20(可根据用户需求自定)

设计

a)     程序整体流程设计

 四则运算 个人项目整理

b)     模块间及模块细节设计

四则运算 个人项目整理

  1. 中缀转后缀模块

处理中缀表达式中的括号,优先级等问题,并生成相应的后缀表达式。

 四则运算 个人项目整理

  2.后缀计算模块

将运算和2个操作数从一个长的后缀表达式中分离出来,调用二元运算模块进行计算,结果压栈。

 四则运算 个人项目整理

  3.二元运算模块

一个长的表达式计算最终均可归结为众多个二元运算的累加,因此核心的运算部分在此完成。

 四则运算 个人项目整理

c)     附加设计

表达式自动生成模块

                     自动生成没有重复的,数量,难度可控的表达式组(通过内部宏参数确定)。

                     主要流程设计,实际编程中又加入许多对过程控制的标志位。

  四则运算 个人项目整理    

综合测试

       分别在Console界面和MFC界面下进行了测试:

  1. 正确性检验:经随机挑选的运算式分别采用人工计算与电脑计算,结果相同。
  2. 健壮性检验:出现问题,除0问题开始时没有考虑。

       遇到的问题:

  1. 遇到了除0问题,例如3/(5-5)之类的生成的表达式。
  2. 冗余的括号问题:比如(9+9)-5+(6*3)…
  3. 加入了除0问题的判别与返回,增强了程序的健壮性。
  4. 使用MFC界面使用户操作更加直观,操作简洁。
  5. 加入了表达式属性设置功能。

维护

 

  1. 加入了除0问题的判别与返回,增强了程序的健壮性。
  2. 使用MFC界面使用户操作更加直观,操作简洁。
  3. 加入了表达式属性设置功能。

 

相关文章: