C++编写简单的计算器程序
本教程介绍了如何使用 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++入门学习资料请关注本站其它相关文章!
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













