本项目为《数据结构》课程设计成果,旨在开发一款高效的航班查询与检索系统。通过优化的数据存储和算法应用,用户能够便捷地搜索、比较及预订各类航班信息。此系统不仅提升了用户体验,还展示了数据结构在实际问题解决中的强大功能。
该设计要求对飞机航班信息进行排序和查找操作,支持按照航班号、起点站、终点站、起飞时间和到达时间等多种字段查询。
扩展功能包括:
①筛选出所有起点站与终点站相同的航班,并从中找出票价最低及飞行时间最短的航班;
②能够不断添加新的航班记录;
③验证输入的时间信息是否合法。
设计中采用基数排序法对具有特定结构特征的飞机航班号进行排列,使用二分查找法在已排好序的数据集合内根据航班号迅速定位目标项。对于其他次要字段(如起点站、终点站等)的查询则采取顺序搜索方式实现;此类操作相对较少。
每个航班记录包含八部分内容:分别是:
- 航班号
- 起点站
- 终点站
- 班期 (即飞行日期)
- 起飞时间
- 到达时间
- 飞机型号
- 票价
例如,假设我们有以下8条航班记录:
| 航班号 | 起点站 | 终点站 | 班期 | 起飞时间 | 到达时间 | 飞机型 | 票价 |
|-------:|--------|--------|---------|----------:|-----------:|--:------|-:----|
| CA1544 | 合肥 | 北京 | 1.2.4.5 | 10:55 | 12:40 |733 |960 |
| MU5341 | 上海 | 广州 | 每日 | 14:20 | 16:15 | M90 | 1280|
| CZ3869 |重庆 |深圳 | 2.4.6 | 08:55 | 10:35 |733 |1010 |
| MU3682 |桂林 |南京 | 2.3.4.6.7 | 20:50 | 22:15 | M90 | 1380|
| HU1836 上海 北京 每日 09:40 11:20 738 1250 |
| CZ3528 成都 厦门 1.3.4.5.7 15:10 | 16:50 CRJ | 1060|
| MU4594 昆明 西安 1.3.5.6 | 10:15 | 11:40 |328 | 1160 |
| SC7425 青岛 海口 1.3.6 19:20 21:20 DH4 | 1630 |
航班号由航空公司代码(两个大写字母)和四位数字组成,如 CA(中国国航)、MU(东方航空),这种格式的字段可以分为字母部分与数字部分进行处理。除票价为数值类型外,其余项目定义为字符串形式。
此设计中的核心是基于基数排序算法对航班号这一特殊结构的数据集实施高效组织,并利用二分查找法实现快速定位目标记录;而其他次级属性(如站点信息)则通过简单线性扫描完成检索。