C语言小学数学测验程序设计
(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”。 展开
程序核心很简单,基本上编程人没有不会的
给孩子用至少界面要漂亮点的,就是时间问题啊。
#include<cstdlib>
#include<cstdio>
#include<windows.h>
int main()
{
int i,j,k;
int totalscore=0;
int score[4]={10,7,5};
srand(GetTickCount());
//还可以在这儿加一个计算花费的时间
DWORD starttime=GetTickCount();
for(i=0;i<10;i++)
{
int chance=3;
int op=rand()%2;
int a,b,c;
if(op==1)//则显示一个减法的题目啊
{
a=rand()%50;
b=rand()%a;
for(j=0;j<3;j++)
{
printf("%d - %d =",a,b);
scanf("%d",&c);
if(c==(a-b))
{
totalscore+=score[j];
break;
}
}
}
else
{
a=rand()%50;
b=rand()%(50-a);
for(j=0;j<3;j++)
{
printf("%d + %d =",a,b);
scanf("%d",&c);
if(c==(a+b))
{
totalscore+=score[j];
break;
}
}
}
}
DWORD endtime=GetTickCount()-starttime;
printf("the total time you spent is %ds\nYOU ARE ",endtime/1000);
if(totalscore>90)printf("SMART\n");
else if(totalscore>=80)printf("GOOD\n");
else if(totalscore>=70)printf("OK\n");
else if(totalscore>=60)printf("PASS\n");
else printf("TRY AGAIN\n");
system("pause");
return 0;
}
3 2 1