您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 市场营销 > c语言课程设计实验报告书
C语言课程设计报告院系:信息工程系专业:11级计算机科学与技术题目:教小学生算术姓名:许庆超学号:2111714135指导教师:夏学文2012.12.31湖北工程学院新技术学院一、实验目的:1.使学生更深入地理解和掌握该课程中的有关基本概念,程序设计思想和方法。2.培养学生综合运用所学知识独立完成课题的能力。3.培养学生勇于探索、严谨推理、实事求是、有错必改,用实践来检验理论,全方位考虑问题等科学技术人员应具有的素质。4.提高学生对工作认真负责、一丝不苟,对同学团结友爱,协作攻关的基本素质。5.培养学生从资料文献、科学实验中获得知识的能力,提高学生从别人经验中找到解决问题的新途径的悟性,初步培养工程意识和创新能力。6.对学生掌握知识的深度、运用理论去处理问题的能力、实验能力、课程设计能力、书面及口头表达能力进行考核二、实验内容:(1)制作一个可供小学数学运算程序:10以内加减法,能根据输入题数出题,判断做题是否正确。正确的给鼓励,错误的发出警报,并给出正确答案,最后计算分数。(2)执行编译操作,并根据提示调试此程序,排除所有的错误和警告。直到编译成功为止。(3)执行运行操作,逐一对每个模块进行调试。直到全部程序运行成功为止。三、需求分析:通过此系统实现以下功能:做个位数,十位数的加,减,乘和除,减法不能得负数,除法要除尽,屏幕上随机出现两个数,提示小学生给出答案,答错了要提示重新输入,直到答对为止。要统计给分,且累计,够一定分数后可进级,即从个位进到十位。同样,也可降级。1.1加法功能:用PLUS函数实现加法算数,答对输入的题量后可晋级,难度有所增加,结果错误后提示错误并且重新输入。1.2减法功能:用sub函数实现减法算数,并且结果不为负数,答对输入的题量后可晋级,难度有所增加,结果错误后提示错误并且重新输入。1.3乘法功能:用mul函数实现乘法算数,答对输入的题量后可晋级,难度有所增加,结果错误后提示错误并且重新输入。1.4除法功能:用div函数实现除法功能,并且生成的除法算数要除尽,答对输入的题量后可晋级,难度有所增加,结果错误后提示错误并且重新输入。一.输入模块:(2种算法)加法:请选择:1欢迎进入第一关!请设定题目数量:11+7=8恭喜你,答对了!恭喜你通过了第一关!晋级模块:是否继续挑战第一关?y(1)/n(0):1欢迎进入第二关!请设定题目数量:19+24=33恭喜你,答对了!恭喜你通过了第二关!是否继续挑战第一关?y(1)/n(0):0欢迎进入第三关!请设定题目数量:178+58=136恭喜你,答对了!恭喜你通过了第三关!乘法::请选择:1欢迎进入第一关!请设定题目数量:11*7=7恭喜你,答对了!恭喜你通过了第一关!晋级模块:是否继续挑战第一关?y(1)/n(0):1欢迎进入第二关!请设定题目数量:134*0=0恭喜你,答对了!恭喜你通过了第二关!是否继续挑战第一关?y(1)/n(0):0欢迎进入第三关!请设定题目数量:125*4=100恭喜你,答对了!恭喜你通过了第三关!二.总体设计主函数结构图:三.算法设计:1、本程序实现的功能要求:利用for循环、do...while循环和switch完成的主菜单。2、输入想要测试的题目数学生进行答题判断正误正确给出鼓励,错误报警,要求重新回答3、进入第一步出现如下信息:主函数加法功能函数plus减法功能函数sub乘法功能函数mul除法功能函数div用户输入要练习的题数。第二步:输出算术式子用户输入结果进行测试。第三步:输出测试结果屏幕显示出本次测试的基本情况。四.流程图主窗口Switch(1)Switch(2)Switch(3)Switch(4)加法功能减法功能乘法功能除法功能输入题量进入第一关输入题量进入第一关输入题量进入第一关输入题量进入第一关答对数=题量数输入题量进入第下一关输入题量进入第下一关输入题量进入第下一关输入题量进入第下一关答对数=题量数输入题量进入第下一关输入题量进入第下一关输入题量进入第下一关输入题量进入第下一关答对数=题量数退出系统Switch(5)五.主要函数之间相互调用如下:主函数调用:主函数的调用main(){voidmenu();intk;do{menu();printf(请选择:);scanf(%d,&k);switch(k){case1:plus();break;case2:sub();break;case3:mul();break;case4:div();break;case0:break;}printf(\n);}while(k!=0);printf(\n);return0;}加法函数的调用voidplus(){inti;plus1();printf(是否继续挑战?Y(1)/N(0):);scanf(%d,&i);if(i==1)plus2();elsereturn;i=NULL;printf(是否继续挑战?Y(1)/N(0):);scanf(%d,&i);if(i==1)plus3();elsereturn;}减法函数的调用voidsub(){inti;sub1();printf(是否继续挑战?Y(1)/N(0):);scanf(%d,&i);if(i==1)sub2();elsereturn;i=NULL;printf(是否继续挑战?Y(1)/N(0):);scanf(%d,&i);if(i==1)sub3();elsereturn;}六、调试情况,设计技巧及体会(1)、调试中的问题:a.运行后关掉黑屏后,输入的数据将不会保存,再运行时修改函数等将不会进行该数据,多次使用后发现,再关掉该屏前要输入5,数据就会保存.b.在输入数据时要注意其输入形式,输错后数据将不会保存.就不会进行其他函数的使用.c.c语言设计的体会:((1).这次课程设计和以前所做题目截然不同,在这之前,以前从未尝试过写一个较大的程序,由于上学期C语言学得不是很好,所以设计过程中遇到好多问题,比如没有思路、不知如何下手等。但是通过查阅资料和咨询同学终于有了想法。所以自己就慢慢设计了这个程序。但是程序设计有些简单,没有运用链表知识,只应用了结构体和数组。而且设计中还存在很多问题,管理系统不够完善,实现的功能不够详尽,没有实现自己想要实现的那么复杂和完善的功能。(2)通过对此程序的编写,让我把书本上学到的应用到实际中去,但在编序后,再进行编译时出现了许多错误和警告。这才让我认识到理论和实践是存在一定差别的。最后,在多次查阅资料,询问同学后把程序给改编完成了。它让我体会到自己的不足,所以自己以后要踏乘法函数的调用voidmul1(){intcount=0,m,n,s,total,k;printf(欢迎进入第一关!\n);printf(请设定题目数量:);scanf(%d,&k);while(countk){printf(%d,m=rand()%10);printf(*);printf(%d,n=rand()%10);printf(=);total=m*n;loopa:scanf(%d,&s);if(s==total){printf(恭喜你,答对了!\n);count++;}else{printf(回答错误,请重新回答!\n);gotoloopa;}}printf(恭喜你通过了第一关!\n);}除法的调用voiddiv1(){intcount=0,m,n,s,total,k;printf(欢迎进入第一关!\n);printf(请设定题目数量:);scanf(%d,&k);while(countk){do{m=rand()%10;n=rand()%10;}while(n==0||m%n!=0);printf(%d,m);printf(/);printf(%d,n);printf(=);total=m/n;loopa:scanf(%d,&s);if(s==total){printf(恭喜你,答对了!\n);count++;}else{printf(回答错误,请重新回答!\n);gotoloopa;}}printf(恭喜你通过了第一关!\n);}踏实实地把计算机年学好,为自己将来的发展打下坚实基础。在此次程序编写中,发现的问题有:1.函数应该是先定义后使用,所以一开始时,总是出现很多警告,说没有定义!!后来经过仔细检查,发现主函数应该是放在各个模块之后!!2.要注意全局变量的应用,若全局变量没定义好的话,对整个程序的编写与都有很大影响!!3.在删除模块中,刚开始存在很多问题,删除不了,或者删除后还能打印出来,结果后来发现是删除模块本身的问题。。(该块较难处理)4.在查询模块中,刚开始那个按商品类别查询无法运行,经检查,是由于未定义成字符串数组形式,因此定义变量的类型非常重要。(3)此次设计感受:要想编写一个准确、高效并有使用价值的程序,一定先要对课本知识熟悉,还要掌握必要的上机操作能力,写程序其实很容易而关键在于调试程序。这次设计,让我重新掌握了C语言,而且还得到了用C语言解决实际问题的宝贵经验。程序运行:主菜单运行情况:加法运行情况:减法运行情况:乘法运行情况:除法运行情况:退出运行情况:七.原程序清单://1.cpp:Definestheentrypointfortheconsoleapplication.//#includestdafx.h#includestdio.h#includestdlib.h#includetime.hvoidmenu(){printf(********************************************************************************);printf(^_^_^_^_^_^_^_^_^_^_^_^小朋友,欢迎你们来学习小学算术_^_^_^_^_^_^_^_^_^_^_^_^_^_);printf();printf(1.加法);printf(2.减法);printf(3.乘法);printf(4.除法);printf(0.退出);printf();printf(快选择你要学习的内容吧!);printf();printf(^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_);printf(********************************************************************************);}voidplus1(){intcount=0,m,n,s,total,k;printf(欢迎进入第一关!\n);printf(请设定题目数量:);scanf(%d,&k);while(countk){printf(%d,m=rand()%10);printf(+);printf(%d,n=rand()%10);printf(=);total=m+n;loopa:scanf(%d,&s);if(s==total){printf(恭喜你,答对了!\n);count++;}else{printf(回答错误,请重新回答!\n);gotoloopa;}}printf(恭喜你通过了第一关!\n);}voidplus2(){intcount=0,m,n,s,total,k;printf(欢迎进入第二关!\n);printf(请设定题目数量:);scanf(%d,&k);while(countk){do{m=rand()%10;n=rand()%100;}while(n10);printf(%d,m);printf(+);printf(%d,n);printf(=);total=m+n;loopa:scanf(%d,&s);if(s==total){printf(恭喜你,答对了!\n);count++;}else{printf(回答错误,请重新回答!\n);gotoloopa;}}printf(恭喜你通过
本文标题:c语言课程设计实验报告书
链接地址:https://www.777doc.com/doc-1659050 .html