C++航空订票实战:结构体与输入验证

5星 · 超过95%的资源 4 下载量 42 浏览量 更新于2024-09-03 收藏 82KB PDF 举报
在本篇C++实现的航空订票程序中,作者着重介绍了如何通过结构体和基本输入输出操作来设计一个简单的订票系统。首先,文章提到使用C++构建一个面向对象的编程模型,尽管这里的同学尚未学习完整的面向对象编程,但通过实例展示了如何运用基础概念。主要涉及以下几个关键知识点: 1. 结构体的运用: - 通过`struct Seat`定义了座位的基本属性,包括座位类型(`chartype`,如F表示一等舱,E表示经济舱)、座位编号(`int number`)和座位预定状态(`bool isReservation`)。这体现了面向对象中的数据封装和抽象,将每个座位视为一个独立的对象。 - `struct Ticket`则包含了座位对象和乘客姓名,用于存储每张票的预订信息。 2. 功能模块设计: - `bool check(string name)`函数用于检查某个乘客是否已经订过票,通过遍历`tickets`数组判断乘客名是否存在。 - `void input()`函数负责处理用户输入,包括乘客姓名和舱位类型的选择。该函数采用了递归设计,允许错误处理并继续交互。 3. 输入验证: - 程序要求输入的乘客姓名和舱位类型必须符合规定,例如,乘客名只能订一个座位且未被预定,舱位类型仅限于"F"或"E",座位号仅限于1~25且未被占用。对于无效输入,程序会给出相应的提示。 4. 订票流程: - 用户首先输入姓名,然后根据输入选择舱位类型。如果选择的座位已满,程序会提示并要求重新选择。重复该过程直到用户选择"."结束订票。 5. 打印订票信息: - 最后,程序按照舱位类型和座位号对所有订票信息进行排序,并输出乘客姓名和座位详情,体现了数据的整理和展示。 通过这个航空订票程序,作者展示了C++编程中的基础结构体、函数设计以及如何处理用户输入,同时引入了面向对象编程的核心思想。这对于初学者来说是一个很好的实战练习,有助于理解和应用C++编程语言。