**
1.课设问题:
**
面向小学1~2年级学生,随机选择两个整数和加减法形成算式要求学生解答。
功能要求:
(1)电脑随机出10道题,每题10分,程序结束时显示学生得分;
(2)确保算式没有超出12年级的水平,只允许进行50以内的加减法,不允许两数之和或之差超出050的范围,负数更是不允许的;
(3)每道题学生有三次机会输入答案,当学生输入错误答案时,提醒学生重新输入,如果三次机会结束则输出正确答案;
(4)对于每道题,学生第一次输入正确答案得10分,第二次输入正确答案得7分,第三次输入正确答案得5分,否则不得分;
(5)总成绩90以上显示“SMART”
,80-90显示“GOOD”,70-80显示“OK”,60-70显示“PASS”,60以下“TRY AGAIN”
以下为代码(大一新生;希望大佬看到手下留情。)
#include "stdafx.h"
#include<iostream>
#include<cstdlib>
#include<ctime>
using namespace std;
//生成两个随机数
int num(int &a, int &b)
{
int a1, b1;
do
{
a1 = rand() % 50;
b1 = rand() % 50;
} while (!(a1 + b1 >= 0 && a1 + b1 <= 50 && a1 - b1 >= 0 && a1 - b1 <= 50));
a = a1, b = b1;
return a;
return b;
}
int _tmain(int argc, _TCHAR* argv[])
{
srand(time(NULL));//时间,保证每次的随机数不同
cout << "-----------------------高考试题----------------------" << endl;
int a, b, y,e,ans,t=1,sum=0,cnt=0;
while (t <= 10)
{
cout << "NO." << t << endl;
e = rand() % 2 + 1;//加减号判断
num(a, b);
while (cnt <= 3)//输入次数的判断
{
if (e == 1)//1为+号
{
cout << a << "+" << b << "=";
cin >> ans;
if (a + b == ans)
{
cout << "答对啦" << endl;
if (cnt == 0)sum += 10;//进行分数叠加
if (cnt == 1)sum += 7;
if (cnt == 2)sum += 5;
if (cnt == 3)sum += 0;
break;
}
else{
cnt++;//回答次数叠加
cout << "错了!" << endl;
if (cnt == 3)
{
cout << "答案:" << a + b << endl;
if (cnt == 0)sum += 10;
if (cnt == 1)sum += 7;
if (cnt == 2)sum += 5;
if (cnt == 3)sum += 0;
break;
}
}
}
else if (e==2)//2为减号
{
cout << a << "-" << b << "=";
cin >> ans;
if (a - b == ans)
{
cout << "答对啦" << endl;
if (cnt == 0)sum += 10;
if (cnt == 1)sum += 7;
if (cnt == 2)sum += 5;
if (cnt == 3)sum += 0;
break;
}
else
{
cnt++;
cout << "错了!" << endl;
if (cnt == 3)
{
cout << "答案:" << a - b << endl;
sum += 0;
break;
}
}
}
}
if (cnt == 0)cout << "本题得10分" << '\n';
if (cnt == 1)cout << "本题得7分" << '\n';
if (cnt == 2)cout << "本题得5分" << '\n';
if (cnt == 3)cout << "本题得0分" << '\n';
t++;
cnt = 0;
}
cout << "------------------------考试结束------------------------" << endl;
cout << "您的总分为:" << sum<<endl;
int x;
x = sum / 10;
switch (x)
{
case(10) : cout << "SMART!" << endl; break;
case(9) : cout << "SMART!" << endl; break;
case(8) : cout << "GOOD!" << endl; break;
case(7) : cout << "OK" << endl; break;
default:cout << "TRY AGAIN" << endl; break;
}
cin.get();
cin.get();
return 0;