C语言课程设计报告及程序:小学生测验方新盛_第1页
C语言课程设计报告及程序:小学生测验方新盛_第2页
C语言课程设计报告及程序:小学生测验方新盛_第3页
C语言课程设计报告及程序:小学生测验方新盛_第4页
C语言课程设计报告及程序:小学生测验方新盛_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 EAST CHINA INSTITUTE OF TECHNOLOGY 长江学院信息工程系 程序设计综合课程设计报告 (2015/2016学年 第一学期) 学生姓名:方新盛 学生班级:1530501 学生学号:201530050116 指导教师: 戴晟辉 2016年 1 月 6 日 一课程设计目的及要求 1 二课程设计任务和内容 1 三设计说明 2 1主要流程图2 2课程设计思想 3 3详细设计 4 3.1 登陆模块 4 3.2 加法模块6 3.3 减法模块7 3.4 混合模块9 3.5运算结果 10 3.6使用软件 12 四课程设计感想 12 五参考文献 13 六附件(程序代码) 14 小学

2、生测验课程设计报告 一、课程设计目的及要求 (1)提高和加强自己的计算机应用与软件开发能力,使自己由初学者向专业的程 序员过渡。 (2 )培养自己独立分析问题、解决问题、查阅资料以及自学能力,以适应计算机 产业日新月异发展的形势,综合运用所学知识,解决实际问题,全面提高学生 的程序设计能力和开发能力。 (3)学习和掌握C+面向对象程序设计方法以及上机调试技巧, 为今后学习其它专 业课程打好坚实的基础。 (4)检测自己在这一学期对C+面向对象的学习及掌握情况。知道自己的不足,及 时的弥补。为以后的学习打下一定的基础,也为自己以后如何制定学习计划做一铺 垫。 二. 课程设计任务和内容 功能齐全:界

3、面操作灵活方便,至少实现以下基本功能: 电脑随机出10道题,每题10分,程序结束时显示学生得分; 确保算式没有超出12年级水平,只允许进行50以内的加减法, 不允许两数之和或之差超出050的范围,负数更是不允许的; 每道题学生有三次机会输入答案,当学生输入错误答案时,提 醒学生重新输入,如果三次机会结束则输出正确答案; 对于每道题目,学生第一次输入正确答案得10分,第二次输入 正确答案得7分,第三次输入正确答案得5分,否则不得分; 总成绩90分以上现实“ SMART, 8090分显示“ G00” 7080 分显示“ 0K, 6070分显示“ PASS,60分以下显示“ TRY AGAIN。 第

4、1页 选择 1 2 否 一次答对 是 否 二次答对 是 否 三次答对 0分 2 7分5分 二设计说明 1.主要流程图 10分 /输出得分 其他 开始 登陆模块 加法运算 混合运算 减法运算 Main函数 2.课程设计思想 在main()主函数中定义 STUDENT student;对象,并调用student.lnput();信 息输入,在登录模块程序采用了调用以及输入输出函数!当用户输入自己的学号以 及姓名开始使用本系统,进入登陆模块。屏幕显示菜单提示,用户可根据需要选择 相应功能。如下:请选择测试项目,加法请按1 ,减法请按2,混合运算请按任 意键。student.Test();进行选择,是

5、加法,减法,还是加减法都有,student.Test() 调用add()函数,sub函数,addsub函数,当用户选择1进行加法计算,选择2进 行加法运算,选择任意键进行加减混合运算选择相应的函数其思路相同,用 for(a=ra nd()%51,b=ra nd()%51;a+b50 | a+b50|a-b50| a-b50|a+b0;a=rand()%51,b=rand()%51;选择了 for(inti=1;i50|a+b50 | a-b0,a,b两数的和,差大 于0小于50,确保算式没有超出12年级水平,只允许进行50以内的加减法,不 允许两数之和或之差超出050的范围,负数更是不允许的;

6、再用 for(int j=1;jv=3;j+)控制三次答题机会,如果第一次学生答题错误系统会提示还有答题 错误,还有俩次机会,否则就给出第一次答题正确的分数10分,如果第二次学生 答题错误系统会提示还有答题错误,还有一次机会,否则就给出第三次答题正确的 分数7分,如果第三次学生答题错误系统会提示还有答题错误,没有做题机会,系 统给出正确的答案,否则就给出第三次答题正确的分数5分,实现这几部很简单采 用了 if ,else语句判断,scorei!=trueValue当输入值等于正确答案时,走else 语句判断得分情况,否则给出答题机会;每次做对一题flag=1 ,统计做对题的个数 zen=zen

7、+flag; sum 统计的分情况 sum=sum+scorei;当第一次做对题贝U first=1 表示仅一次做对题,first仁first1+first;统计仅一次做对题的个数,seco nd表示 俩次做对题,seco nd仁seco nd1+seco nd统计俩次做对题的个数,third表示三次做 对题third仁third1+third;统计三次做对题的个数,那么答错题的个数10-zen,而 答题的正确率为得分除以100乘以100% 3.详细设计 3.1登录模块 3.11登录模块程序 void mai n() cout二年级测试题e ndle ndl; coutvv * 小学数学测试软

8、件 e ndl; cout * n; STUDENT stude nt;/ 定义一个对象 while(1) stude nt.l nput(); 信息输入 stude nt.Test();/进行选择,是加法,减法,还是都有 cout ch; if(ch= n|ch=N) break; /= void STUDENT:I nput() coutvv请输入你的学号:; cinNum; coutvv请输入你的姓名:; cin Name; coutvv* * Stest; switch(Stest) case 1: Add(); Output(); break; case 2: Sub(); Outp

9、ut(); break; default: AddSub(); Output(); break; 3.12 主要完成功能为: 当用户输入自己的学号以及姓名开始使用本系统,进入登陆模块。屏幕显 示菜单提示,用户可根据需要选择相应功能。具体如下:请选择测试项目,加 法请按1,减法请按2,混合运算请按任意键。 3.1.3.主要使用思想: 在 main()主函数中定义 STUDENT student对象2,并调用 student.lnput();信 息输入,student.Test();进行选择,是加法,减法,还是加减法都有,在登录模 块程序采用了调用以及输入输出函数!关键代码STUDENstude

10、nt; /定义一个 对象2 while(1) stude nt.l nput();信息输入 stude nt.Test();进行选择,是加法,减法,还是都有 coutdo you want to contin ue?(Y/N); char ch; cin ch; if(ch= n|ch=N) break; 3.2加法运算模块 3.2.1. 主要完成功能为: 当用户选择了 1加法测试,屏幕随机出现10道加法测试题进行计算 3.2.2. 主要使用思想: 当用户选择 1进行加法计算时,则选择了STUDENT:add()函数for(int i=1;iv=10;i+) 函数控制题 10 道题,for(a

11、=rand()%51,b=rand()%51;a-b50 | a-b50 | a+b0 , a,b两数的和大于0小于50,确保算式没有 超出12年级水平,只允许进行50以内的加减法,不允许两数之和或之差超出050 的范围,负数更是不允许的;再用for(i nt j=1;j50 | a-b50 | a-b50|a+b50|a-b50 | a+b50 | a-b0;a,b两数的和,差大于 0 小于 50,确保算 式没有超出12年级水平,只允许进行 50以内的加减法,不允许两数之和或之差 超出050的范围,负数更是不允许的;再用for(intj=1;jv=3;j+)控制三次答题 机会,如果第一次学生

12、答题错误系统会提示还有答题错误,还有俩次机会,否则就 给出第一次答题正确的分数10分,如果第二次学生答题错误系统会提示还有答题 错误,还有一次机会,否则就给出第三次答题正确的分数7分,如果第三次学生答 题错误系统会提示还有答题错误,没有做题机会,系统给出正确的答案,否则就给 出第三次答题正确的分数5分,实现这几部很简单采用了if,else语句判断, scorei!=trueValue当输入值等于正确答案时,走else语句判断得分情况,否则 给出答题机会;每次做对一题 flag=1,统计做对题的个数zen=zen+flag; sum统计 的分情况sum=sum+scorei;当第一次做对题则fi

13、rst=1表示仅一次做对题, first仁first1+first;统计仅一次做对题的个数,seco nd表示俩次做对题, seco nd仁seco nd1+seco nd统计俩次做对题的个数,third 表示三次做对题 third仁third1+third;统计三次做对题的个数,那么答错题的个数10-zen,而答题 的正确率为得分除以100乘以100% 3.5每种运算的实验结果 3.5.1加法运算的实验结果 = (Designed by CMG 制、学藪学测试妖件盘呑遵立在* 1: B1 1:41+5 -46 2 j:10+31-41 3 p:3+33 =36 4 | :16+32=4B 5

14、-37+8 =45 6p:6+lL 误,你还有俩决机会,请重新输入 书丄0 f =32 0-2 签案嗇误,你还有最后一次肌会.请重新输入 10-?-:32 + 0=3 答案詹崖.很遇画尔没有做題的机会了 正确答臺是:亦, XXMXXMX KKXKXMT KJOTKK名充十 H J3XJi PCX 共做对卯个塾 请选择刮试项目,加迭请按1 ,诚迭请按2 ,混合运算请按其他任意数字键 次才做貝柚个题 袂才铉劝0*题 比谀的丁論率杲:90k 破狗扌幵舀綸/迭 半:朋HT 第20页 3.5.2减法运算的实验结果 F :U se rsc m gDeskto pDebu q 12 3.exe (Desig

15、ned bv CMG) 小学敎学测试较样曲 M JCX X JCJCBL K JCJIJMMU KMIC K JCJI! KJMJCX SKJCJI KJCXBOCXJOOtJOCX *Hr9iHC X K M M8 K K JB K K 理 M: X JC 用 丄松丽出且 201220030101 的学号 磁蠶:製光 请选择测试项目:加袪请按1 a诚袪请按2 ,混合运算请按其他任意数字键 1:41+5 =4 class STUDENT /定义一个 STUDENT 类 private: char Num20; 学号 char Name10; 姓名 int age;/年龄 int Score;/

16、成 绩 public: void lnput(); 信息输入 void Output(); 输出成绩 void Add(); void Sub(); void AddSub(); void Test();/进行选择,是加法,减法,还是都有 ; void main() coutvv * n; coutvv* 小学数学测试软件 * vvendl; cout一 二年级测试题 vvendl; coutvv( Designed by CMG ) vvendl; coutvv* 小学数学测试软件 * vvendl; coutvv * n; STUDENT student ; / 定义一个对象 while(

17、1) student.lnput();/ 信息输入 student.Test();/进行选择,是加法,减法,还是都有 coutvvdo you want to continue?(Y/N); char ch; cinch; if(ch=n|ch=N) break; /= void STUDENT:lnput() coutvv请输入你的学号: cinNum; coutvv请输入你的姓名: cinName; coutvv请输入你的年龄: cinage; coutvv*vvend l / void STUDENT:Test() coutvv请选择测试项目:加法请按1 ,减法请按2 ,混合运算请按其他

18、任意数 字键vvendl; int Stest; cinStest; switch(Stest) case 1: Add(); Output(); break; case 2: Sub(); Output(); break; default: AddSub(); Output(); break; /= void STUDENT:Add() 力卩法运算 int a,b,score10,trueValue,sum=0,zen=0,flag,first,second,third, first1=0,second1=0,third 仁0; /*数 a=rand()%51,b=rand()%51 控制

19、a,b 的值不超过 50 sum 累计分数,flag=1 标志答案正确,zen为累计正确题的个数first第一次正确的个数,second第二次 正确的个数,third第三次正确的个数,first1累计仅一次做对题的个数,second1 为俩次才能完成题的个数,third1为三次做对题的个数*/ for(int i=1;i50 | a+b0 ; a=rand()%51,b=rand()%51) for(int j=1;j50|a-bv0;a=rand()%51,b=rand()%51) for(int j=1;jv=3;j+)J 控制得分的情况 flag=0; first=0; second=0

20、; third=0; coutvv第vvivv个:vvavv-vvbvv=; trueValue=a-b; cinscorei; if(scorei!=trueValue) if(j=1) coutvv答案错误,你还有俩次机会,请重新输入 vvendl; scorei=0;清空上次错误答案 else if(j=2) coutvv答案错误,你还有最后一次机会,请重新输入vvendl; scorei=0;清空上次错误答案 else coutvv答案错误,很遗憾你没有做题的机会了 vvendl; coutvv正确答案是:vv : vvtrueValuevvendl; scorei=0; else i

21、f(j=1) scorei=10; flag=1; first=1; else if(j=2) scorei=7; flag=1; second=1; else scorei=5; flag=1; third=1; break; sum=sum+scorei; zen=zen+flag;/做对题的个数 first仁firstl+first; second仁secondl+second; third1=third1+third; Score=sum;总分数 coutvv * 统计 * vvendl; coutvv共做对vvzenvv个题vvendl; coutvv共做错vvlO-zenvv个题v

22、vendl; coutvv仅一次做对vvfirstlvv个题vvendl; coutvv俩次才做对vvsecondlvv个题vvendl; coutvv三次才做对vvthirdlvv个题vvendl; coutvv此次的正确率是:vvScorevv%vvendl; /= void STUDENT:AddSub() int a,b,c,score10,trueValue,sum=0,zen=0,flag,first,second,third, first1=0,second1=0,third 仁0; /*数 a=rand()%51,b=rand()%51 控制 a,b 的值不超过 50 sum

23、累计分数,flag=1 标志答案正确,zen为累计正确题的个数,first第一次正确的个数,second第二次正 确的个数,third第三次正确的个数,firstl累计仅一次做对题的个数,secondl为 俩次才能完成题的个数,thirdl为三次做对题的个数*/ 控制题10道题 for(a=rand()%51,b=rand()%51;a+b50| a+b50 | a-b0; a=rand()%51,b=rand()%51) c=rand()%3; /控制是进行加法还是减法操作 for(int i=1;i=10;i+) for(int j=1;jv=3;j+)J 控制得分的情况 flag=0;

24、first=0; second=0; third=0; if(c=1) coutvv第vvivv个:vvascorei; if(scorei!=trueValue) if(j=1) coutvv答案错误,你还有俩次机会,请重新输入 vvendl; scorei=0;清空上次错误答案 else if(j=2) coutvv答案错误,你还有最后一次机会,请重新输入vvendl; scorei=0;清空上次错误答案 else coutvv答案错误,很遗憾你没有做题的机会了 vvendl; coutvv正确答案是:vv : vvtrueValuevvendl; scorei=0; else if(j=1) scorei=10; flag=1; first=1; else if(j=2) 第20页 scorei=7; flag=1; second=1; else scorei=5; flag=1; third=1; break; else coutvv第vvivv个:vvavv-vvbvv=; trueValue=a-b; cinscorei; if(scorei!=trueValu

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论