C语言四则运算测试程序设计报告

上传人:hs****ma 文档编号:430991442 上传时间:2022-08-07 格式:DOC 页数:23 大小:691.50KB
返回 下载 相关 举报
C语言四则运算测试程序设计报告_第1页
第1页 / 共23页
C语言四则运算测试程序设计报告_第2页
第2页 / 共23页
C语言四则运算测试程序设计报告_第3页
第3页 / 共23页
C语言四则运算测试程序设计报告_第4页
第4页 / 共23页
C语言四则运算测试程序设计报告_第5页
第5页 / 共23页
点击查看更多>>
资源描述

《C语言四则运算测试程序设计报告》由会员分享,可在线阅读,更多相关《C语言四则运算测试程序设计报告(23页珍藏版)》请在金锄头文库上搜索。

1、昆明理工大学计算机程序设计基础课程综合实践型教学课题报告课题名称:100以内的整数四则运算测试程序设计组长: 学号 040401067 姓名 周绍平组员: 学号 040401070 姓名 邓 磊学号 040401106 姓名 刘云路学号 姓名学号 姓名学号 姓名学号 姓名学院: 信自学院 专业班级: 自动化0421 指导教师: 耿植林 昆明理工大学计算中心2005 年 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&c6); return c; )错题正解和错题重做都要求其的处理在知道错题的基础上的。因此if(jgi=jdi,这个语句是个基础,在这两个函数中它是根本,如果不能对其正确的判断,就无法达到相应的功能。 由于除法的特殊性除数不能为和得到的结果是整数

5、。我们专门设计了一个用于产生除法的函数,将其放入计算这个函数中。下面是这个函数的核心部分:srand( (unsigned)time( NULL ) ); FA: sy=rand()%100; if(sy=0) goto FA;for(i=1;i=10 sy是否为0随机产生两个数对100取余及运算符输入结果(jd)是否为答案(jg) 假For循环产生sy的约数csb 从csb中随机抽取一个除数将值返回函数jisuan分数(fs+0)分数(fs+10)真否结束结束3、重做(chongzuo)4、主函数(main)开始开始调用计算函数(jisuan)调用计算这个函数(jisuan)m10?假调用菜

6、单函数(caidan)真For循环jd=jg?输入选项(key=?)真key=0?假输出题目dajuan1zhengjie输入结果2假pingjiajd=jg?3真chongzuo4假jisuanFor循环再次输出该题5结束结束真由于其它四个函数较为简单或者和某些函数相似,这里就不再重复说明。在程序中用到的数据说明:运算符:随机产生4个数字(0、1、2、3),定义为int p(全局变量),再转换为运算符(+、-、*、/),定义为char fh10(全局变量) .运算数:随机产生两个运算数,对100取余。定义为 int sy10,sr10(全局变量).结果和答案:定义为 int jd10,jg1

7、0(全局变量).循环控制变量:定义为 int i(函数(jisuan,chufa)),j(函数(dajuan)),k(函数(zhengjie)),m,n(函数(chongzuo)),key(主函数(main)).临时交换数据变量:int gh(函数(jisuan)).统计分数:int fs(全局变量).四、程序调试与测试 100以内的四则运算出题 (程序调试过程中遇到的问题)第一;重做程序调试中遇到的问题:在重做程序的调试中遇到的问题不太多,主要是答错的题给三次重做机会的程序设计一开始不能正常运行,要不就是给予无限次的机会,要不就是只能重做一次。由于开始我不能找出错误所在,调试了多次也不能很好

8、的运行,经过多次的调试,改正,再调试,再改正,到最后终于将错误的地方改正了,正确的程序应当是“ for(n=0;n3;n+) printf(你仍未做对!你还有%d次机会: ,2-n);/*再次计算*/printf(%2d %c %2d =?,sym,fhm,srm);scanf(%d,&jdm); if(jdm=jgm) printf(恭喜!你做对了!n); break;/*跳出循环*/ ” 这样就很好的解决了前面所遇到的问题。第二;评价程序中遇到的问题: 我们做的这个自动出题程序中,当答题者做完题目后,程序会按成绩分段给出响应的评价。在做这部分程序的时候遇到的困难主要是score数据的获得,

9、一开始不知道该用哪个函数对成绩进行评价,经过看书和小组内部的讨论才知道了应当用条件函数switch对成绩score进行分段并给出相应的评价结果score的数据从主函数获得:“ int fs; printf(请输入成绩(0,10,20.100):);scanf(%d,&fs); switch(fs) ” 这才使得程序能够正常运行。第三;菜单程序设计中遇到的问题: 本程序的主菜单选项分为显示答卷、错题的正确解、再进行一次练习、系统对成绩的评价、退出系统等选项。在做这个程序的时候,一开始我用的是05代表以上各选项,但是在定义的时候却定义成了16,导致程序在运行的过程中5选项和0选项都无法运行,而这个错误在编译时又不能找出来,所以让我费了大量的时间才知道是自己不认真定义错了。而这个程序主要是使用printf()函数显示菜单项,用sacnf()函数接收选项字符while条件限定选项的合法性,非法字符则重新输入并返回主函数:“printf(n* 数学四则运算测试软件 *nnn); printf( 1.显示答卷 2.错题正解nn); printf( 3.系统评估 4.错题重做nn); printf( 5.再次练习 0.退出系统nn); printf(n*); printf(n请输入选项(0-5):); /*提示输入选项*/ 第

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

当前位置:首页 > 大杂烩/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号