C++小程序编写系列(2)

一、核心目标

掌握 if-else(条件判断)和 while(循环),实现支持加减乘除的连续计算器。

二、上一篇练习精简答案(双向温度转换)

复制代码

#include >

#include ip>

using namespace std;

int main() {

double celsius, fahrenheit;

int choice;

cout << "双向温度转换器\n1. 摄氏度→华氏度 2. 华氏度→摄氏度\n选择(1/2):";

cin >> choice;

if (choice == 1) {

cout <:";

cin >> celsius;

fahrenheit = celsius * 9.0/5.0 + 32;

cout << fixed << setprecision(2) << celsius < " << fahrenheit <℉" <

} else if (choice == 2) {

cout <华氏度:";

cin >> fahrenheit;

celsius = (fahrenheit - 32) * 5.0/9.0;

cout << fixed <precision(2) <ahrenheit < " << celsius <℃" < } else {

cout <" < }

return 0;

}

三、实战:多功能连续计算器

1. 完整代码(支持加减乘除 + 循环)
复制代码

#include <iostream>

#include <iomanip>

using namespace std;

int main() {

double a, b, res;

char op; // 运算符(+、-、*、/)

bool isRunning = true; // 控制循环

cout <计算器(输入 'q' 退出)\n支持:+、-、*、/" < while (isRunning) {

// 输入表达式(如 3+5)

cout << "\n请输入表达式(例:2.5*4):";

cin >> a >> op >> b;

// 条件判断:根据运算符计算

if (op == '+') res = a + b;

else if (op == '-') res = a - b;

else if (op == '*') res = a * b;

else if (op == '/') {

if (b == 0) { // 避免除零错误

cout <除数不能为0!" <; // 跳过本次循环,重新输入

}

res = a / b;

} else if (op == 'q') { // 退出指令

isRunning = false;

cout < <;

} else {

cout <:不支持的运算符!" < continue;

}

// 输出结果(保留2位小数)

cout << fixed <precision(2) < << op << b <=" << res <

}

return 0;

}

2. 核心知识点提炼
  1. if-else:根据 op(运算符)执行不同计算逻辑,处理异常(除零、无效运算符);
  1. while 循环:isRunning 为 true 时重复执行,输入 q 则退出;
  1. 异常处理:continue 跳过错误循环,避免程序崩溃。
3. 运行效果
复制代码

简易计算器(输入 'q' 退出)

支持:+、-、*、/

请输入表达式(例:2.5*4):3+5

3.00+5.00=8.00

请输入表达式(例:2.5*4):10/3

10.00/3.00=3.33

请输入表达式(例:2.5*4):7/0

错误:除数不能为0!

请输入表达式(例:2.5*4):q

退出计算器~

四、简易练习

修改代码,新增 "取余(%)" 功能(仅支持整数),提示:else if (op == '%') res = (int)a % (int)b;

相关推荐
2401_892070981 天前
【Linux C++ 日志系统实战】LogFile 日志文件管理核心:滚动策略、线程安全与方法全解析
linux·c++·日志系统·日志滚动
yuzhuanhei1 天前
Visual Studio 配置C++opencv
c++·学习·visual studio
小O的算法实验室1 天前
2026年ASOC,基于深度强化学习的无人机三维复杂环境分层自适应导航规划方法,深度解析+性能实测
算法·无人机·论文复现·智能算法·智能算法改进
不爱吃炸鸡柳1 天前
C++ STL list 超详细解析:从接口使用到模拟实现
开发语言·c++·list
十五年专注C++开发1 天前
RTTR: 一款MIT 协议开源的 C++ 运行时反射库
开发语言·c++·反射
‎ദ്ദിᵔ.˛.ᵔ₎1 天前
STL 栈 队列
开发语言·c++
2401_892070981 天前
【Linux C++ 日志系统实战】高性能文件写入 AppendFile 核心方法解析
linux·c++·日志系统·文件写对象
郭涤生1 天前
STL vector 扩容机制与自定义内存分配器设计分析
c++·算法
༾冬瓜大侠༿1 天前
vector
c语言·开发语言·数据结构·c++·算法
cccyi71 天前
【C++ 脚手架】etcd 的介绍与使用
c++·服务发现·etcd·服务注册