C语言程序的设计课程设计小学生测验
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
航空航天大学金城学院
《C语言程序设计》课程设计
实验报告
题目: _ 小学生测验
班级:
学号:
:
成绩:
指导教师:
完成日期:年月日
目录
一、程序的主要功能
二、系统总框架图
三、各模块的功能
四、功能模块图
五、程序结构流程图
六、试验结果
七、编程体会
八、参考资料
九、附录:程序清单及源程序
一、程序的主要功能
(1)根据随机题目填写答案
(2)共有三次机会答题,每次分数不同
(3)三次错误,自动开始下一题
(4)得出分数和评价
二、系统总框架图
三、各模块的功能
int subject() //答题函数
void output(int t)//得分和评价输出函数
main() //主函数
四、功能模块图
五、程序结构流程图
六、试验结果
七、编程体会
本程序关键在于怎么设计随机数,怎么根据每到题的回答次数,给出相应的分数以及怎么设计随机加减法。在设计随机加减问题上,我想到了奇偶数的方法。利用srand()和rand()函数随机取一个值,然后将这个值和2取余,然后就有0和1两种随机情况,各定义为加减法的导入条件。
八、参考资料
(1)CSDN博客频道:
(2)百度文库:
(3)道客巴巴:
(4)百度帖吧:
九、附录:程序清单及源程序
#include
#include
#include
int subject()
{
int
a,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);
}
}
return cj;
}
void output(int t)
. .. .
{
printf("\n 你的得分是:%d\n",t);
printf("\n 评价:");
switch(t/10)
{
case 10:
case 9: printf("SMART"); break;
case 8: printf("GOOD"); break;
case 7: printf("OK"); break;
case 6: printf("PASS"); break;
default: printf("TRY AGAIN"); break;
}
printf("\n\n 本次测验到此结束!");
}
main()
{
int grade;
grade=subject();
output(grade);
}
.. .. .. ..