7 Star 3 Fork 2

星空下的你 / starry

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
代码说明.md 1.69 KB
一键复制 编辑 原始数据 按行查看 历史
jingc 提交于 2024-05-17 20:18 . 介绍

1.头文件和命名空间

(1)#include , #include , #include <unordered_map>: 引入了必要的头文件。 (2)using namespace std;: 使用标准命名空间,以简化代码。

2.枚举和结构体 (1)enum class VehicleType: 定义了一个枚举类,包含三种车型:Car、Bus、Truck。 (2)struct Vehicle: 定义了一个结构体,包含车牌号、车型和车重。 映射关系 (3)unordered_map<string, VehicleType> vehicleTypeMap: 使用unordered_map来存储车型字符串和枚举之间的映射关系。 (4)getVehicleType(const string& type): 辅助函数,根据车型字符串返回对应的枚举值。如果映射中不存在该车型,则默认返回Car。

3.费用计算函数 double calculateFee(const Vehicle& vehicle, double mileage): 该函数接受一个Vehicle结构体和一个里程值,然后基于车型和车重计算费用。不同类型的车辆有不同的费率。

4主函数main (1)初始化一个Vehicle结构体变量vehicle。 (2)通过cin从用户那里获取车牌号、车型和车重。 (3)对于车型,使用do-while循环确保用户输入了一个有效的车型(存在于vehicleTypeMap中)。 (4)对于车重,也使用do-while循环,确保用户输入了一个大于0的有效车重。如果输入无效,程序会提示用户重新输入,并清除输入流中的错误状态。获取行驶里程。调用calculateFee函数计算费用,并输出结果。

注意: 代码中使用了cin.clear()来清除输入流中的错误状态,以及cin.ignore()来忽略无效的输入。 当用户输入无效的车型时,程序默认将其视为Car。这可能不是最理想的行为,但在这种情况下,这确保了程序不会崩溃。

C++
1
https://gitee.com/you-under-the-starry-sky/starry.git
git@gitee.com:you-under-the-starry-sky/starry.git
you-under-the-starry-sky
starry
starry
master

搜索帮助