CPP实现:2.编写一个练习计算的小程序,要求: 编写加减乘除4个自定义函数add,sub,mul,div,在主函数中调用这4个函数去完成以下功能: (1)随机生成5道四则运算题,题目的类型自加,减,乘,除中任意混合出题(即5道题目中有各种类型的题目),每个题目的2个整数是20以内的随机数,题目显示在屏幕上,由用户输入答案(如下图所示)。 (2)程序判断用户输入的答案是否正确,统计答题的正确率。运行结束时,询问是否继续练习,如果回答“Y”则继续进行练习,如果回答“N”则退出练习。 (3)把每次所做的题目和答题的准确率输出在屏幕上,同时也把每次的运行结果保存到result.txt文本文件中。
时间: 2023-11-30 20:02:02 浏览: 104
yuandaima.rar_asm 程序_site:www.pudn.com_随机数
以下是实现题目要求的CPP程序,其中包括自定义的四个函数add、sub、mul、div,以及主函数中的题目出题、答题判断和统计正确率的功能:
```cpp
#include <iostream>
#include <fstream>
#include <cstdlib>
#include <ctime>
using namespace std;
// 自定义加法函数
int add(int a, int b) {
return a + b;
}
// 自定义减法函数
int sub(int a, int b) {
return a - b;
}
// 自定义乘法函数
int mul(int a, int b) {
return a * b;
}
// 自定义除法函数,保留2位小数
float div(int a, int b) {
return ((float)a) / b;
}
int main() {
srand(time(NULL)); // 初始化随机数种子
char choice; // 是否继续练习的选择
int correctCount = 0; // 统计答对的题目数量
int totalCount = 0; // 统计做过的题目数量
int a, b, result; // 题目中的两个整数和答案
char op; // 题目中的运算符
do {
// 随机生成5道四则运算题
for (int i = 0; i < 5; i++) {
a = rand() % 20 + 1; // 生成20以内的随机整数
b = rand() % 20 + 1;
switch (rand() % 4) { // 随机生成运算符
case 0:
op = '+';
result = add(a, b);
break;
case 1:
op = '-';
result = sub(a, b);
break;
case 2:
op = '*';
result = mul(a, b);
break;
case 3:
op = '/';
result = div(a, b);
break;
}
// 显示题目
cout << "第" << i + 1 << "道题:" << a << " " << op << " " << b << " = ";
// 用户输入答案
if (op == '/') { // 处理除法
float fResult;
cin >> fResult;
if (abs(fResult - result) < 0.01) {
cout << "回答正确!" << endl;
correctCount++;
} else {
cout << "回答错误!正确答案为:" << result << endl;
}
} else { // 处理其他运算
int userResult;
cin >> userResult;
if (userResult == result) {
cout << "回答正确!" << endl;
correctCount++;
} else {
cout << "回答错误!正确答案为:" << result << endl;
}
}
totalCount++;
}
// 统计答题正确率
float accuracy = ((float)correctCount) / totalCount * 100;
cout << "本次练习共做了" << totalCount << "道题,其中答对了" << correctCount << "道,正确率为" << accuracy << "%" << endl;
// 保存运行结果到文件
ofstream outfile("result.txt", ios::app);
outfile << "本次练习共做了" << totalCount << "道题,其中答对了" << correctCount << "道,正确率为" << accuracy << "%" << endl;
outfile.close();
// 询问是否继续练习
cout << "是否继续练习?(Y表示继续,N表示退出):";
cin >> choice;
} while (choice == 'Y' || choice == 'y');
cout << "谢谢使用,再见!" << endl;
return 0;
}
```
程序运行时,会随机生成5道四则运算题,每道题目的两个整数是20以内的随机数,题目中的运算符是随机的。用户需要输入答案,程序会判断用户输入的答案是否正确,如果正确则显示“回答正确!”,否则显示“回答错误!正确答案为:××”,其中“××”是正确的答案。在完成5道题目后,程序会统计答对的题目数量和做过的题目数量,计算出正确率并显示出来。程序会把每次的运行结果保存到result.txt文本文件中。最后程序会询问用户是否继续练习,如果选择“Y”则继续出题,否则退出程序。
阅读全文