您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 面向对象程序设计―小学生测验课程设计报告及程序
小学生测验课程设计报告一、课程设计目的及要求1.设计目的(1)提高和加强自己的计算机应用与软件开发能力,使自己由初学者向专业的程序员过渡。(2)培养自己独立分析问题、解决问题、查阅资料以及自学能力,以适应计算机产业日新月异发展的形势,综合运用所学知识,解决实际问题,全面提高学生的程序设计能力和开发能力。(3)学习和掌握C++面向对象程序设计方法以及上机调试技巧,为今后学习其它专业课程打好坚实的基础。(4)检测自己在这一学期对C++面向对象的学习及掌握情况。知道自己的不足,及时的弥补。为以后的学习打下一定的基础,也为自己以后如何制定学习计划做一铺垫。2.设计要求功能齐全:界面操作灵活方便,至少实现以下基本功能:电脑随机出10道题,每题10分,程序结束时显示学生得分;确保算式没有超出1~2年级水平,只允许进行50以内的加减法,不允许两数之和或之差超出0~50的范围,负数更是不允许的;每道题学生有三次机会输入答案,当学生输入错误答案时,提醒学生重新输入,如果三次机会结束则输出正确答案;对于每道题目,学生第一次输入正确答案得10分,第二次输入正确答案得7分,第三次输入正确答案得5分,否则不得分;总成绩90分以上现实“SMART”,80~90分显示“GOOD”,70~80分显示“OK”,60~70分显示“PASS”,60分以下显示“TRYAGAIN”。二.课程设计具体实1.课程设计框图及主要程序构架12任意键for(inti=1;i=10;i++)函数控制题10道题c=rand()%3;C=1加法C=2减法;if(score[i]!=trueValue)控制有三次输入的机会Else每次答对题的得分for(intj=1;j=3;j++)控制三次答题机会for(a=rand()%51,b=rand()%51;a+b50||a+b0||a-b50||a-b0;a=rand()%51,b=rand()%51)main()主函数While函数调用student.Test()函数调用student.Input()函数四个输出语句STUDENT::addSub()函数STUDENT::aad()函数STUDENT::Sub()函数for(a=rand()%51,b=rand()%51;a+b50||a+b0;a=rand()%51,b=rand()%51)for(a=rand()%51,b=rand()%51;a+b50||a+b0;a=rand()%51,b=rand()%51)结果2.课程设计设计思想在main()主函数中定义STUDENTstudent;对象,并调用student.Input();信息输入,在登录模块程序采用了调用以及输入输出函数!当用户输入自己的学号以及姓名开始使用本系统,进入登陆模块。屏幕显示菜单提示,用户可根据需要选择相应功能。体如下:请选择测试项目,加法请按1,减法请按2,混合运算请按任意键。student.Test();进行选择,是加法,减法,还是加减法都有,student.Test()调用add()函数,sub函数,addsub函数,当用户选择1进行加法计算,选择2进行加法运算,选择任意键进行加减混合运算选择相应的函数其思路相同,用for(a=rand()%51,b=rand()%51;a+b50||a+b0;a=rand()%51,b=rand()%51;是假发运算的控制,for(a=rand()%51,b=rand()%51;a-b50||a-b0;a=rand()%51,b=rand()%51;减法运算,for(a=rand()%51,b=rand()%51;a-b50||a-b0||a+b50||a+b0;a=rand()%51,b=rand()%51;选择了for(inti=1;i=10;i++)函数控制题,a=rand()%51,b=rand()%51;产生随机数的函数rand,rand()%51是产生的随机数都小于50,a+b50||a+b0||a-b50||a-b0,a,b两数的和,差大于0小于50,确保算式没有超出1~2年级水平,只允许进行50以内的加减法,不允许两数之和或之差超出0~50的范围,负数更是不允许的;再用for(intj=1;j=3;j++)控制三次答题机会,如果第一次学生答题错误系统会提示还有答题错误,还有俩次机会,否则就给出第一次答题正确的分数10分,如果第二次学生答题错误系统会提示还有答题错误,还有一次机会,否则就给出第三次答题正确的分数7分,如果第三次学生答题错误系统会提示还有答题错误,没有做题机会,系统给出正确的答案,否则就给出第三次答题正确的分数5分,实现这几部很简单采用了if,else语句判断,score[i]!=trueValue当输入值等于正确答案时,走else语句判断得分情况,否则给出答题机会;每次做对一题flag=1,统计做对题的个数zen=zen+flag;sum统计的分情况sum=sum+score[i];当第一次做对题则first=1表示仅一次做对题,first1=first1+first;统计仅一次做对题的个数,second表示俩次做对题,second1=second1+second统计俩次做对题的个数,third表示三次做对题third1=third1+third;统计三次做对题的个数,那么答错题的个数10-zen,而答题的正确率为得分除以100乘以100%,3.详细设计3.1登录模块3.11登录模块程序voidmain(){cout一二年级测试题endlendl;cout*☆☆☆☆☆☆☆小学数学测试软件☆☆☆☆☆☆☆☆☆*endl;cout计科0811张彩娟学号:35号endl;cout***********************************************\n;STUDENTstudent;//定义一个对象while(1){student.Input();//信息输入student.Test();//进行选择,是加法,减法,还是都有coutdoyouwanttocontinue?(Y/N);charch;cinch;if(ch=='n'||ch=='N')break;}}//==============================================================voidSTUDENT::Input(){cout请输入你的学号:;cinNum;cout请输入你的姓名:;cinName;cout**************************************************************endl;}//=============================================================voidSTUDENT::Test(){cout请选择测试项目,加法请按1,减法请按2,混合运算请按任意键。endl;intStest;cinStest;switch(Stest){case1:Add();Output();break;case2:Sub();Output();break;default:AddSub();Output();break;}}3.1.2.主要完成功能为:当用户输入自己的学号以及姓名开始使用本系统,进入登陆模块。屏幕显示菜单提示,用户可根据需要选择相应功能。具体如下:请选择测试项目,加法请按1,减法请按2,混合运算请按任意键[1]。3.1.3.主要使用思想:在main()主函数中定义STUDENTstudent对象[2],并调用student.Input();信息输入,student.Test();进行选择,是加法,减法,还是加减法都有,在登录模块程序采用了调用以及输入输出函数!关键代码STUDENTstudent;//定义一个对象[2]while(1){student.Input();//信息输入student.Test();//进行选择,是加法,减法,还是都有coutdoyouwanttocontinue?(Y/N);charch;cinch;if(ch=='n'||ch=='N')break;}3.2加法运算模块3.2.1.主要完成功能为:当用户选择了1加法测试,屏幕随机出现10道加法测试题进行计算。3.2.2.主要使用思想:四个输出语句While函数调用student.Input()函数main()主函数调用student.Test()函数当用户选择1进行加法计算时,则选择了STUDENT::add()函数for(inti=1;i=10;i++)函数控制题10道题,for(a=rand()%51,b=rand()%51;a-b50||a-b0;a=rand()%51,b=rand()%51产生)随机数的函数rand,rand()%51是产生的随机数都小于50,a+b50||a+b0,a,b两数的和大于0小于50,确保算式没有超出1~2年级水平,只允许进行50以内的加减法,不允许两数之和或之差超出0~50的范围,负数更是不允许的;再用for(intj=1;j=3;j++)控制三次答题机会,如果第一次学生答题错误系统会提示还有答题错误,还有俩次机会,否则就给出第一次答题正确的分数10分,如果第二次学生答题错误系统会提示还有答题错误,还有一次机会,否则就给出第三次答题正确的分数7分,如果第三次学生答题错误系统会提示还有答题错误,没有做题机会,系统给出正确的答案,否则就给出第三次答题正确的分数5分,实现这几部很简单采用了if,else语句判断,score[i]!=trueValue当输入值等于正确答案时,走else语句判断得分情况,否则给出答题机会;每次做对一题flag=1,统计做对题的个数zen=zen+flag;sum统计的分情况sum=sum+score[i];当第一次做对题则first=1表示仅一次做对题,first1=first1+first;统计仅一次做对题的个数,second表示俩次做对题,second1=second1+second统计俩次做对题的个数,third表示三次做对题third1=third1+third;统计三次做对题的个数,那么答错题的个数10-zen,而答题的正确率为得分除以100乘以100%,for(inti=1;i=10;i++)函数控制题10道题for(a=rand()%51,b=rand()%51;a+b50||a+b0;a=rand()%51,b=rand()%51)for(intj=1;j=3;j++)控制三次答题机会STUDENT::Sub()函数Else每次答对题的得分if(score[i]!=trueValue)控制有三次输入的机会3.3减法运算模块3.3.1.主要完成功能为:当用户选择了2减法测试,屏幕随机出现10道减法测试题进行计算。3.3.2.主要使用思想:当用户选择2进行加法计算时,则选择了STUDENT::Sub()[2]函数for(inti=1;i=10;i++)函数控制题10道题,for(a=rand()%51,b=rand()%51;a-b50||a-b0;a=rand()%51,b=rand()%51产生)随机数的函数rand[3],rand()%51是产生的随机数都小于50,a-b50||a-b0,a,b两数的差大于0小于50,确保算式没有超出1~2年级水平,只允许进行50以内的加减法,不允许两数之和或之差超出0~50的范围,负数更是不允许的;再用for(intj=1;j=3;j++)控制三次答题机会,如果第一次学生答题错误系统会提示还有答题错误,还有俩次机会,否则就给出第一次答题正确的分数10分,如果第二次学生答题错误系统会提示还有答题错误,还有一次机会,否则就给
本文标题:面向对象程序设计―小学生测验课程设计报告及程序
链接地址:https://www.777doc.com/doc-3261654 .html