通过C语言编写小学生数学测试软件C语言课程设计.docx

上传人:b****8 文档编号:29222718 上传时间:2023-07-21 格式:DOCX 页数:19 大小:149.88KB
下载 相关 举报
通过C语言编写小学生数学测试软件C语言课程设计.docx_第1页
第1页 / 共19页
通过C语言编写小学生数学测试软件C语言课程设计.docx_第2页
第2页 / 共19页
通过C语言编写小学生数学测试软件C语言课程设计.docx_第3页
第3页 / 共19页
通过C语言编写小学生数学测试软件C语言课程设计.docx_第4页
第4页 / 共19页
通过C语言编写小学生数学测试软件C语言课程设计.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

通过C语言编写小学生数学测试软件C语言课程设计.docx

《通过C语言编写小学生数学测试软件C语言课程设计.docx》由会员分享,可在线阅读,更多相关《通过C语言编写小学生数学测试软件C语言课程设计.docx(19页珍藏版)》请在冰豆网上搜索。

通过C语言编写小学生数学测试软件C语言课程设计.docx

通过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);

}

}

[测试数据]:

界面:

加法:

减法:

乘法:

除法:

评分并返回:

[小结]:

原以为自己把书上的东西都弄明白了就行了,在做这次课程设计的时候就发现有些不是那么回事了,但也并不是完全没用,做这个还是需要很多的理论基础。

开始在编出程序后感觉没有什么错误了,但在运行的时候总能检测出几个错误,始终不知道怎么解决,后来询问老师才发现一些很小的细节错误,但就是这个小的细节错误让这个程序不能运行,知道了以后在编写程序时应该注重各个小的细节,在生活中也应该如此。

这次课程设计业让我对计算机编程产生了浓厚的兴趣,虽然接触编程不久,但我觉得以后自己能做得更好。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 农林牧渔 > 畜牧兽医

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1