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;

相关推荐
数模竞赛Paid answer21 分钟前
2026年中青杯数学建模A题数学建模论文智能评估系统与多智能体优化方法求解全过程论文及程序
算法·数学建模·中青杯
银-豆豆39 分钟前
数据结构与算法-动态规划、回溯与贪心
算法·动态规划
Lzg_na1 小时前
constexpr的优势
c++
想吃火锅10052 小时前
【leetcode】200. 岛屿数量
算法·leetcode·职场和发展
王维同学2 小时前
进程模块枚举、映像身份与线程启动地址关联
c++·windows·安全
hold?fish:palm2 小时前
24 回文链表
数据结构·c++·链表
举手3 小时前
Dispatcher模块剖析
linux·c++
Nil2083 小时前
leetcode 54螺旋矩阵
算法·leetcode·矩阵
依然鸣4 小时前
PTA团体程序设计天梯赛L1真题讲解L1-077-080
开发语言·c++·算法·深度优先·pat考试·图论
库玛西5 小时前
现代 C++ 智能指针全景指南:从 RAII 思想到工业级实践
c语言·开发语言·c++·笔记·面试