《C语言四则运算测试程序设计报告》由会员分享,可在线阅读,更多相关《C语言四则运算测试程序设计报告(23页珍藏版)》请在人人文库网上搜索。
1、昆明理工大学计算机程序设计基础课程综合实践型教学课题报告课题名称:100以内的整数四则运算测试程序设计组长: 学号 040401067 姓名 周绍平组员: 学号 040401070 姓名 邓 磊学号 040401106 姓名 刘云路学号 姓名学号 姓名学号 姓名学号 姓名学院: 信自学院 专业班级: 自动化0421 指导教师: 耿植林 昆明理工大学计算中心 年 6月18日昆明理工大学计算中心计算机程序设计基础课程综合实践型教学课题报告课程名称:100以内的整数四则运算测试程序设计 学院: 信自学院 专业班级: 自动化0421学号姓名小组编号所选题号自评小组工作量(16)自评分数分数04。
2、0401067周绍平15595040401070邓 磊15586040401106刘云路15585设计说明与功能描述(基本思路及关键语句说明)作为一个数学运算的程序,在我看来至少要有以下几个功能:1、 出题。既然是出题,那么就要求每次出的不一样。2、 解题。如果一个用于数学计算的程序,无法让使用者输入解答。这便是一个空壳。3、 判断。和解题相似,如果一个程序无法判断使用者输入结果的正误,又在谁会使用它呢?4、 显示。使用者有看到自己做的答卷和正确答案的要求和希望。5、 重做。使用者在知道自己做错的题后,一般会选择重做错题,以达到对其的了解。6、 菜单。不用说,这几乎是每一个程序都要求的。这是为。
3、了方便使用者进行多种选择。7、 循环。这就要求程序能多次重复地运行。设计这个程序的基本思路:分别设计出题(计算和除法)、评分、答卷、正解、菜单、重做七个功能模块。然后再设计一个主函数,不断地调用菜单这个函数,使其达到各项功能。同时,菜单函数与各函数要紧密地联系在一起,可以说菜单这个函数是整个程序中的枢纽。关键语句说明:由于数据要求共享,即多次调用。将几个变量定义为全局变量(运算数(sy10,sr10),运算符(fh10),输入结果(jd10),正确结果(jg10),分数(fs)。运算数由随机函数产生,并对取余以保证其在以内。随即数种子由系统时间函数产生。运算符也由随机函数产生,对取余。生成个数。
4、字,再转换为相应的运算符。(srand( (unsigned)time( NULL ) ); syi=rand()%100; sri=rand()%100; p=rand()%4; )程序中多次用到循环,对控制循环变量的定义和运算有很高的要求。由于菜单选项函数的出现,这就要求对输入选项的合法性进行验证,如果不合法就要求重输。( while(!(c=0&c=10sy是否为0随机产生两个数对100取余及运算符输入结果(jd)是否为答案(jg)假For循环产生sy的约数csb从csb中随机抽取一个除数将值返回函数jisuan分数(fs+0)分数(fs+10)真否结束结束3、重做(chongzuo)4。
5、、主函数(main)开始开始调用计算函数(jisuan)调用计算这个函数(jisuan)m#include #include /* 字符操作函数*/* 定义全局变量*/int sy10,sr10,jd10,jg10; /* sy,fh,sr,jd,jg分别保存第一运算数,运算符, 第二运算数,输入结果,正确结果*/ int fs=0; /* s接收键盘输入的结果,score保存成绩*/char fh10; /* fh保存运算符号*/ /*作者:邓磊编写日期:.6.13最后修改日期:.6.13*/void chufa(int *s1,int *s2,int *s3)int i,b。
6、=1,c,jg; /*i为控制循环变量,jg,jd分别保存输入结果和正确答案*/int cs20=0,sy,sr; /*cs为除数数组,sy保存被除数,sr为从cs中抽取的除数*/srand( (unsigned)time( NULL ) );FA: sy=rand()%100;if(sy=0) goto FA;for(i=1;i=0&c6); /*验证选项是否合法,若否则重输*/ return c; /*返回选择项*/*作者:邓磊编写日期:.6.12最后修改日期:.6.12*/*对成绩结果进行评价,便于做题都了解自己的情况,进行有针对性的学习.按分数的不同层次进行评价*/*算。
7、法:用条件函数switch对成绩score进行分段并给出相应的评价,结果score的数据从主函数获得*/void pingjia()printf(你的成绩是%d分.n,fs); /* 显示测试结果*/switch(fs) /*显示评价*/ case 100: printf(真棒!不要骄傲哟!n); break;case 90: printf(优秀!恭喜你取得了好成绩!n); break;case 80:case 70: printf(良好!请继续努力,下次取得更好的成绩!n); break;case 60: printf(及格!成绩不太理想哟!再接再励吧!n); break;case 50:c。
8、ase 40:case 30:case 20:case 10: printf(多花点功夫吧,不然你会后悔的!n); break;case 0: printf(太差劲了!再不努力的话,你就完了!再做一次吧!n); break;printf(nn); /*作者:刘云路编写日期:.6.12最后修改日期:.6.12*/*显示答卷*/*各数据从主函数中获取*/void dajuan()int j;printf(你的答卷为:n);for(j=0;j10;j+)printf(%2d %c %2d = %2dn,syj,fhj,srj,jdj);printf(nn);/*作者:周绍平编写日期:。
9、.6.12最后修改日期:.6.12*/*对错题给出正确的答案*/*各数据从主函数中获取*/void zhengjie()int k;printf(你答错的题的正确答案为:n);for(k=0;k10;k+) if(jdk=jgk) continue;elseprintf(%2d %c %2d = %2dn,syk,fhk,srk,jgk);printf(nn);/*作者:刘云路编写日期:.6.12最后修改日期:.6.12*/*将错题给出,让做题者再次对其进行计算*/*各数据从主函数中获取*/void chongzuo()int m,n;printf(以下是你做错。
10、的题,请重做:n);for(m=0;m10;m+) /*用循环对错题进行选择*/if(jdm=jgm) continue; /*做对的题则跳过*/else printf(%2d %c %2d =?,sym,fhm,srm);scanf(%d,&jdm);if(jdm=jgm) printf(恭喜!你做对了!n);/*再次对输入的答案进行检验*/else /*若仍未做对,则用此函数*/ for(n=0;n3;n+) printf(你仍未做对!你还有%d次机会: ,2-n);/*再次计算*/printf(%2d %c %2d =?,sym,fhm,srm);scanf(%d,&jdm); if(j。
11、dm=jgm) printf(恭喜!你做对了!n); break;/*跳出循环*/ /*循环结束*/printf(nn);/*作者:周绍平、刘云路、邓磊编写日期:.6.13最后修改日期:.5.14*/*主函数*/void main()int key=1;jisuan();while(key)switch(caidan()case 1: printf(nnn); dajuan(); break;case 2: printf(nnn); zhengjie(); break;case 3: printf(nnn); pingjia(); break;case 4: printf(nn。
12、n); chongzuo(); break;case 5: printf(nnn); jisuan(); break;case 0: key=0;个人收获和体会:(1)组长:周绍平这次C语言的程序设计,对于我来说是一个挑战。我对C语言的学习并不是很好,尤其是在数组之后的内容,对它并不了解,使用也达不到要求,更不要说灵活的运用它们了。这在程序的设计中也有所体现。每一个函数都设计好了,也调试好了,把它们分开运行并没有错误,但是当把它们组合成一个程序时,便是一个一个地出现错误。把这个问题解决了,另一个新的问题又来了。这不能说是对知识的欠缺。通过这次的程序设计,我懂得了无论什么事都要去做才会发现问题,。
13、才有可能去解决问题。对知识的学习,不能潜偿辄止,要深入去学习,去了解,这样才会有所收获。有许多东西,许多事,不是想像中的那么容易,不去实践,永远也不会有提高,尤其是学习计算机。我的另一个感受便是团队精神,如果没有我们这个小组成员的共同努力,我想这个程序也是没法完成的。共同合作、共同分享、共同研究这才是一个好的团队。(2)组员:邓磊这次C语言的实践,我们做的是数字100以内的四则运算,在其中我们各自分工,最后结合成一个自动出题,错题重做,自动打分以及加减乘除四则运算的统一完整的程序。我做的是“对成绩结果进行评价,便于做题都了解自己的情况,进行有针对性的学习.按分数的不同层次进行评价。”在其中采用。
14、简单的C代码,并加入幽默风趣的语句来鼓励做题的人,例如:case 100: printf(真棒!不要骄傲哟!n);case 0: printf(太差劲了!再不努力的话,你就完了!再做一次吧!n);经过这次C语言程序设计的实践,让我学到了更多知识,也增强了自己的动手能力,同时也看到了C程序在社会上的广泛应用及优良的效果,已经成为一个我们应该懂得一点的技术。在这次实践中虽然我只做了其中一部分,但是体味到了其中的乐趣。我会在以后的学习和生活中努力思考,善于发现和解决问题,开动脑筋,去发现更多新的东西。刘云路这次C语言的实践,我们做的是数字100以内的四则运算,在其中我们各自分工,最后结合成一个自动出。
15、题,错题重做,自动打分以及加减乘除四则运算的统一完整的程序。我做的是“将错题给出,让做题者再次对其进行计算”这一部分printf(以下是你做错的题,请重做:n);for(m=0;m10;m+) /*用循环对错题进行选择*/if(jdm=jgm) continue; /*做对的题则跳过*/在其中用了简单的C语言代号,反映出了智能化的效果。经过这次C语言程序设计的实践,让我学到了更多知识,也增强了自己的动手能力,同时也看到了C程序在社会上的广泛应用及优良的效果,已经成为一个我们应该懂得一点的技术。在这次实践中虽然我只做了其中一部分,但是体味到了其中的乐趣。我会在以后的学习和生活中努力思考,善于发现和解决问题,开动脑筋,去发现更多新的东西。