实例:加减法小测验-面向对象

实例:加减法小测验-面向对象

ID:38697833

大小:179.00 KB

页数:15页

时间:2019-06-17

实例:加减法小测验-面向对象_第1页
实例:加减法小测验-面向对象_第2页
实例:加减法小测验-面向对象_第3页
实例:加减法小测验-面向对象_第4页
实例:加减法小测验-面向对象_第5页
资源描述:

《实例:加减法小测验-面向对象》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、1.项目设计题目及要求题目:加减法小测验。面向小学1~2年级学生,随机选择两个整数和加减法形成算式要求学生解答。功能要求:电脑随机出10道题,每题10分,程序结束时显示学生得分;确保算式没有超出1~2年级的水平,只允许进行100以内的加减法,不允许两数之和或之差超出0~100的范围,负数更是不允许的;每道题学生有三次机会输入答案,当学生输入错误答案时,提醒学生重新输入,如果三次机会结束则输出正确答案;对于每道题,学生第一次输入正确答案得10分,第二次输入正确答案得7分,第三次输入正确答案得5分,否则不得分;总成绩90以上显示“SMART”,80-90显示“GOOD”,70-80显示“OK”,

2、60-70显示“PASS”,60以下“TRYAGAIN”变化扩展:1)允许用户初始选择题目类型:加法,减法,还是加减法都有。2)评判完成后,显示答错的题,并给出正确答案。3)若是一组题,可以重复使用,怎样处理?4)界面与应用逻辑分离5)可以设置参数2.项目的面向对象设计2.1需求分析1)分析系统的功能需求:出题:随机出题。每题要求:确保算式没有超出1~2年级的水平,只允许进行100以内的加减法,不允许两数之和或之差超出0~100的范围,负数更是不允许的。答题:每道题学生有三次机会输入答案,每输入一次答案,进行评价,若正确显示正确,若错误,显示错误,并提醒学生重新输入答案。若是第三次错误,则不

3、再给机会输入答案。答题评分:每道题,学生一次做对得10分,二次做对得7分,三次做对得5分,其余不得分;总评分:每个测试出10题,10题做完过后给出总评分。总成绩90以上显示“SMART”,80-90显示“GOOD”,70-80显示“OK”,60-70显示“PASS”,60以下“TRYAGAIN”2)系统流程:先出完10题,然后按顺序做题。首先显示一个题目,用户给出答案,进行评判。若做题结束,进入下一题,若没有结束,用户继续给出答案进行评判。做完10题,计算总评分,并分等级给出评价。流程如图1所示。图1系统流程图2.2总体设计方案一:1)识别类问题中出现了题目,解答,测试等事物。将题目和解答的

4、数据及功能合并,作为题目类。将测试作为一个类。题目类:表示一个题目,及相关的解答状况。测试类:对一次测试做一个包装,其中包括10个题目,以及测试的总分评价。测试类和题目类之间是个1对多的包含关系。2)详细设计Question类设计数据成员:两个操作数,运算符,运算结果;本题得分,答题次数,是否答对。功能:负责出一道题并让用户做题,并评价。接口:l生成题目。l答题(显示题目,支持做题,支持得分)。l返回成绩。私有成员函数l生成题目数据。(私有)l判断题目是否符合要求。(私有)Test类设计数据成员:多个Question类对象(用数组组织数据,用vector组织数据),题目数目,总分,等级,评价

5、。功能:创建测试题目,启动测试,总评价。接口为:l创建题目(或放在构造函数中)l启动测试l返回总分l返回评判结果(获得评判)方案一:实现#include#include#include#includeusingnamespacestd;chartype[2]={'+','-'};intgrade[3]={10,7,5};char*evaluation[5]={"SMART","GOOD","OK","PASS","TRYAGAIN"};constintMAX_TIMES=3;intgetACount(inta,intb){

6、returnrand()%(b-a)+a;}classQuestion{private:inta;intb;charc;intresult;//intscore;inttimes;intstate;intresults[MAX_TIMES];voidAQuestion(){a=getACount(0,100);b=getACount(0,100);c=type[getACount(0,2)];if(c=='+')result=a+b;elseresult=a-b;}booltestAQuestion(){if((result<0)

7、

8、(result>100))returnfalse;else

9、returntrue;}booldoOnceTest(){cout<>results[times];if(results[times]==result)state=1;elsestate=0;times++;returnstate;}public:Question():a(0),b(0),c('+'),result(0),times(0),state(0),score(0)

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。