C++编写简单的计算器程序

星野
星野
发布时间:2026-10-13| 5人浏览过
原创

本教程介绍了如何使用 C++ 开发一个简单的控制台计算器程序,涵盖加法、减法、乘法以及除法(含余数)功能。文章详细展示了完整的源代码结构,包括主函数入口、操作选择逻辑与各运算功能的模块化实现。

准备工作

进行此类控制台应用开发,建议具备以下环境配置:

  • 操作系统:Windows 7 及以上版本(兼容 Windows 10/11)。
  • 开发工具:Visual Studio 2015 或更高版本(如 VS2019/2022),这是目前广泛使用的集成开发环境。
  • 编程语言:C++。

核心代码解析

该计算器程序的核心在于将不同运算封装为独立函数,并通过 `main` 函数中的循环或递归逻辑调用这些函数。以下是关键部分的实现思路:

第1步:定义各运算函数

我们分别定义 add()(加法)、substraction()(减法)、multiplication()(乘法)和 division()(除法)四个函数。每个函数内部接收用户输入的两个数值,完成对应运算后打印结果。

除法函数的特殊处理:除法不仅包含商,还包含余数。因此 division() 使用 / 获取商,使用 % 取模运算符获取余数并一并输出。

第2步:构建操作选择逻辑 (operation函数)

operation() 函数充当中央调度器。它通过打印菜单提示用户输入数字来选择运算类型:

  • 输入 1:执行加法。
  • 输入 2:执行减法。
  • 输入 3:执行乘法。
  • 输入 4:执行除法(保留余数)。
  • 输入 0:退出程序。

为了防止非法输入导致程序崩溃,代码中使用了 try-catch 机制。当用户输入非预期字符时,程序捕获异常并提示“输入错误”,随后继续询问选择,保持程序的健壮性。

第3步:启动程序 (main函数)

在 int main() 中,首先输出一句欢迎语,随即调用 operation() 进入交互流程。

完整源码

您可以直接复制以下代码并在 Visual Studio 中创建一个新的 C++ 源文件进行编译运行:


// 简单的四则运算计算器
#include "stdafx.h" // 预编译头,若使用新版VS可能需调整或删除
#include <iostream>
#include <stdio.h>
#include <stdlib.h> // 新增 exit 所需头文件
using namespace std;

// 加法运算函数
void add()
{
    printf("输入要计算的加数(例如 a b)\n");
    int adda = 0, addb = 0, addc = 0;
    cin >> adda;
    cin >> addb;
    addc = adda + addb;
    cout << adda << "加" << addb << "等于" << addc << endl;
}

// 减法运算函数
void substraction()
{
    printf("输入要计算的减数(例如 a b)\n");
    int suba = 0, subb = 0, subc = 0;
    cin >> suba;
    cin >> subb;
    subc = suba - subb;
    cout << suba << "减" << subb << "等于" << subc << endl;
}

// 乘法运算函数
void multiplication()
{
    printf("输入要计算的乘数(例如 a b)\n");
    int mula = 0, mulb = 0, mulc = 0;
    cin >> mula;
    cin >> mulb;
    mulc =mula * mulb;
    cout << mula << "乘" << mulb << "等于" << mulc << endl;
}

// 除法运算函数(含余数)
void division()
{
    printf("输入要计算的除数(例如 a b)\n");
    int dsa = 0, dsb = 0, dsc = 0, dsd = 0;
    cin >> dsa;
    cin >> dsb;
    
    // 防止除以零的逻辑在实际生产中应更严谨
    if (dsb == 0) {
        cout << "错误:除数不能为零!" << endl;
        return;
    }
    
    dsc = dsa / dsb;
    dsd = dsa % dsb;
    cout << dsa << "除" << dsb << "等于" << dsc << "余" << dsd << endl;
}

// 操作分发函数
void operation()
{
    printf("输入数据选择做哪种运算\n");
    printf("输入0选择退出,1做加法,2做减法,3做乘法,4做除法(保留余数)\n");

    int operatione = 0;
    cin >> operatione;
    cout << endl;

    try
    {
        if (operatione == 1)
        {
            add();
        }
        else if (operatione == 2)
        {
            substraction();
        }
        else if (operatione == 3)
        {
            multiplication();
        }
        else if (operatione == 4)
        {
            division();
        }
        else if (operatione == 0)
        {
            exit(0);
        }
        else
        {
            throw 1; // 抛出异常处理非法输入
        }
    }
    catch (int i)
    {
        cout << "输入错误,请重新输入!" << endl;
    }
    
    // 递归调用自身以继续下一次操作
    operation();
}

int main()
{
    printf("欢迎使用本计算器!\n");
    operation();
    return 0;
}

进阶思考

上述代码虽然实现了基本功能,但在实际开发中,还可以进一步优化:

  • 数据类型:当前仅支持整数运算,可以修改为 double 类型以支持浮点数计算。
  • 除零保护:在除法前增加对除数为 0 的判断,避免程序崩溃。
  • 循环结构:虽然当前使用递归实现了多次运算,但改用 while(true) 循环结构通常更为推荐,以避免栈溢出风险。

总结

通过以上步骤,我们完成了第一个简单的C++控制台计算器项目。这不仅帮助读者熟悉了基本的输入输出流(cin/cout),还练习了函数的封装与调用逻辑。以上就是C++编写简单计算器程序的详细内容,更多关于C++入门学习资料请关注本站其它相关文章!

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。