PAGE
PAGE 1
Time \@ "yyyy年M月d日"2017年10月29日指导教师:
Time \@ "yyyy年M月d日"2017年10月29日
指导教师:郑老师
组别:16自动化第7组
[南京理工大学紫金学院]成员:谢德煜,徐安伟 徐凡,徐航小学生测试
[南京理工大学紫金学院]
成员:谢德煜,徐安伟
徐凡,徐航
小学生测试
[C语言报告]
TOC \o "1-3" \h \u 7555 一、组内成员分工 2
21332 二、课题介绍 2
25783 三、程序功能介绍 2
30012 四、主体内容 2
7694 1.设计分析 2
23332 2.流程图 2
26932 3.各模块的功能及程序说明 2
27455 4.源代码 2
11225 5.操作方法 2
29576 6.实验结果 2
9971 五、设计 2
组内成员分工
谢德煜:报告册书写
徐安伟:分析设计
徐凡:编写程序
徐航:调试修改
课题介绍
小学生测验系统
任务:面向小学1~2年级学生,随机选择两个整数和加减法形成算式要求学生解答。
功能要求:1)电脑随机出10道题,每题10分,程序结束时显示学生得分;
2)确保算式没有超出1~2年级的水平,只允许进行50以内的加减法,不允许两数之和或之差超出0~50的范围,负数更是不允许的;
3)每道题学生有三次机会输入答案,当学生输入错误答案时,提醒学生重新输入,如果三次机会结束则输出正确答案;
4)对于每道题,学生第一次输入正确答案得10分,第二次输入正确答案得7分,第三次输入正确答案得5分,否则不得分;
5)总成绩90以上显示“SMART”,80-90显示“GOOD”,70-80显示“OK”,60-70显示“PASS”,60以下显示“TRY AGAIN”。
程序功能介绍
通过随机函数rand()生成两个之和<50且之差>0的两个随机数,以及随机的+—号来实现随机选择两个整数和加减法。
通过if函数来进行的结果的判断,同时进行分数档次的划分,计算最终的十次叠加值得出最后的总分。从而进行对较为客观的总评。
四、主体内容
1.设计分析:通过随机函数和循环结构来实现面向小学生的测试
开始流程图
开始
判断计算计算判断计算计算判断输出算式生成两个随机数和随机的加减号
判断
计算
计算
判断
计算
计算
判断
输出算式
生成两个随机数和随机的加减号
3.源代码
#include
#include
#include
#include
void main()
{
int num=0,add=0; /* 答题数,总分 */
int score[3]={10,7,5};/*得几分*/
char str[20],str1[10][20];
while(1)
{
int a=0,b=0,d=0,c=0,k=0,i=0,j=-1,result;
char sf[2]={'+','-'};/* 符号 */
while(1)
{
a=rand()%51;/*0-50的随机数*/
b=rand()%51;/*0-50的随机数*/
d=rand()%2;/* 随机符号 */
if(d==0)c=a+b;
else c=a-b;
if(c>=0 && c<=50)/* 如果相同重新出题 */
{
sprintf(str,"%d %c %d = \n",a,sf[d],b);
strcpy(str1[num],str);
if(num==0) break;
j=-1;
for(i=0; i
{
if(strcmp(str,str1[i])==0)
{ j=1;break;}
}
if(j<0)
break;
}
}
printf("%s\n",str);/* 回答 */
printf("输入计算结果:\n");
while(1)
{
scanf("%d",&result);
k++;
if(result==c)
{
printf("回答正确!\n");
add+=score[k-1];
break;
}
else if(k<3)
{
printf("错误,请重新回答:\n");
}
else