first commit

master
359673683@qq.com 6 years ago
commit 285227ac3f

@ -0,0 +1,250 @@
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
//定义习题结构
struct test{
char fuhao;
int a; //其中一个加数或者减数
int b; //另一个加数或者减数
int rezult; //两数只差或者两数之和
}qst[10]; //10道题目question
void jiemian(); //界面
void xitong(); //系统生成题目
int dati(); //学生答题模块
void pingjia(); //最终评价
int main()
{
jiemian();
xitong();
pingjia();
return 0;
}
//界面
void jiemian()
{
int kind; //是否开始考试
printf("此测验适用于小学1、2年级\n");
printf("-----------------------------\n");
printf("如果准备好请按 1 开始答题\n");
printf("-----------------------------\n");
scanf("%d",&kind);
while(kind!=1)
{
printf("输入错误请重新输入1\n");
scanf("%d",&kind);
}
printf("系统正在自动生成题目\n");
printf("-----------------------------\n");
printf("祝你测试愉快!\n");
printf("-----------------------------\n");
printf("现在开始答题\n");
printf("---------------------\n");
}
//系统生成题目
void xitong()
{
int a; //a为随机一个数用来判断做加法还是减法
int b,c; //b,c为加数减数
int i; //次数
srand(time(NULL));
for(i=0;i<10;i++){
a=rand();
b=rand()%51;
c=rand()%51;
if(a%2==0)
{
qst[i].fuhao='+';
while(b+c>50)
{
b=rand()%51; //判断两数之和是否超纲
c=rand()%51;
}
}
else
{
qst[i].fuhao='-';
if(b<c)
{
int t;
t=b;
b=c;
c=t; //将大数置为被减数,小数位减数
}
}
qst[i].a=b;
qst[i].b=c;
if(a%2==0) qst[i].rezult=b+c;
else qst[i].rezult=b-c;
}
/* for(i=0;i<10;i++)
printf("第%d题为%d%c%d=\n\n",i+1,qst[i].a,qst[i].fuhao,qst[i].b); */
}
//学生答题模块
int dati()
{
int i; //循环次数
int stuanswer; //学生答案
int count=3; //每题的可答题次数
int grade=0; //学生成绩
for(i=0;i<10;i++)
{
printf("第%d题为%d%c%d=\n",i+1,qst[i].a,qst[i].fuhao,qst[i].b);
scanf("%d",&stuanswer);
if(stuanswer==qst[i].rezult)
printf("恭喜你答对了!\n");
while(stuanswer!=qst[i].rezult&&count>0)
{
printf("很遗憾你答错了\n");
count--;
if(count==0)
break;
printf("你还有%d次机会\n",count);
printf("请重新输入你的答案: ");
scanf("%d",&stuanswer);
}
switch(count)
{
case 0:
printf("很遗憾此题你没有得到分数\n");
printf("此题的正确答案为 %d\n",qst[i].rezult); break;
case 1:
printf("此题你得到分数的分数为5分\n"); grade+=5; break;
case 2:
printf("此题你得到分数的分数为7分\n"); grade+=7; break;
case 3:
printf("此题你得到分数的分数为10分\n"); grade+=10; break;
}
printf("你目前的总分为%d\n\n",grade);
count=3; //重置计数次数
}
return grade; //返回最终成绩进行判断
}
//最终评价
void pingjia()
{
int grade;
grade=dati();
printf("你的总分为%d\n",grade);
printf("你最终的评价;\n");
grade/=10;
switch(grade){
case(10):
case(9):
printf("SMART\n"); break;
case(8):
printf("GOOD\n"); break;
case(7):
printf("OK\n"); break;
case(6):
printf("PASS\n"); break;
default:
printf("TRY AGAIN\n"); break;
}
}

Binary file not shown.
Loading…
Cancel
Save