通过C语言编写小学生数学测试软件C语言课程设计.docx
- 文档编号:29222718
- 上传时间:2023-07-21
- 格式:DOCX
- 页数:19
- 大小:149.88KB
通过C语言编写小学生数学测试软件C语言课程设计.docx
《通过C语言编写小学生数学测试软件C语言课程设计.docx》由会员分享,可在线阅读,更多相关《通过C语言编写小学生数学测试软件C语言课程设计.docx(19页珍藏版)》请在冰豆网上搜索。
通过C语言编写小学生数学测试软件C语言课程设计
C语言课程设计
设计期限20XX年6月17开始
至2013年6月21结束
系别信息管理与信息系统
专业36班级112030601
学生姓名邓茂华学号11203060106
指导教师纪钢金艳
重庆理工大学
[主要内容有]:
问题描述、基本设计要求、系统分析、流程图、程序代码、测试数据、小结。
[问题描述]:
通过C语言编写小学生数学测试软件:
1)可选择题型(+,-,*,/);
2)可选择每次答题的个数;
3)随机生成两个数进行运算;
4)每次在输入答案后应判断对错,若答案错误,应给出正确答案;
5)给出统计结果。
[基本设计要求]:
利用C语言中函数的嵌套调用、全局变量、循环控制等来实现数据之间的运算,最终实现小学生数学测试软件的运行。
[系统分析]:
#include
#include
#include
#include
inttype;//定义全局变量;
intj;
voidmain()
{
intyunsuan();//在主函数中嵌套一个子函数,实现子后面主函数调用子函数的运行结果;
intanswer;
inttemp;
intscore=0,right=0;
intk,i;
printf("\n\n制作人:
邓茂华学号:
11203060106\n\n\n");//制作系统的封面;
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请输入你想答题的难易程度:
\n\n");
printf("\n1.简单2.一般3.困难\n\n");
scanf("%d",&j);
while(j!
=1&&j!
=2&&j!
=3)
{
printf("\n请输入你想答题的难易程度:
\n\n");
printf("\n1.简单2.一般3.困难\n\n");
scanf("%d",&j);
}
printf("\n请输入你要答题的个数:
\n");
scanf("%d",&k);
for(i=0;i { answer=yunsuan();//调用子函数的结果; printf("\n请输入你的答案: \n"); scanf("\n%d",&temp); if(answer==temp)//将测试者输入的结果与计算机算出的结果比较,并判断正误; printf("\n答对了,很好! \n"),right++; elseprintf("\n**********答错了,正确答案是%d,继续努力! \n\n",answer); } printf("\n\n--------------------------------------------------------------\n\n"); score=(100*right)/k;//实现对测试者的评分; printf("**********你答对了%d道题! \n",right); if(score<60) { printf("**********只考了%d分,成绩不是很理想哦! 继续努力! ! \n",score); continue; } if(score>=60&&score<80) { printf("**********你考了%d分,成绩一般! \n",score); continue; } elseif(score>=80&&score<100) { printf("**********你考了%d分,不错哟! 再接再励! \n",score); continue; } else { printf("**********哇,你真是太棒啦,居然考了%d分,说不定是未来的数学家哦! \n",score); printf("\n"); continue; } } } intyunsuan()//在子函数中实现加减乘除的运算并返回结果; { inta,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); } elseif(type==2)//减法运算; { srand(time(0)); a=rand()%m; c=m-a; c=rand()%c; printf("%d-%d",a+c,a); return(c); } elseif(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); } } [流程图]: [程序代码]: #include #include #include #include inttype; intj; voidmain() { intyunsuan(); intanswer; inttemp; intscore=0,right=0; intk,i; printf("\n\n制作人: 邓茂华学号: 11203060106\n\n\n"); 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请输入你想答题的难易程度: \n\n"); printf("\n1.简单2.一般3.困难\n\n"); scanf("%d",&j); while(j! =1&&j! =2&&j! =3) { printf("\n请输入你想答题的难易程度: \n\n"); printf("\n1.简单2.一般3.困难\n\n"); scanf("%d",&j); } printf("\n请输入你要答题的个数: \n"); scanf("%d",&k); for(i=0;i { answer=yunsuan(); printf("\n请输入你的答案: \n"); scanf("\n%d",&temp); if(answer==temp) printf("\n答对了,很好! \n"),right++; elseprintf("\n**********答错了,正确答案是%d,继续努力! \n\n",answer); } printf("\n\n--------------------------------------------------------------\n\n"); score=(100*right)/k; printf("**********你答对了%d道题! \n",right); if(score<60) { printf("**********只考了%d分,成绩不是很理想哦! 继续努力! ! \n",score); continue; } if(score>=60&&score<80) { printf("**********你考了%d分,成绩一般! \n",score); continue; } elseif(score>=80&&score<100) { printf("**********你考了%d分,不错哟! 再接再励! \n",score); continue; } else { printf("**********哇,你真是太棒啦,居然考了%d分,说不定是未来的数学家哦! \n",score); printf("\n"); continue; } } } intyunsuan() { inta,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); } elseif(type==2) { srand(time(0)); a=rand()%m; c=m-a; c=rand()%c; printf("%d-%d",a+c,a); return(c); } elseif(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); } } [测试数据]: 界面: 加法: 减法: 乘法: 除法: 评分并返回: [小结]: 原以为自己把书上的东西都弄明白了就行了,在做这次课程设计的时候就发现有些不是那么回事了,但也并不是完全没用,做这个还是需要很多的理论基础。 开始在编出程序后感觉没有什么错误了,但在运行的时候总能检测出几个错误,始终不知道怎么解决,后来询问老师才发现一些很小的细节错误,但就是这个小的细节错误让这个程序不能运行,知道了以后在编写程序时应该注重各个小的细节,在生活中也应该如此。 这次课程设计业让我对计算机编程产生了浓厚的兴趣,虽然接触编程不久,但我觉得以后自己能做得更好。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 通过 语言 编写 小学生 数学 测试 软件 课程设计