编译环境:VC++6.0 SP6
编程序,循环进行如下的处理过程:由计算机生成简单的四则运算题;用户给出答案;计算机判断对错。
直到用户回答说不再继续做了时结束程序。
提示:可让用户选择指定出加、减、乘、除哪一种运算题,以及出一位数还是两位数的运算题;
而后通过使用"rand()"或"rand()0"来获得一个0到9的一位整数随机值或得到0到99的两位整数随机值来为用户出题。
还可进一步对用户所做算术题的对错次数进行记录,结束程序时给出一个某种形式的成绩。
#include
#include
#include
#include
#include
char type='+';
char level=2;
bool option()
{
char c;
system("cls");
printf("输入1,选择题目难度(默认100以内)\n输入2,选择做题类型(默认做加法题)\n输入3,开始做题");
scanf("%c",&c);
fflush(stdin);
if(c=='1')
{
printf("\r输入1,十以内的运算\n输入2,一百以内的运算");
scanf("%c",&level);
fflush(stdin);
option();
}else if(c=='2')
{
printf("\r输入四则运算的类型,用其符号表示,例如计算加法则输入+号");
scanf("%c",&type);
fflush(stdin);
option();
}else if(c=='3')
{
printf("Check it out");
return true;
}
else
{
printf("输入有误,请重新输入!");
return false;
}
}
void main()
{
char lyz810;
srand(time(NULL));
system("title 四则运算练习器 by lyz810&color
1e");
system("msg %username% /time:1 欢迎使用四则运算练习器!");
option();
double result=0;
double a,b;
char i;
short right=0,wrong=0,count=0;;
for(i=0;i<5;i++)
{
Sleep(300);
printf(".");
}
printf("\nHere we go!\n");
Sleep(1000);
system("start calc");
while(result!=-100)
{
if(level=='1')
{
a=rand();
b=rand();
}else
{
a=rand()0;
b=rand()0;
}
switch(type)
{
case '+':
printf("第%d题:%.0lf+%.0lf=?(输入-100查看分数)",count+1,a,b);
scanf("%lf",&result);
if(result==(a+b))
{
printf("√,你真棒!\n");
right++;
}
else if(result!=-100)
{
printf("×,正确答案为%.0lf\n",a+b);
wrong++;
}
else count--;
count++;
break;
case '-':
printf("第%d题:%.0lf-%.0lf=?(输入-100查看分数)",count+1,a,b);
scanf("%lf",&result);
if(result==(a-b))
{
printf("√,你真棒!\n");
right++;
}
else if(result!=-100)
{
printf("×,正确答案为%.0lf\n",a-b);
wrong++;
}
else count--;
count++;
break;
case '*':
printf("第%d题:%.0lf×%.0lf=?(输入-100查看分数)",count+1,a,b);
scanf("%lf",&result);
if(result==(a*b))
{
printf("√,你真棒!\n");
right++;
}
else if(result!=-100)
{
printf("×,正确答案为%.0lf\n",a*b);
wrong++;
}
else count--;
count++;
break;
case '/':
if(b==0)break;
printf("第%d题:%.0lf÷%.0lf=?(结果如果除不尽,保留2位小数,输入-100查看分数)",count+1,a,b);
scanf("%lf",&result);
if(fabs(result-(a/b))<0.005)
{
printf("√,你真棒!\n");
right++;
}
else if(result!=-100)
{
printf("×,正确答案为%.2lf\n",a/b);
wrong++;
}
else count--;
count++;
break;
}
}
if(count)
printf("\n你一共做了%d道题,对做对了%d道,做错了%d道,正确率为%.2lf%%",count,right,wrong,right/(double)count*100);
if(right/(double)count*100==100&&count)
{
printf(",全做对了,你真是个聪明的孩子!\n");
}
else
if(right/(double)count*100>80&&count)
{
printf(",做得不错,继续努力!\n");
}
else
if(right/(double)count*100>70&&count)
{
printf(",做得不太好,要多加练习啊!\n");
}
else
if(right/(double)count*100>=60&&count)
{
printf(",刚刚及格,要多动脑思考!\n");
}
else
{
printf(",悲剧了,没及格,今天没饭吃!\n");
}
system("pause>nul");
}
(转载请将此图标删除)