基本要求
将10-20道四则运算题目写入文档,程序读取并输出题目,同时计算出正确结果。使用者对每道题目计算答案,答对进行提示,答错输出正确结果。分别记录回答正确、错误的数目并输出。
1.加减乘除四种运算全部出现
2.算式中要出现括号
3.出现真分数和假分数的运算
加分项:
1.实现四则运算算式的自动生成
2.把程序变成一个网页程序
3.把程序变成一个Windows/Mac/Linux 电脑图形界面的程序
4.把程序变成一个智能手机程序
主要实现
1、struct number
为了实现分数运算,我定义了一个number的结构体,其种包含变量分子和分母,在运算中将所有数字转为分数(整数为分母=1的分数)。如图所示:
2、int op
判断运算符号,以实现相应的数值运算。功能简单,截图省略。
3、int GCD
计算最大公约数,分数约分是调用。如图所示:
4、int read
本函数完成读取文件里题目中的数字的功能,功能比较简单,截图省略。
5、void transform
完成功能:中缀表达式转换成等价的后缀表达式。
遵循原则如左图所示、举例如右图所示:
本函数代码段过长,截图省略。
6、void calculate
完成后缀表达式的计算的功能,主要依据如图所示:
本函数代码段过长,截图省略。
7、int correct
比对用户输入的答案与程序计算的答案,判对错,分别记录对错个数。
功能简单,截图省略。
运行与测试
测试内容与题号
加法:2、6、7、9、12、15
减法:1、3、5、8、13
乘法:5、13
除法:1、2、3、4、5、7、10、11、14、15
括号运算:3、5、7、13
分数与约分运算:2、3、5、11、14、15
负数运算:8、13
题干长度:5
答案长度:10
答案判对:1、2、4、5、6、7、8
答案判错并给出正确答案:3、9、10、11、12、13、14、15
总结与提高
本次个人项目完成比较顺利。主要思想基于大二学习的数据结构课程中的一次上机实验。那次只是完成整数的四则运算,这次个人项目与之相比,需增加如下功能:增加分数运算;增加四则运算题数;键盘输入答案;判断运算对错。
起初改为分数运算时,必须先后分别输入分子分母,即使答案为整数也必须输入分子,再输入分母为1,对用户来说输入过于繁琐。后来改为用户可以随意输入整数或分数,程序判断用户输入的答案是否有分数线,有则为分数,否则为分母为1的分数,即整数。这样简便了用户的输入方式,使得程序更加人性化。
本次个人项目虽然顺利完成,但我没能增加随机生成的功能,也没有给程序绘制图形界面,只有vs的窗口演示。主要是因为自己拖延症大发,拖到要验收程序的时候才匆匆赶着写代码,所以只完成的项目的基本要求,没有做加分项目,这是本次项目的一大遗憾!!以后一定要早早动手,不能再犯拖延症!这样才能使自己的程序尽善尽美!