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”。
时间: 2024-03-13 19:45:58 浏览: 56
C++计算机实现,分数计算,小课程作业。
以下是一个 C++ 实现的示例程序:
```cpp
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
int generate_question(int &a, int &b, char &op)
{
// 生成随机的加减法算式
a = rand() % 50 + 1;
b = rand() % 50 + 1;
op = rand() % 2 == 0 ? '+' : '-';
int c = op == '+' ? a + b : a - b;
return c;
}
int check_answer(int answer, int correct)
{
// 检查学生输入的答案是否正确
if (answer == correct)
return 10;
else if (answer == -1)
return 0;
else
{
for (int i = 0; i < 2; i++)
{
cout << "Wrong answer, please try again: ";
cin >> answer;
if (answer == correct)
return 7 - i * 2;
}
cout << "Correct answer is: " << correct << endl;
return 0;
}
}
int main()
{
int score = 0;
srand(time(NULL)); // 初始化随机数种子
for (int i = 0; i < 10; i++)
{
int a, b, c;
char op;
c = generate_question(a, b, op);
cout << "Question " << i + 1 << ": " << a << " " << op << " " << b << " = ";
int answer;
for (int j = 0; j < 3; j++)
{
cin >> answer;
if (answer < 0 || answer > 50)
{
cout << "Answer must be between 0 and 50, please try again: ";
j--;
continue;
}
if (op == '+' && a + answer > 50)
{
cout << "The sum of two numbers must be between 0 and 50, please try again: ";
j--;
continue;
}
if (op == '-' && a - answer < 0)
{
cout << "The difference of two numbers must be between 0 and 50, please try again: ";
j--;
continue;
}
int s = check_answer(answer, c);
if (s > 0)
{
score += s;
break;
}
}
if (answer != c)
cout << "No chance left, correct answer is: " << c << endl;
}
cout << "Your score is: " << score << endl;
if (score >= 90)
cout << "SMART" << endl;
else if (score >= 80)
cout << "GOOD" << endl;
else if (score >= 70)
cout << "OK" << endl;
else if (score >= 60)
cout << "PASS" << endl;
else
cout << "TRY AGAIN" << endl;
return 0;
}
```
程序中使用了 `rand` 函数生成随机数,使用了 `cin` 函数获取学生输入的答案,并使用了一个 `check_answer` 函数来检查答案是否正确。在 `main` 函数中循环生成 10 道题目,每道题目学生有三次机会输入答案,如果输入错误则要求重新输入,超过三次机会则输出正确答案。每次输入正确答案的得分分别为 10 分、7 分和 5 分,总成绩根据得分范围分别显示为 SMART、GOOD、OK、PASS 和 TRY AGAIN。在输入答案时还进行了一些条件判断,确保算式没有超出 1-2 年级的水平,只允许进行 50 以内的加减法,不允许两数之和或两数之差超出 0~50 的范围,负数更是不允许的。
阅读全文