C++实现打车费用计算及开发建议
### :moneybag: 问题分析 本题需要根据打车的里程数和停车等候时间来计算打车费用。可以将里程分为三个阶段分别计算费用,再加上停车等候费用。 ### :computer: 代码实现 ```cpp #include <iostream> #include <cmath> // 计算打车费用的函数 double calculateFare(double distance, int waitingTime) { double fare = 0; // 起步价部分 if (distance <= 2) { fare = 6; } // 2千米到10千米部分 else if (distance <= 10) { fare = 6 + (distance - 2) * 1.8; } // 超过10千米部分 else { fare = 6 + (10 - 2) * 1.8 + (distance - 10) * (1.8 * 1.5); // 假设加价50% } // 停车等候费用 int waitingFee = (waitingTime / 3); // 每3分钟加收1元,不满3分钟不计费 fare += waitingFee; return fare; } int main() { double distance; int waitingTime; std::cout << "请输入打车的里程数(千米):"; std::cin >> distance; std::cout << "请输入停车等候的时间(分钟):"; std::cin >> waitingTime; double totalFare = calculateFare(distance, waitingTime); std::cout << "打车的总费用是:" << totalFare << " 元" << std::endl; return 0; } ``` ### :book: 代码解释 1. **`calculateFare` 函数**:该函数接受两个参数,`distance` 表示打车的里程数,`waitingTime` 表示停车等候的时间。函数内部根据里程数的不同阶段计算费用,最后加上停车等候费用。 2. **`main` 函数**:从用户输入中获取里程数和停车等候时间,调用 `calculateFare` 函数计算总费用,并输出结果。 ### :bulb: 开发建议 - **输入验证**:在实际应用中,应该对用户输入的里程数和停车等候时间进行验证,确保输入的是合法的数值。 - **可配置参数**:将起步价、每千米的价格、加价比例和停车等候费用的计算规则等参数作为常量或配置项,方便后续修改。 - **错误处理**:在计算费用时,应该考虑可能出现的异常情况,如里程数为负数等。 ### :link: 学习资源 - [C++ 官方文档](https://en.cppreference.com/w/) - 《C++ Primer》 ######[AI写代码神器 | 656点数解答 | 2026-02-15 14:47:59]
- Python 实现球类:精准计算半径、表面积与体积,附输入验证与异常处理!(阿里通义 | 261点数解答 | 2024-11-28 21:19:39)322
- Python 编程:轻松计算飞机行李收费(含代码详解)(字节豆包 | 250点数解答 | 2026-01-29 17:07:02)16
- 51 单片机:定时器 0 实现 8 个 LED 循环点亮,附代码及优化建议(字节豆包 | 1193点数解答 | 2024-12-27 15:10:29)290
- C++ 代码实现自定义运算 x@y = x² + y² - xy 及 x@(x+y) 计算(DeepSeek | 215点数解答 | 2025-12-13 15:08:14)44
- iOS开发:手把手教你完整实现代理模式,含声明与实现步骤!(阿里通义 | 268点数解答 | 2023-11-08 00:39:55)238
- JavaScript 开发:用 Animation 实现自定义动画的简易教程 (阿里通义 | 333点数解答 | 2023-11-09 01:50:07)229
- 用 JS 中 for 循环实现 1 到 100 相加并输出结果到页面的完整代码 ( | 240点数解答 | 2024-05-20 22:11:29)427
- 用 JS 的 while 循环实现 1 到 100 相加并输出到页面的代码揭秘( | 47点数解答 | 2024-05-20 22:16:48)338
- Vue.js 与 Matter.js 碰撞:轻松实现物理模拟全攻略 (讯飞星火 | 522点数解答 | 2024-05-29 22:26:06)403
- JS实现移动端网页快捷键创建方式及注意事项(阿里通义 | 284点数解答 | 2024-06-05 19:02:59)237
- 车载系统 UML 类图设计:涵盖 Car、Engine、娱乐系统等的完整类定义与关系解析 (字节豆包 | 760点数解答 | 2024-08-15 22:51:04)291
- Java 继承实现:重温经典剪刀石头布游戏(字节豆包 | 451点数解答 | 2024-10-20 19:57:58)441