以下是一个更复杂的计算器程序的例子,它使用了C++中的类和对象来封装计算器的功能,并提供了用户友好的界面来执行基本的算术运算。
cpp复制代码
#include <iostream> #include <stdexcept> // 用于抛出异常
// 计算器类 class Calculator { public: // 执行加法运算 double add(double a, double b) { return a + b; }
// 执行减法运算 double subtract(double a, double b) { return a - b; }
// 执行乘法运算 double multiply(double a, double b) { return a * b; }
// 执行除法运算,如果除数为0则抛出异常 double divide(double a, double b) { if (b == 0) { throw std::invalid_argument("Division by zero is not allowed."); } return a / b; } };
int main() { Calculator calc; // 创建计算器对象 char op; double num1, num2, result;
// 显示菜单 std::cout << "Simple Calculator\n"; std::cout << "Enter operation (+, -, *, /): "; std::cin >> op;
// 输入两个数字 std::cout << "Enter first number: "; std::cin >> num1; std::cout << "Enter second number: "; std::cin >> num2;
try { // 根据用户输入执行相应的运算 switch (op) { case '+': result = calc.add(num1, num2); break; case '-': result = calc.subtract(num1, num2); break; case '*': result = calc.multiply(num1, num2); break; case '/': result = calc.divide(num1, num2); break; default: throw std::invalid_argument("Invalid operator entered."); }
// 显示结果 std::cout << "Result: " << result << std::endl; } catch (const std::invalid_argument& e) { // 捕获并显示异常信息 std::cerr << "Error: " << e.what() << std::endl; }
return 0; }
在这个例子中,我们定义了一个Calculator
类,它包含了四个成员函数来执行加法、减法、乘法和除法运算。main
函数中,我们首先创建了一个Calculator
对象,然后提示用户输入运算符和两个数字。根据用户输入的运算符,我们使用switch
语句调用相应的成员函数来计算结果。如果用户输入了无效的运算符或尝试除以零,程序将抛出异常,并在catch
块中捕获并显示错误信息。
这个程序提供了一个基本的框架,你可以根据需要进一步扩展它,例如添加更多的运算功能、改进用户界面或处理更多的异常情况。