《C语言程序设计》课程设计小学生教育测验.docx
《《C语言程序设计》课程设计小学生教育测验.docx》由会员分享,可在线阅读,更多相关《《C语言程序设计》课程设计小学生教育测验.docx(11页珍藏版)》请在冰豆网上搜索。
《C语言程序设计》课程设计小学生教育测验
南京航空航天大学金城学院
《C语言程序设计》课程设计
实验报告
题目:
_小学生测验
班级:
学号:
姓名:
成绩:
指导教师:
完成日期:
年月日
一、程序的主要功能
二、系统总框架图
三、各模块的功能
四、功能模块图
五、程序结构流程图
六、试验结果
七、编程体会
八、参考资料
九、附录:
程序清单及源程序
一、
一、程序的主要功能
(1)根据随机题目填写答案
(2)共有三次机会答题,每次分数不同
(3)三次错误,自动开始下一题
(4)得出分数和评价
二、系统总框架图
三、各模块的功能
intsubject()//答题函数
voidoutput(intt)//得分和评价输出函数
main()//主函数
四、功能模块图
五、程序结构流程图
六、试验结果
七、编程体会
本程序关键在于怎么设计随机数,怎么根据每到题的回答次数,给出相应的分数以及怎么设计随机加减法。
在设计随机加减问题上,我想到了奇偶数的方法。
利用srand()和rand()函数随机取一个值,然后将这个值和2取余,然后就有0和1两种随机情况,各定义为加减法的导入条件。
八、参考资料
(1)CSDN博客频道:
(2)XX文库:
(3)道客巴巴:
(4)XX帖吧:
九、附录:
程序清单及源程序
#include
#include
#include
intsubject()
{
inta,b,c,i,j,n,k,cj=0,r[4][2]={{0,0},{1,5},{2,7},{3,10}};/*定义数组表示答题次数与成绩对应*/
srand(time(0));
printf("--------------小学生测验--------------\n\n");
for(i=1;i<=10;i++)
{
a=rand()%51;
b=rand()%(51-a)+a;/*给a,b赋随机值,且0<=a<=b<=50*/
c=b-a;/*则c也为随机变量,且0<=a,c<=b<=50*/
n=rand()%2;/*使n在0,1中随机取值*/
if(n==0)/*当n为0时,给出加法题目*/
{
printf("第%d题:
%d+%d=?
\n",i,a,c);
for(j=3;j>=1;j--)/*当j=3时,表示有三次答题机会,答对则退出循环*/
{
printf("你的答案是(你还有%d次回答的机会):
",j);
scanf("%d",&k);
if(k==b)
{
printf("回答正确!
\n\n");
cj=cj+r[j][1];/*将所得分数进行累加*/
break;
}
else
{
printf("回答错误!
\n");
}
}
if(j==0)
printf("三次机会都用完了,正确答案是%d\n别灰心,继续下一道题!
\n\n",b);
}
else/*当n为1时,给出减法题目*/
{
printf("第%d题:
%d-%d=?
\n",i,b,c);
for(j=3;j>=1;j--)/*当j=3时,表示有三次答题机会,答对则退出循环*/
{
printf("你的答案是(你还有%d次回答的机会):
",j);
scanf("%d",&k);
if(k==a)
{
printf("回答正确!
\n\n");
cj=cj+r[j][1];/*将所得分数进行累加*/
break;
}
else
{
printf("回答错误!
\n");
}
}
if(j==0)printf("三次机会都用完了,正确答案是%d\n别灰心,继续下一道题!
\n\n",a);
}
}
returncj;
}
voidoutput(intt)
{
printf("\n你的得分是:
%d\n",t);
printf("\n评价:
");
switch(t/10)
{
case10:
case9:
printf("SMART");break;
case8:
printf("GOOD");break;
case7:
printf("OK");break;
case6:
printf("PASS");break;
default:
printf("TRYAGAIN");break;
}
printf("\n\n本次测验到此结束!
");
}
main()
{
intgrade;
grade=subject();
output(grade);
}