**

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;
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐