题目描述:
做一个小学生考试系统,功能如下:
(1)利用随机函数出10道加法题;
(2)小学生用户答题,给出每道题的答案;
(3)对小学生的答案进行评判;
(4)计算小学生的答题正确率;
解答:
/*************************************************************
功能描述:这是一个小学生考试系统,可以根据用户的需要进行加减乘除,以及四则混合运算的检测。
输入参数:m-选择题目类型
a,b,d-运算值
c-混合运算时的随机运算符
其他说明:无
*************************************************************/
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
int sum=0;
int a,b,d,t;
int c,m;
int i;
srand(time(0));
printf(" 小学生考试系统\n");
printf("请选择题目类型:\n0:加法\n1:减法\n2:乘法\n3:除法\n4:四则混合运算\n");
scanf("%d",&m);
for(i=0; i<10; i++)
{
printf("第 %d 题: ", i+1);
switch(m)
{
case 0:
do
{
a=rand()%100+1;
b=rand()%100+1;
if(a<b&&(c==1||c==3))
{
d=a;
a=b;
b=d;
}
if(c==3) a=(a/b)*b;
}
while((a+b)>=100);
d=a+b;
printf("%d+%d=", a, b);
break;
case 1:
do
{
a=rand()%100+1;
b=rand()%100+1;
if(a<b&&(c==1||c==3))
{
d=a;
a=b;
b=d;
}
if(c==3) a=(a/b)*b;
}
while((a+b)>=100||a*b>=100||(a-b)<0);
d=a-b;
printf("%d—%d=", a, b);
break;
case 2:
do
{
a=rand()%100+1;
b=rand()%100+1;
if(a<b&&(c==1||c==3))
{
d=a;
a=b;
b=d;
}
if(c==3) a=(a/b)*b;
}
while((a+b)>=100||a*b>=100||(a-b)<0);
d=a*b;
printf("%d×%d=", a, b);
break;
case 3:
do
{
a=rand()%100+1;
b=rand()%100+1;
if(a<b&&(c==1||c==3))
{
d=a;
a=b;
b=d;
}
if(c==3) a=(a/b)*b;
}
while((a+b)>=100||a*b>=100||(a-b)<0);
d=a/b;
printf("%d÷%d=", a, b);
break;
case 4:
c=rand()%4;
do
{
a=rand()%100+1;
b=rand()%100+1;
if(a<b&&(c==1||c==3))
{
d=a;
a=b;
b=d;
}
if(c==3) a=(a/b)*b;
}
while((a+b)>=100||a*b>=100||(a-b)<0);
switch(c)
{
case 0:
d=a+b;
printf("%d+%d=", a, b);
break;
case 1:
d=a-b;
printf("%d—%d=", a, b);
break;
case 2:
d=a*b;
printf("%d×%d=", a, b);
break;
case 3:
d=a/b;
printf("%d÷%d=", a, b);
break;
break;
}
break;
}
scanf("%d", &t);
if(t==d)
{
printf(" Right! \n你真棒\n");
sum++;
}
else printf(" Wrong! \n再接再励!\n");
}
printf("共答对了%d道题,得分率%.2f\n", sum, 1.0*sum/10*100);
return 0;
}