【C++ 小项目系列】多功能计算器

项目介绍

这个系列将带您逐步完成一系列C++小项目,从简单到复杂,每个项目都会讲解核心概念和编程技巧。第一篇我们将创建一个简单的命令行计算器,支持基本的四则运算。

项目功能

  • 加法、减法、乘法和除法运算
  • 简单的用户界面
  • 错误处理(如除零错误)
  • 连续计算功能

代码实现

步骤1:包含必要的头文件

#include <iostream>
#include <limits> // 用于清除输入缓冲区
using namespace std;

步骤2:创建主函数和变量

int main() {
    char operation;
    double num1, num2, result;
    char continueCalculation;
    
    cout << "欢迎使用命令行计算器!" << endl;

步骤3:实现主循环

do {
    // 获取用户输入
    cout << "\n请输入第一个数字: ";
    while (!(cin >> num1)) {
        cout << "无效输入,请重新输入数字: ";
        cin.clear();
        cin.ignore(numeric_limits<streamsize>::max(), '\n');
    }
    
    cout << "请输入运算符 (+, -, *, /): ";
    cin >> operation;
    
    cout << "请输入第二个数字: ";
    while (!(cin >> num2)) {
        cout << "无效输入,请重新输入数字: ";
        cin.clear();
        cin.ignore(numeric_limits<streamsize>::max(), '\n');
    }

步骤4:实现计算逻辑

    // 根据运算符执行计算
    switch (operation) {
        case '+':
            result = num1 + num2;
            break;
        case '-':
            result = num1 - num2;
            break;
        case '*':
            result = num1 * num2;
            break;
        case '/':
            if (num2 != 0) {
                result = num1 / num2;
            } else {
                cout << "错误: 除数不能为零!" << endl;
                continue; // 跳过本次循环的剩余部分
            }
            break;
        default:
            cout << "错误: 无效的运算符!" << endl;
            continue; // 跳过本次循环的剩余部分
    }
    
    // 显示结果
    cout << "结果: " << num1 << " " << operation << " " << num2 << " = " << result << endl;

步骤5:添加继续计算功能

    // 询问用户是否继续
    cout << "\n是否继续计算? (y/n): ";
    cin >> continueCalculation;
    
    // 清除输入缓冲区
    cin.clear();
    cin.ignore(numeric_limits<streamsize>::max(), '\n');
    
} while (continueCalculation == 'y' || continueCalculation == 'Y');

步骤6:结束程序

    cout << "感谢使用计算器,再见!" << endl;
    return 0;
}

完整代码

#include <iostream>
#include <limits> // 用于清除输入缓冲区
using namespace std;

int main() {
    char operation;
    double num1, num2, result;
    char continueCalculation;
    
    cout << "欢迎使用命令行计算器!" << endl;
    
    do {
        // 获取用户输入
        cout << "\n请输入第一个数字: ";
        while (!(cin >> num1)) {
            cout << "无效输入,请重新输入数字: ";
            cin.clear();
            cin.ignore(numeric_limits<streamsize>::max(), '\n');
        }
        
        cout << "请输入运算符 (+, -, *, /): ";
        cin >> operation;
        
        cout << "请输入第二个数字: ";
        while (!(cin >> num2)) {
            cout << "无效输入,请重新输入数字: ";
            cin.clear();
            cin.ignore(numeric_limits<streamsize>::max(), '\n');
        }
        
        // 根据运算符执行计算
        switch (operation) {
            case '+':
                result = num1 + num2;
                break;
            case '-':
                result = num1 - num2;
                break;
            case '*':
                result = num1 * num2;
                break;
            case '/':
                if (num2 != 0) {
                    result = num1 / num2;
                } else {
                    cout << "错误: 除数不能为零!" << endl;
                    continue; // 跳过本次循环的剩余部分
                }
                break;
            default:
                cout << "错误: 无效的运算符!" << endl;
                continue; // 跳过本次循环的剩余部分
        }
        
        // 显示结果
        cout << "结果: " << num1 << " " << operation << " " << num2 << " = " << result << endl;
        
        // 询问用户是否继续
        cout << "\n是否继续计算? (y/n): ";
        cin >> continueCalculation;
        
        // 清除输入缓冲区
        cin.clear();
        cin.ignore(numeric_limits<streamsize>::max(), '\n');
        
    } while (continueCalculation == 'y' || continueCalculation == 'Y');
    
    cout << "感谢使用计算器,再见!" << endl;
    return 0;
}

编译和运行

  1. 将上面的代码保存为 calculator.cpp
  2. 打开终端/命令提示符,导航到文件所在目录
  3. 使用以下命令编译:
    g++ calculator.cpp -o calculator
    
  4. 运行程序:
    ./calculator  # Linux/Mac
    calculator.exe  # Windows
    

项目总结

通过这个简单的计算器项目,我们学习了:

  • C++的基本输入输出
  • 条件语句和循环结构
  • 错误处理和输入验证
  • 基本的算术运算

扩展挑战

尝试为这个计算器添加以下功能:

  1. 支持更多运算(如取模、幂运算)
  2. 实现计算历史记录功能
  3. 添加括号支持以处理更复杂的表达式
  4. 创建一个简单的图形用户界面(GUI)

在下一篇文章中,我们将创建一个更复杂的项目:待办事项列表管理器。敬请期待!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值