1、面向对象程序设计大作业-小学生四则运算测验1. 系统简介该系统开发平台为 Windows 7,程序设计语言采用 Visual C+6.0,程序运行平台为 Windows XP,程序通过调试运行,初步实现了设计目标。(1)利用 C+语言实现简易小学生四则运算测试系统的程序设计;(2)利用结构图和自行定义的函数进行相关的功能设计;(3)测试系统能随机产生数据进行测试.2. 基本要求根据 C+语言,将具体实现某个功能的函数设成小学生四则运算测试系统的公有函数成员,将数据利用自行定义的函数进行计算.随机选择两个整数进行加减乘除运算,给出算式要求学生作答。基本要求如下:(1)电脑随机出 20道题,每题
2、5分,程序结束时显示学生得分;(2)允许随机给出的数在 10以内。(3)每道题学生有三次机会输入答案,当学生输入错误答案时,提醒学生重新输入,如果三次机会结束则输出正确答案,该题不计入学生得分(4)对于每道题目,学生第一次输入正确答案得 5分,第二次输入正确答案得 4分,第三次输入正确答案得 3分,否则不得分;(5)20 道题全部答完以后,电脑给出学生总分,并将学生得分为 0的题目以及相应的正确答案再次输出。3. 总体设计小学生四则运算测试系统随机数的产生随机四则运算符号的产生随机试题的产生试题的显示试题结果的处理4. 详细设计表格 1RandShu- shu: int+ RandShu()
3、+ getShu(): int + setShu: voidRandFu- fu: int+ RandFu()+ getFu(): int ShiTi- RandShu s1- RandShu s2- RandFu f- r:double- t6: char+ ShiTi()+ solve(): double+ getResult(): double+ display():void5. 关键技术说明选择判断结构、循环结构、类、继承与派生、构造函数的应用。6. 源代码#include#include#include /标准库头文件using namespace std;#define N 10
4、/十以内的算数题目#define NUMBER 20 /题目个数/int send=0;class RandShuprivate:int shu;public:RandShu()shu=rand()%N;int getShu()return shu;void setShu(float d)shu=d;class RandFuprivate:int fu;public:RandFu()fu=rand()%4;int getFu()return fu;class ShiTi :public RandShu,RandFuprivate:RandShu s1,s2;RandFu f;double r;
5、char t6;public:ShiTi()r=solve();double solve();double getResult();void display();void ShiTi:display()coutf.getFu()case 0:cout=5)r=r+0.01;return r;double ShiTi:solve()switch(this-f.getFu()case 0:r=s1.getShu()+s2.getShu();break;case 1:r=s1.getShu()-s2.getShu();break;case 2:r=s1.getShu()*s2.getShu();br
6、eak;case 3:if(s2.getShu()=0)s2.setShu(1);r=(double)s1.getShu()/s2.getShu();break;return r;void head()coutnResulti;count+;while(nResulti!=ti.getResult()if(count=3)cout“n 正确结果:“ti.getResult()endl;if(nResulti=ti.getResult()countRight+;fenShu=fenShu+5-count+1;cout“*当前得分:“fenShu“*“endl;cout“按任意键,进入测试成绩结果
7、查看“endl;system(“pause“);system(“cls“);cout“测试成绩结果: “endl;for( i=0;iNUMBER;i+)cout“第“i+1“题:“;ti.display();coutnResulti;if(nResulti=ti.getResult()cout“ “endl;else cout“ “endl;cout“答对题数: “countRight“ 总得分:“fenShuendl;if(countRight!=NUMBER)cout“t 错误题目及答案:n“;for( i=0;iNUMBER;i+)if(nResulti!=ti.getResult()
8、cout“第“i+1“ 题:“;ti.display();coutti.getResult()endl;return 0;7. 测试(主界面及各功能模块的运行图及说明)1)初始界面2)错误结果及其处理3)测试界面4)测试成绩结果显示界面8. 系统评价及展望本系统可以实现基本的试题产生及对输入结果的处理,程序运行较为完善,系统运作流畅,界面相对友好,能很容易使操作者操作自如。但部分功能不完善,且界面有待更为完善、友好。9. 设计小结经过半个学期对“面向对象课程设计(C+) ”这门课的学习,我体会颇多,学到了很多东西。我加强了对 C+程序设计这门课程的认识,并且复习了自己上学期学习到的知识。这些都使我对计算机语言的学习有了更深入的认识。懂得了在进行编写一个程序之前,要有明确的目标和整体的设计思想。另外某些具体的细节内容也是相当的重要。这些宝贵的编程思想和从中摸索到的经验都是在编程的过程中获得的宝贵财富。这些经验对我以后的编程会有很大的帮助的,我要好好利用。另外由于时间的紧迫和对知识的了解不够广泛,造成了程序中还存在许多不足,功能上还不够完善。