四则运算个人项目 最终版

基本要求

将10-20道四则运算题目写入文档,程序读取并输出题目,同时计算出正确结果。使用者对每道题目计算答案,答对进行提示,答错输出正确结果。分别记录回答正确、错误的数目并输出。


1.加减乘除四种运算全部出现

2.算式中要出现括号

3.出现真分数和假分数的运算

4.最少出现一个长度为10的四则运算(10个数字的混合运算)
 

加分项:

按照实现下列功能的数量和完成情况,进行相应加分

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的窗口演示。主要是因为自己拖延症大发,拖到要验收程序的时候才匆匆赶着写代码,所以只完成的项目的基本要求,没有做加分项目,这是本次项目的一大遗憾!!以后一定要早早动手,不能再犯拖延症!这样才能使自己的程序尽善尽美!

  

   最后,感谢老师们和助教学长的耐心指导和讲解!祝周末愉快~

原文地址:https://www.cnblogs.com/xaq0325/p/5271088.html