- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
1.项目设计题目及要求 题目:加减法小测验。面向小学1~2年级学生,随机选择两个整数和加减法形成算式要求学生解答。 功能要求:电脑随机出10道题,每题10分,程序结束时显示学生得分;确保算式没有超出1~2年级的水平,只允许进行100以内的加减法,不允许两数之和或之差超出0~100的范围,负数更是不允许的;每道题学生有三次机会输入答案,当学生输入错误答案时,提醒学生重新输入,如果三次机会结束则输出正确答案;对于每道题,学生第一次输入正确答案得10分,第二次输入正确答案得7分,第三次输入正确答案得5分,否则不得分;总成绩90以上显示“SMART”,80-90显示“GOOD”,70-80显示“OK”,60-70显示“PASS”,60以下“TRY AGAIN” 变化扩展: 1)允许用户初始选择题目类型:加法,减法,还是加减法都有。 2)评判完成后,显示答错的题,并给出正确答案。 3)若是一组题,可以重复使用,怎样处理? 4)界面与应用逻辑分离 5) 可以设置参数 2. 项目的面向对象设计 2.1 需求分析 1)分析系统的功能需求: 出题:随机出题。每题要求:确保算式没有超出1~2年级的水平,只允许进行100以内的加减法,不允许两数之和或之差超出0~100的范围,负数更是不允许的。 答题:每道题学生有三次机会输入答案,每输入一次答案,进行评价,若正确显示正确,若错误,显示错误,并提醒学生重新输入答案。若是第三次错误,则不再给机会输入答案。 答题评分:每道题,学生一次做对得10分,二次做对得7分,三次做对得5分,其余不得分; 总评分:每个测试出10题,10题做完过后给出总评分。总成绩90以上显示“SMART”,80-90显示“GOOD”,70-80显示“OK”,60-70显示“PASS”,60以下“TRY AGAIN” 2)系统流程: 先出完10题,然后按顺序做题。 首先显示一个题目,用户给出答案,进行评判。若做题结束,进入下一题,若没有结束,用户继续给出答案进行评判。 做完10题,计算总评分,并分等级给出评价。 流程如图1所示。 图1 系统流程图 2.2 总体设计 方案一: 1)识别类 问题中出现了题目,解答,测试等事物。将题目和解答的数据及功能合并,作为题目类。将测试作为一个类。 题目类:表示一个题目,及相关的解答状况。 测试类:对一次测试做一个包装,其中包括10个题目,以及测试的总分评价。 测试类和题目类之间是个1对多的包含关系。 2)详细设计 Question类设计 数据成员:两个操作数,运算符,运算结果;本题得分,答题次数,是否答对。 功能:负责出一道题并让用户做题,并评价。 接口: 生成题目。 答题(显示题目,支持做题,支持得分)。 返回成绩。 私有成员函数 生成题目数据。(私有) 判断题目是否符合要求。(私有) Test类设计 数据成员:多个Question类对象(用数组组织数据,用vector组织数据),题目数目,总分,等级,评价。 功能:创建测试题目,启动测试,总评价。 接口为: 创建题目(或放在构造函数中) 启动测试 返回总分 返回评判结果(获得评判) 方案一:实现 #includeiostream #includecstdlib #includectime #includeconio.h using namespace std; char type[2]={+,-}; int grade[3]={10,7,5}; char* evaluation[5]={SMART,GOOD,OK,PASS,TRY AGAIN}; const int MAX_TIMES=3; int getACount(int a,int b) { return rand()%(b-a)+a; } class Question { private: int a; int b; char c; int result; // int score; int times; int state; int results[MAX_TIMES]; void AQuestion() { a=getACount(0,100); b=getACount(0,100); c=type[getACount(0,2)]; if(c==+) result=a+b; else result=a-b; } bool testAQuestion() { if((result0)||(result100)) return false; else return true; } bool doOnceTest() { coutacb=; cinresults[t
您可能关注的文档
最近下载
- 第25课《人民解放战争》(共21张ppt).pptx
- T梁预制及架设安全专项施工方案.doc VIP
- 四川省成都市武侯区九年级(上)期中化学试卷.doc VIP
- 《浙江省城市轨道交通100kmh AH型电客车架修技术规范》.pdf VIP
- 2025内蒙古锡林郭勒盟正蓝旗招聘社区工作者18人考试备考题库及答案解析.docx VIP
- 杭州西奥电梯有机房客梯使用维护说明书.docx
- 江西中烟工业公司笔试试题2025.docx VIP
- 《GB/T 40484-2021城市轨道交通消防安全管理》.pdf
- 《我是中国公民》教学设计最终版.docx VIP
- 88J14-4(2006) 北京四合院建筑要素图.docx VIP
有哪些信誉好的足球投注网站
文档评论(0)