0
已解决
#include <iostream>
#include <limits>
using namespace std;
void displayMenu() {
cout << "\n简易计算器\n";
cout << "1. 加法\n";
cout << "2. 减法\n";
cout << "3. 乘法\n";
cout << "4. 除法\n";
cout << "5. 退出\n";
cout << "请选择操作(1-5): ";
}
double getNumberInput(const string& prompt) {
double num;
while (true) {
cout << prompt;
cin >> num;
if (cin.fail()) {
cin.clear();
cin.ignore(numeric_limits<streamsize>::max(), '\n');
cout << "输入无效,请重新输入数字\n";
} else {
break;
}
}
return num;
}
void performOperation(int choice) {
double num1 = getNumberInput("输入第一个数字: ");
double num2 = getNumberInput("输入第二个数字: ");
switch (choice) {
case 1:
cout << "结果: " << num1 << " + " << num2 << " = " << num1 + num2 << endl;
break;
case 2:
cout << "结果: " << num1 << " - " << num2 << " = " << num1 - num2 << endl;
break;
case 3:
cout << "结果: " << num1 << " * " << num2 << " = " << num1 * num2 << endl;
break;
case 4:
if (num2 != 0) {
cout << "结果: " << num1 << " / " << num2 << " = " << num1 / num2 << endl;
} else {
cout << "错误: 除数不能为零\n";
}
break;
default:
cout << "无效操作\n";
}
}
int main() {
int choice;
do {
displayMenu();
cin >> choice;
if (cin.fail()) {
cin.clear();
cin.ignore(numeric_limits<streamsize>::max(), '\n');
cout << "无效输入,请输入1-5的数字\n";
continue;
}
if (choice >= 1 && choice <= 4) {
performOperation(choice);
} else if (choice != 5) {
cout << "无效选择,请重新输入\n";
}
} while (choice != 5);
cout << "感谢使用计算器,再见!\n";
return 0;
}
emmm
