1、通过C语言编写小学生数学测试软件C语言课程设计 C语言课程设计设计期限20XX年 6 月 17 开始 至 2013 年 6 月 21 结束 系 别 信息管理与信息系统 专 业 36 班级 112030601 学生姓名 邓茂华 学号11203060106指导教师 纪钢 金艳 重 庆 理 工 大 学主要内容有:问题描述、基本设计要求、系统分析、流程图、程序代码、测试数据、小结。问题描述:通过C语言编写小学生数学测试软件:1) 可选择题型(+,-,*,/); 2) 可选择每次答题的个数; 3) 随机生成两个数进行运算; 4) 每次在输入答案后应判断对错,若答案错误,应给出正确答案; 5) 给出统计结
2、果。基本设计要求:利用C语言中函数的嵌套调用、全局变量、循环控制等来实现数据之间的运算,最终实现小学生数学测试软件的运行。系统分析:#include#include#include#includeint type;/定义全局变量;int j;void main() int yunsuan();/在主函数中嵌套一个子函数,实现子后面主函数调用子函数的运行结果;int answer; int temp; int score=0,right=0; int k,i; printf(nn 制作人:邓茂华 学号:11203060106nnn);/制作系统的封面; printf(*n); printf(*-
3、小学生数学测试系统-*n); printf(*n); for(;)/设置死循环,实现测试结束后返回; printf(n请你选择测试题目的种类(只需输入数字代号):n);/选择测试题目的种类; printf(n1.加法 2.减法 3.乘法 4.除法 n); scanf(%d,&type); while(type!=1&type!=2&type!=3&type!=4)/输入错误时实现循环,直到输入正确时跳出循环; printf(你输入错误,请重新输入n); printf(n1.加法 2.减法 3.乘法 4.除法n); scanf(%d,&type); printf(n请输入你想答题的难易程度:nn
4、); printf(n1.简单 2.一般 3.困难nn); scanf(%d,&j); while(j!=1&j!=2&j!=3) printf(n请输入你想答题的难易程度:nn); printf(n1.简单 2.一般 3.困难nn); scanf(%d,&j); printf(n请输入你要答题的个数:n); scanf(%d,&k); for(i=0;ik;i+) answer=yunsuan();/调用子函数的结果; printf(n请输入你的答案:n); scanf(n%d,&temp); if(answer=temp)/将测试者输入的结果与计算机算出的结果比较,并判断正误; print
5、f(n答对了,很好!n),right+; else printf(n*答错了,正确答案是%d,继续努力!nn,answer); printf(nn-nn); score=(100*right)/k;/实现对测试者的评分; printf(*你答对了%d道题!n,right); if(score=60&score=80&score100) printf(*你考了%d分,不错哟!再接再励!n,score); continue; else printf(*哇,你真是太棒啦,居然考了%d分,说不定是未来的数学家哦!n,score); printf(n); continue; int yunsuan()/
6、在子函数中实现加减乘除的运算并返回结果; int a,b,c,m; m=(int)pow(10,j); if(type=1)/加法运算; srand(time(0); a=rand()%m; b=rand()%m; printf(%d+%d=,a,b); return(a+b); else if(type=2)/减法运算; srand(time(0); a=rand()%m; c=m-a; c=rand()%c; printf(%d-%d,a+c,a); return(c); else if(type=3)/乘法运算; srand(time(0); a=rand()%m; b=rand()%1
7、00; printf(%d*%d=?,a,b); return(a*b); else /除法运算; srand(time(0); a=rand()%(m-1)+1; c=rand()%(m-1)+1; printf(%d/%d,a*c,a); return(c); 流程图:程序代码:#include#include#include#includeint type;int j;void main() int yunsuan(); int answer; int temp; int score=0,right=0; int k,i; printf(nn 制作人:邓茂华 学号:11203060106
8、nnn); printf(*n); printf(*-小学生数学测试系统-*n); printf(*n); for(;) printf(n请你选择测试题目的种类(只需输入数字代号):n); printf(n1.加法 2.减法 3.乘法 4.除法 n); scanf(%d,&type); while(type!=1&type!=2&type!=3&type!=4) printf(你输入错误,请重新输入n); printf(n1.加法 2.减法 3.乘法 4.除法n); scanf(%d,&type); printf(n请输入你想答题的难易程度:nn); printf(n1.简单 2.一般 3.困
9、难nn); scanf(%d,&j); while(j!=1&j!=2&j!=3) printf(n请输入你想答题的难易程度:nn); printf(n1.简单 2.一般 3.困难nn); scanf(%d,&j); printf(n请输入你要答题的个数:n); scanf(%d,&k); for(i=0;ik;i+) answer=yunsuan(); printf(n请输入你的答案:n); scanf(n%d,&temp); if(answer=temp) printf(n答对了,很好!n),right+; else printf(n*答错了,正确答案是%d,继续努力!nn,answer)
10、; printf(nn-nn); score=(100*right)/k; printf(*你答对了%d道题!n,right); if(score=60&score=80&score100) printf(*你考了%d分,不错哟!再接再励!n,score); continue; else printf(*哇,你真是太棒啦,居然考了%d分,说不定是未来的数学家哦!n,score); printf(n); continue; int yunsuan() int a,b,c,m; m=(int)pow(10,j); if(type=1) srand(time(0); a=rand()%m; b=ra
11、nd()%m; printf(%d+%d=,a,b); return(a+b); else if(type=2) srand(time(0); a=rand()%m; c=m-a; c=rand()%c; printf(%d-%d,a+c,a); return(c); else if(type=3) srand(time(0); a=rand()%m; b=rand()%100; printf(%d*%d=?,a,b); return(a*b); else srand(time(0); a=rand()%(m-1)+1; c=rand()%(m-1)+1; printf(%d/%d,a*c,a); return(c); 测试数据:界面:加法:减法:乘法:除法:评分并返回:小结:原以为自己把书上的东西都弄明白了就行了,在做这次课程设计的时候就发现有些不是那么回事了,但也并不是完全没用,做这个还是需要很多的理论基础。开始在编出程序后感觉没有什么错误了,但在运行的时候总能检测出几个错误,始终不知道怎么解决,后来询问老师才发现一些很小的细节错误,但就是这个小的细节错误让这个程序不能运行,知道了以后在编写程序时应该注重各个小的细节,在生活中也应该如此。这次课程设计业让我对计算机编程产生了浓厚的兴趣,虽然接触编程不久,但我觉得以后自己能做得更好。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1