白骑士的C++教学实战项目篇 4.1 简单的计算器

19 篇文章 0 订阅
12 篇文章 0 订阅

系列目录

上一篇:白骑士的C++教学高级篇 3.4 异常处理

        在这篇文章中,我们将通过一个简单的计算器项目,来实践和巩固之前学到的C++知识。这个项目将帮助我们理解如何设计和实现一个实际应用程序,以及如何进行测试和调试。

项目简介

        我们将实现一个简单的计算器程序,该程序能够执行基本的算术运算:加法、减法、乘法和除法。用户可以输入两个操作数和一个运算符,程序将根据用户输入的运算符进行相应的计算,并输出结果。

功能实现

        在实现计算器功能之前,我们需要明确程序的基本结构和功能模块。我们将分为以下几个步骤进行:

  1. 接受用户输入
  2. 进行算术运算
  3. 输出计算结果
  4. 处理异常情况(如除零错误)

        首先,我们需要定义一个函数来接受用户输入并返回操作数和运算符,代码如下:

#include <iostream>
#include <stdexcept>


// 函数声明
void getInput(double& num1, double& num2, char& op);


double calculate(double num1, double num2, char op);


int main() {
    double num1, num2;
    char op;

    // 获取用户输入
    getInput(num1, num2, op);

    // 计算并输出结果
    try {
        double result = calculate(num1, num2, op);

        std::cout << "Result: " << result << std::endl;
    } 

    catch (const std::runtime_error& e) {
        std::cerr << "Error: " << e.what() << std::endl;
    }

    return 0;
}


// 获取用户输入
void getInput(double& num1, double& num2, char& op) {
    std::cout << "Enter first number: ";
    std::cin >> num1;
    std::cout << "Enter operator (+, -, *, /): ";
    std::cin >> op;
    std::cout << "Enter second number: ";
    std::cin >> num2;

}


// 进行计算
double calculate(double num1, double num2, char op) {
    switch (op) {
        case '+':
            return num1 + num2;

        case '-':
            return num1 - num2;

        case '*':
            return num1 * num2;

        case '/':
            if (num2 == 0) {
                throw std::runtime_error("Division by zero");
            }

            return num1 / num2;

        default:
            throw std::runtime_error("Invalid operator");
    }
}

        在这个代码中,我们定义了两个函数:‘getInput‘ 用于获取用户输入,‘calculate‘ 用于进行算术运算并返回结果。在 ‘main‘ 函数中,我们调用 ‘getInput‘ 函数获取用户输入,并使用 ‘try-catch‘ 语句捕获和处理可能的异常。

测试与调试

        测试和调试是确保程序正确性和可靠性的关键步骤。在实际项目开发中,我们需要进行充分的测试,以验证程序在各种情况下的行为。对于这个简单的计算器项目,我们可以进行以下几种测试:

  1. 正常情况测试:测试加法、减法、乘法和除法的正常输入;
  2. 边界情况测试:测试零除情况、负数运算、大数运算等;
  3. 异常情况测试:测试无效操作符输入、非数字输入等。

正常情况测试

        我们可以运行程序并输入以下数据,检查程序输出是否正确,输入如下:

Enter first number: 10

Enter operator (+, -, *, /): +

Enter second number: 5

Result: 15

        另一示例:

Enter first number: 10

Enter operator (+, -, *, /): /

Enter second number: 2

Result: 5

边界情况测试

        测试零除情况,输入如下:

Enter first number: 10

Enter operator (+, -, *, /): /

Enter second number: 0

Error: Division by zero

        测试负数运算,输入如下:

Enter first number: -10

Enter operator (+, -, *, /): *

Enter second number: 5

Result: -50

异常情况测试

        测试无效操作符输入,输入如下:

Enter first number: 10

Enter operator (+, -, *, /): %

Enter second number: 5

Error: Invalid operator

        通过这些测试,我们可以确保程序在各种情况下的行为都是正确的。如果发现任何问题,我们需要进行调试,找出并修复代码中的错误。

总结

        通过这个简单的计算器项目,我们不仅复习了C++的基础知识和常用语法,还学习了如何设计和实现一个实际应用程序。项目的实现过程包括接受用户输入、进行算术运算、输出计算结果以及处理异常情况。此外,我们还了解了测试和调试的重要性,并进行了多种测试以验证程序的正确性。希望通过这个项目,能够更好地掌握C++编程技巧,并为未来的复杂项目打下坚实的基础。接下来,我们将继续探讨更多高级主题,进一步提升C++编程能力。

下一篇:白骑士的C++教学实战项目篇 4.2 学生成绩管理系统​​​​​​​

  • 8
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

白骑士所长

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值