【CPP】输入运算符和两个操作数,输出计算结果
习题题目:
编写一个程序,输入运算符和两个操作数,输出计算结果。例如
+100 3.14
*4 5
将操作符读入到一个称为operation 的字符串,用一个if语句判断哪个操作是用户希望
的,例如if (operation==“+”)。 将操作数读入到double 类型的变量 量。实现+、-、*、/(很
明显,分别代表加、减、乘、除)几种运算。
问题分析:
1.需要指引用户输入①运算符②分别输入两个double类型数字。如果输入类型错误,需提示重新输入。
2.根据不同的输入符,进行两数的运算。
输入校验调用函数:
double类型输入校验函数
double input_double()
{
double num = 0;
cout << "请输入一个数";
cin >> num;
while (cin.fail() or cin.get() != '\n')
{
cout << "请仅输入数字\n";
cin.clear();
cin.ignore(1024, '\n');
cin >> num;
}
return num;
}
char类型输入校验函数
char input_char() {
char ch;
cout << "请输入一位字符:\n";
ch = cin.get();
while (cin.get()!='\n') {
cout << "请只输入一位\n";
cin.clear();
cin.ignore(1024, '\n');
cin >> ch;
}
return ch;
}
主函数:
double string_to_computer()
{
cout << "请输入加减乘除操作符:\n";
char operation = input_char();
char valid_op[] = { '+' ,'-','*', '/' };
int i = 0;
while (1) {
//确认操作符的输入是否正确,不正确需要重新输入
for (i = 0; i < 3; i++) {
if (operation == valid_op[i])
break;
}
if (operation == valid_op[i])
break;
else {
cout << "请输入加减乘除操作符:\n";
operation = input_char();
}
}
double num_1 = input_double();
double num_2 = input_double();
double result;
switch (i) {
case 0:result = num_1 + num_2; break;
case 1:result = num_1 - num_2; break;
case 2:result = num_1 * num_2; break;
case 3:result = num_1 / num_2; break;
}
cout << num_1 << valid_op[i] << num_2 << "=" << result;
return result;
}