【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;
}