C++课程设计.pdf

上传人:w*** 文档编号:72138129 上传时间:2023-02-08 格式:PDF 页数:30 大小:729KB
返回 下载 相关 举报
C++课程设计.pdf_第1页
第1页 / 共30页
C++课程设计.pdf_第2页
第2页 / 共30页
点击查看更多>>
资源描述

《C++课程设计.pdf》由会员分享,可在线阅读,更多相关《C++课程设计.pdf(30页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、课程设计(论文)任务书学院专业班一、课程设计(论文)题目小学生数学测试系统程序小学生数学测试系统程序二、课程设计(论文)工作自 20122012 年 6 6 月 1818 日起至 20122012年 6 6 月 2323 日止。三、课程设计(论文)地点:计算中心四、课程设计(论文)内容要求:1 1本课程设计的目的本课程设计的目的通过设计小学生数学测试系统程序,了解系统开发的需求分析、模块分解、编码测试、模块组装与整体调试的全过程,加深对C的理解与 Visual C环境2 2课程设计的任务及要求课程设计的任务及要求(1)主界面设计,选择练习或测试,按ESC 结束程序。(2)题型选择界面设计,选择

2、加、减、乘、除或混合运算,按ESC 返回主界面。(3)系统随机出题,运算数及结果均在100 以内,除法应能整除,显示算式。(4)练习时,系统随机出题,键入结果,正确和错误均有提示,出错时允许再输入,最多二次机会,若还不正确,给出答案。继续出题,按ESC,显示总题数,正确数和正确率。(5)测试时,系统自动出10 道题,每题只给一次机会,每题10 分,统计得分。结束后,给出总分,显示各题的对错信息,错误的给出答案。中间按ESC 键结束。显示已作题的对错信息,错误的给出答案,不显示得分,按任意键返回题型选择界面。2 2)创新要求:)创新要求:(1)限制答题时间。(2)测试时不能有重题。3 3)课程设

3、计论文编写要求)课程设计论文编写要求(1)要按照书稿的规格打印誊写课程设计论文(2)设计论文装订按学校的统一要求完成的使用;逐步熟悉程序设计的方法,并养成良好的编程习惯。4 4)课程设计进度安排)课程设计进度安排内容内容天数天数地点地点构思及收集资料 1图书馆编写与调试 3机房撰写论文 1图书馆、机房学生签名:2012 年 6 月 18 日课程设计课程设计(论文论文)评审意见评审意见(1)任务完成情况:优()、良()、中()、一般()、差();(2)工作量饱满:优()、良()、中()、一般()、差();(3)创新能力:优()、良()、中()、一般()、差();(4)论文规范:优()、良()、中

4、()、一般()、差();(5)回答问题:优()、良()、中()、一般()、差();综合评定等级:优()、良()、中()、及格()、不及格()评阅人:职称:2012 年 6 月 23 日华东交通大学课程设计报告目目录录一、功能要求.4二、开发环境.4三、程序分析.6四、程序详细内容.9五、运行结果.28六、课程设计心得.29华东交通大学课程设计报告一、功能要求一、功能要求(1)主界面设计,选择练习或测试,按ESC 结束程序。(2)题型选择界面设计,选择加、减、乘、除或混合运算,按ESC 返回主界面。(3)系统随机出题,运算数及结果均在 100 以内,除法应能整除,显示算式。(4)练习时,系统随机

5、出题,键入结果,正确和错误均有提示,出错时允许再输入,最多二次机会,若还不正确,给出答案。继续出题,按ESC,显示总题数,正确数和正确率。(5)测试时,系统自动出10 道题,每题只给一次机会,每题 10分,统计得分。结束后,给出总分,显示各题的对错信息,错误的给出答案。中间按ESC 键结束。显示已作题的对错信息,错误的给出答案,不显示得分,按任意键返回题型选择界面。第 4 页华东交通大学课程设计报告二、开发环境二、开发环境Windows2000MirosoftVisual C+6.0第 5 页华东交通大学课程设计报告三、程序分析三、程序分析本程序主要是由三成分组成,分别是一、练习,二、测试,三

6、、退出。在本程序的开头,首先编写了一个页面程序,为菜单程序,内容包括:测试、练习和退出。如果使用者按 1 则是进入练习部分,以此类推。最后若按下 Esc 则退出该系统,不执行其他的程序。在开头的部分中加入了新函数system(“cls”)(清屏函数)和getch()(输入任意键函数)一、练习:练习部分是由加、减、乘、除、混合运算和设定退出该部分程序的程序内容组成。在该部分的开头,有一个选择页面,共有六个选项:1 是加法运算,2 是减法运算,3 是乘法运算,4 是除法运算,5 是混合运算和 6 是退出该部分程序。该部分中也加入了清屏函数和任意键函数。在练习部分的每个小程序中主要是由四个内容组成的

7、。(1)循环;该部分主要是提供答题者能够进入无限答题的死循环,由 while()函数构成一个大循环。(2)设置随机数:该部分主要有函数 rand()%100 组成,产生两个随机数进行运算的准备。若是加法和乘法则在产生随机数后进行判断是否大于 100,若是,则跳过该次重新产生。为了避免除数为0,在产生除法中的随机数的时候,使rand()%100+1,就可以避免除数为 0。(3)输入程序:该部分是程序的主要部分。首先定义个字符数组,对输入的键用字符储存,分别对输入的两个键进行判断,若当输入键的ASCII 为 27 时,此时程序就退出做题,并统计出结果。若当输入的键不为 27 时,此时则将输入的键用

8、字符储存着,当输入完两个键时,用函数atoi()将字符转化为数字。如果当第一次的答案输入错误时,则有第二次机会进行再次答题,若再错,就给出正确的答案。再进行下一题。最后统计出正确率。第 6 页华东交通大学课程设计报告该部分主要用的函数有:srand(time()设置随机数,getch()任意键函数,atoi()将字符转化成数字的函数。(4)统计:对每次做题进行统计,将对的题数除以总的题数,计算出正确率。二、测试:练习部分也是由加、减、乘、除、混合运算和设定退出该部分程序的程序内容组成。在该部分的开头,有一个选择页面,共有六个选项:1 是加法运算,2 是减法运算,3 是乘法运算,4 是除法运算,

9、5 是混合运算和 6是退出该部分程序。该部分中也加入了清屏函数和任意键函数。该部分主要由三个部分组成。(1)产生随机数:该部分主要有函数 rand()%100 组成,产生两个随机数进行运算的准备。若是加法和乘法则在产生随机数后进行判断是否大于 100,若是,则跳过该次重新产生。为了避免除数为 0,在产生除法中的随机数的时候,使rand()%100+1,就可以避免除数为 0。(2)输入程序:该部分是程序的主要部分。首先定义个字符数组,对输入的键用字符储存,分别对输入的两个键进行判断,若当输入键的ASCII 为 27 时,此时程序就退出做题,并统计出结果。若当输入的键不为 27 时,此时则将输入的

10、键用字符储存着,当输入完两个键时,用函数atoi()将字符转化为数字。若是在中途退出,则统计出答对的题目和打错的题目并给出正确答案。该部分主要用的函数有:srand(time()设置随机数,getch()任意键函数,atoi()将字符转化成数字的函数。(3)统计:该部分设置了三个数组,主要用于存储答对的题目题号、答错的题目题号和答错题目的正确解答。当答完 10 道题时,程序就会给出相应的分数。三、退出:该部分只设置看字符判断,当输入键的 ASCII 为 27 时就退出整个答题系统。第 7 页华东交通大学课程设计报告四、流程图:一、练习三、退出二、测试菜单1、2、3、4、5、6、加减乘除混退法法

11、法法合出Esc 退出统计出答题的情况Esc 退出6、5、4、3、2、1、退混除乘减加出合法法法法Esc 退出统计出答题的情况Esc 退出第 8 页华东交通大学课程设计报告四、程序详细内容四、程序详细内容#include#include#include#defineme 100using namespace std;int main()while(1)char z;/输入 Z 的值 进行选项system(cls);/清屏函数cout菜单nendl;cout一、测试题请按:1 nnnendl;cout二、练习题请按:2nnnendl;cout三、退出请按:Escendl;z=getch();/输入

12、任意键的函数if(z=1)/当 Z=1时,进行测试训练while(1)/可以循环做题srand(time(0);/设置随机数的种子int a,b,c,d,q,m,max,min,x,i=0,j=0,k=0,p=0,f=0;int T10,F10,A10;/存放数组,用于存放对和错的题目,还有当错时的正确答案char ch2,c1,c2;system(cls);cout请按键选择您要进行的运算:endl;cout一、加法:1 nendl;cout二、减法:2 nendl;cout三、乘法:3 nendl;cout四、除法:4 nendl;cout五、混合:5 nendl;cout六、退出:Esc

13、 endl;m=getch();if(m=27)break;/当输入 Esc 键时就退出到主菜单if(m=1)/选择想要做的题目类型第 9 页华东交通大学课程设计报告while(i10)a=rand()%me;/产生 0-99 的随机数b=rand()%me;if(a+bme)/a+b 要小于 100i+;coutni、a+b=;c1=getch();if(c1=27)/此程序是用于能够在做题的过程中任意时间退出做题f=1;break;coutc1;ch0=c1;c2=getch();/输入任意键的函数if(c2=27)f=1;break;if(c2=13);elsecoutc2;ch1=c2

14、;c=atoi(ch);getch();c=atoi(ch);/将字符串转化成相应的数字if(c=a+b)Tj=i;/T 是用于存放正确题目的数组j+;第 10 页华东交通大学课程设计报告elseFk=i;/F 是用于存放错误题目的数组Ak=a+b;/A 是用于存放当错误时给出正确答案的数组k+;if(m=2)for(i=1;i=10;i+)/减法不需要判断是否会超过100a=rand()%me;/产生 0-99 的随机数b=rand()%me;if(ab)p=a;a=b;b=p;/使被减数一直大于减数coutni、a-b=;c1=getch();if(c1=27)f=1;break;cout

15、c1;ch0=c1;c2=getch();if(c2=27)f=1;break;if(c2=13);elsecoutc2;ch1=c2;c=atoi(ch);getch();第 11 页华东交通大学课程设计报告c=atoi(ch);if(c=a-b)Tj=i;j+;elseFk=i;Ak=a-b;k+;if(m=3)while(i10)a=rand()%me;/产生 0-99 的随机数b=rand()%me;if(a*bme)i+;coutni、a*b=;c1=getch();if(c1=27)f=1;break;coutc1;ch0=c1;c2=getch();if(c2=27)f=1;br

16、eak;if(c2=13)第 12 页华东交通大学课程设计报告;elsecoutc2;ch1=c2;c=atoi(ch);getch();c=atoi(ch);if(c=a*b)Tj=i;j+;elseFk=i;Ak=a*b;k+;if(m=4)for(i=1;ib?a:b;min=ab?a:b;min=ab?a:b;x=max%min;/防止除数为零/防止除数为零/取两数中的最大数/取两数中的最小数/为了使能够有 10 道题目得循环第 13 页华东交通大学课程设计报告coutni、max/min=;c1=getch();if(c1=27)f=1;break;coutc1;ch0=c1;c2=

17、getch();if(c2=27)f=1;break;if(c2=13);elsecoutc2;ch1=c2;c=atoi(ch);getch();c=atoi(ch);if(c=max/min)Tj=i;j+;elseFk=i;Ak=a/b;k+;第 14 页华东交通大学课程设计报告if(m=5)while(i10)q=rand()%4;/随机产生 0-3 之间的一个随机数,每一个随机数对应一个运算if(q=0)a=rand()%me;/产生 0-99 的随机数b=rand()%me;if(a+b100)i+;coutni、a+b=;c1=getch();if(c1=27)f=1;break

18、;coutc1;ch0=c1;c2=getch();if(c2=27)f=1;break;if(c2=13);elsecoutb)i+;coutni、a-b=;c1=getch();if(c1=27)f=1;break;coutc1;ch0=c1;c2=getch();if(c2=27)f=1;break;if(c2=13);elsecoutc2;ch1=c2;第 16 页华东交通大学课程设计报告c=atoi(ch);getch();c=atoi(ch);if(c=a-b)Tj=i;j+;elseFk=i;Ak=a-b;k+;if(q=2)a=rand()%me;b=rand()%me;if(

19、a*b100)i+;coutni、a*b=;c1=getch();if(c1=27)f=1;break;coutc1;ch0=c1;c2=getch();if(c2=27)f=1;break;第 17 页华东交通大学课程设计报告if(c2=13);elsecoutc2;ch1=c2;c=atoi(ch);getch();c=atoi(ch);if(c=a*b)Tj=i;j+;elseFk=i;Ak=a*b;k+;if(q=3)a=rand()%me+1;/防止除数为零b=rand()%me+1;/防止除数为零if(a%b=0)i+;coutni、a/b=;c1=getch();if(c1=27

20、)f=1;break;coutc1;ch0=c1;c2=getch();第 18 页华东交通大学课程设计报告if(c2=27)f=1;break;if(c2=13);elsecoutc2;ch1=c2;c=atoi(ch);getch();c=atoi(ch);if(c=a/b)Tj=i;j+;elseFk=i;Ak=a/b;k+;if(f=0)程序coutn 分数10*j;coutn 对endl;for(i=0;ij;i+)coutTi;coutendl;cout错endl;for(i=0;ik;i+)coutFi;/当在以上按出 Esc 键时,此时 f=0,进行以下第 19 页华东交通大学

21、课程设计报告coutn 答案是:endl;for(i=0;ik;i+)coutFi、Aiendl;cout按任意键继续;getch();/按下任意键 清屏if(z=2)while(1)int a,b,i=0,j=0,k,c,m;char c1,c2,ch2;cout练习;system(cls);/清屏函数cout请按键选择您要进行的运算:endl;cout一、加法:1 nendl;cout二、减法:2 nendl;cout三、乘法:3 nendl;cout四、除法:4 nendl;cout五、混合:5 nendl;cout六、退出:Esc endl;m=getch();if(m=27)brea

22、k;srand(time(0);/设置随机数的种子if(m=1)while(1)a=rand()%me;/产生 0-99 的随机数b=rand()%me;if(a+b100)coutna+b=;c1=getch();if(c1=27)break;coutc1;ch0=c1;第 20 页华东交通大学课程设计报告c2=getch();if(c2=27)break;if(c2=13);elsecoutc2;ch1=c2;c=atoi(ch);getch();c=atoi(ch);i+;if(c=a+b)j+;cout正确;elsecout错误;coutna+b=;c1=getch();if(c1=2

23、7)break;coutc1;ch0=c1;c2=getch();if(c2=27)break;if(c2=13);elsecoutc2;ch1=c2;c=atoi(ch);getch();c=atoi(ch);i+;第 21 页华东交通大学课程设计报告if(c=a+b)j+;cout正确;elsecout错误;coutn正确答案是:b)coutna-b=;c1=getch();if(c1=27)break;coutc1;ch0=c1;c2=getch();if(c2=27)break;if(c2=13);elsecoutc2;ch1=c2;c=atoi(ch);getch();c=atoi(

24、ch);i+;第 22 页华东交通大学课程设计报告if(c=a-b)j+;cout正确;elsecout错误;coutna-b=;c1=getch();if(c1=27)break;coutc1;ch0=c1;c2=getch();if(c2=27)break;if(c2=13);elsecoutc2;ch1=c2;c=atoi(ch);getch();c=atoi(ch);if(c=a-b)cout正确;elsecout错误;coutn正确答案是:if(m=3)while(1)a-b;第 23 页华东交通大学课程设计报告a=rand()%me;/产生 0-9 的随机数b=rand()%me;

25、if(a*bme)coutna*b=;c1=getch();if(c1=27)break;coutc1;ch0=c1;c2=getch();if(c2=27)break;if(c2=13);elsecoutc2;ch1=c2;c=atoi(ch);getch();c=atoi(ch);i+;if(c=a*b)j+;cout正确;elsecout错误;coutna*b=;c1=getch();if(c1=27)break;coutc1;ch0=c1;c2=getch();if(c2=27)break;if(c2=13)第 24 页华东交通大学课程设计报告;elsecoutc2;ch1=c2;c=

26、atoi(ch);getch();c=atoi(ch);if(c=a+b)cout正确;elsecout错误;coutn正确答案是:a*b;if(m=4)while(1)a=rand()%me+1;/防止除数为零b=rand()%me+1;/防止除数为零if(a%b=0)coutna/b=;c1=getch();if(c1=27)break;coutc1;ch0=c1;c2=getch();if(c2=27)break;if(c2=13);第 25 页华东交通大学课程设计报告elsecoutc2;ch1=c2;c=atoi(ch);getch();c=atoi(ch);i+;if(c=a/b)

27、j+;cout正确;elsecout错误;coutna/b=;c1=getch();if(c1=27)break;coutc1;ch0=c1;c2=getch();if(c2=27)break;if(c2=13);elsecoutc2;ch1=c2;c=atoi(ch);getch();c=atoi(ch);if(c=a/b)cout正确;elsecout错误;第 26 页华东交通大学课程设计报告coutn正确答案是:a/b;coutnn 你已完成i题;coutn 答对j题;coutn 正确率:100*j/i%;cout n 按任意键继续;getch();if(z=27)exit(0);ret

28、urn 0;/按 Esc 键退出第 27 页华东交通大学课程设计报告五、运行结果五、运行结果第 28 页华东交通大学课程设计报告六、课程设计心得六、课程设计心得第 29 页华东交通大学课程设计报告六、课程设计心得六、课程设计心得课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.随着科学技术发展的日新日异,当今计算机应用在生活中可以说得是无处不在。因此作为二十一世纪的大学来说掌握计算机开发技术是十分重要的。回顾起此次课程设计,至今我仍感慨颇多,的确,自从拿到题目到完成整个编程,从理论到实践,在整整一个星期的日子里

29、,可以学到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,这毕竟独立做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,比如说结构体通过这次课程设计之后,一定把以前所学过的知识重新温故。这次课程设计终于顺利完成了,在设计中遇到了很多编程问题,最后在谢老师的辛勤指导下,终于游逆而解。同时,在曾老师的身上我学得到很多实用的知识,在次我表示感谢!第 30 页

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > 工作报告

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁