#include <iostream>
#include <time.h>
#include <stdio.h>
using namespace std;
/*用c++语言编写面向小学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”。
*/
int main(void)
{
int a=1;
int sum = 0;//sum代表分数
srand((unsigned)time(NULL));//这里洒随机种子
while (a<=10)//这是代表这出题数量
{
int b = 0, c = 0, d = 0, e = 0;
do
{
c = rand() % 51;
b = rand() % 51;
if(b+c<=50&&(b-c>0||c-b>0))//这里判断两个数加起来不超过50,减起来不小于0。。
break;
} while (1);
if (rand() % 2)//这里是判断要出加法不是减法。。
{
int q = 0;
do
{
cout << c << "+" << b << "=";
cin >> d;
if (d == c + b)
{
switch (q)
{
case 0:sum += 10; break;
case 1:sum += 7; break;
case 2:sum += 5; break;
default:
break;
}
break;
}
else
{
cout << "错误" << endl;
q++;
}
} while (1);
}
else
{
if (c>b)
{
int q = 0;
do
{
cout << c << "-" << b << "=";
cin >> d;
if (d == c - b)
{
switch (q)
{
case 0:sum += 10; break;
case 1:sum += 7; break;
case 2:sum += 5; break;
default:
break;
}
break;
}
else
{
cout << "错误" << endl;
q++;
}
} while (1);
}
else
{
int q = 0;
do
{
cout << b << "-" << c << "=";
cin >> d;
if (d == b - c)
{
switch (q)
{
case 0:sum += 10; break;
case 1:sum += 7; break;
case 2:sum += 5; break;
default:
break;
}
break;
}
else
{
cout << "错误" << endl;
q++;
}
} while (1);
}
}
a++;
}
switch (sum/10)
{
case 9:cout << "SMART" << endl; break;
case 8:cout << "GOOD" << endl; break;
case 7:cout << "OK" << endl; break;
case 6:cout << "PASS" << endl; break;
default:cout << "TRY AGAIN" << endl;
break;
}
system("pause");
return 0;
}
这是我对这道的看法,运行的话基本符合题目要求。。。