简易计算器(C++实现)

1. ​​基本语法​​
​​变量声明​​: bool running = true;
​​数据类型​​: double, char, bool
​​运算符​​: +, -, *, /, %, = 等
​​控制流​​: while循环, switch分支, if条件
​​函数​​: 函数声明与定义、参数传递、返回值

2. ​​函数封装​​
​​加法函数​​: double add(double a, double b)
​​减法函数​​: double subtract(double a, double b)
​​乘法函数​​: double multiply(double a, double b)
​​除法函数​​: double divide(double a, double b)
​​菜单显示​​: void displayMenu()
​​结果显示​​: void displayResult(double num1, double num2, char op, double result)
每个函数专注于单一功能,体现了模块化编程思想。

3. ​​错误处理​​
try {
    result = divide(num1, num2);
} catch (const std::runtime_error& e) {
    std::cerr << "错误: " << e.what() << std::endl;
}
除法函数中检查除零错误:

if (b == 0) {
    throw std::runtime_error("除数不能为零!");
}
使用异常处理机制捕获并处理错误。

4. ​​输入输出处理​​
使用 std::cin 和 std::cout 进行输入输出
菜单系统:清晰的用户界面
输入缓冲区清理:std::cin.ignore(10000, '\n') 防止残留输入影响后续操作

5. ​​基本程序结构​​
#include指令:包含必要的头文件
函数原型声明
main()函数作为程序入口
逻辑清晰的程序流程控制

源代码:

#include <iostream>
#include <string>
#include <stdexcept>

// 函数声明
double add(double a, double b);
double subtract(double a, double b);
double multiply(double a, double b);
double divide(double a, double b);
void displayResult(double num1, double num2, char op, double result);
void displayMenu();

int main() {
    // 控制程序运行的主循环
    bool running = true;

    // 用户输入选项
    char choice;

    while (running) {
        // 显示计算器菜单
        displayMenu();

        // 获取用户输入
        std::cin >> choice;

        // 处理用户选择
        switch (choice) {
        case '1':
        case '2':
        case '3':
        case '4': {
            // 获取操作数
            double num1, num2;
            std::cout << "请输入第一个数字: ";
            std::cin >> num1;
            std::cout << "请输入第二个数字: ";
            std::cin >> num2;

            // 执行计算
            double result;
            try {
                switch (choice) {
                case '1':
                    result = add(num1, num2);
                    displayResult(num1, num2, '+', result);
                    break;
                case '2':
                    result = subtract(num1, num2);
                    displayResult(num1, num2, '-', result);
                    break;
                case '3':
                    result = multiply(num1, num2);
                    displayResult(num1, num2, '*', result);
                    break;
                case '4':
                    result = divide(num1, num2);
                    displayResult(num1, num2, '/', result);
                    break;
                }
            }
            catch (const std::runtime_error& e) {
                std::cerr << "错误: " << e.what() << std::endl;
            }
            break;
        }
        case '5': // 退出程序
            running = false;
            std::cout << "谢谢使用简易计算器!" << std::endl;
            break;
        default:
            std::cout << "无效的选择,请重新输入!" << std::endl;
            break;
        }

        // 清除输入缓冲区
        std::cin.ignore(10000, '\n'); // 忽略最多10000个字符,直到遇到换行符
    }

    return 0;
}

// 函数定义
void displayMenu() {
    std::cout << "\n===== 简易计算器 =====" << std::endl;
    std::cout << "1. 加法 (+)" << std::endl;
    std::cout << "2. 减法 (-)" << std::endl;
    std::cout << "3. 乘法 (*)" << std::endl;
    std::cout << "4. 除法 (/)" << std::endl;
    std::cout << "5. 退出" << std::endl;
    std::cout << "请选择操作(1-5): ";
}

// 加法函数
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;
}

// 除法函数(带除零错误检查)
double divide(double a, double b) {
    if (b == 0) {
        throw std::runtime_error("除数不能为零!");
    }
    return a / b;
}

// 显示计算结果
void displayResult(double num1, double num2, char op, double result) {
    std::cout << "\n计算结果: " << num1 << " " << op << " " << num2 << " = " << result << std::endl;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值