1 概述
1.1 问题描述
随着科技与经济的发展,当今乘飞机旅行的人越来越多,人们需要关心了解各类航班的班次、时间、价格及机型等信息。在这个飞机航班数据的模型中,航班号是关键字,而且是具有结构特点的一类关键字。通过关键字的输入,你将获得你所需要的航班的所有信息。
1.2 设计题目
航班信息的查询与检索
1.3 基本要求
1 每个航班包括8项基本要求:航班号、起始站、终点站、班期、起飞时间、到达时间、飞机型号、票价。 2 要有输入模块。 3 对航班信息进行排序与查。
2 系统分析
2.1 功能需求分析
(1)输入航班信息
(2)按不同类型查询航班信息:输入航班号,显示相应信息
输入起点站,显示相应信息
输入终点站,显示相应信息
输入起飞时间,显示相应信息
输入到达时间,显示相应信息
2.2 设计要求
该设计要求对航班信息进行排序和查询。可按航班的航班号、起点站、到达站、起飞时间以及到达时间等信息进行查询。对于本设计,可采用基数排序法对一组具有结构特点的飞机航班号进行排序,利用二分查法对排好序的航班记录按航班号实现快速查,按其他关键字的查可采用最简单的顺序查方法进行,因为它们用的较少。每个航班记录包括八项,分别是:航班号、起点站、终点站、班期、起飞时间、到达时间、飞机型号以及票价等。(假
设航班信息如下所示)
航班号 | 起点站 | 终点站 | 班期 | 起飞时间 | 到达时间 | 机型 | 票价 |
CA1544 | 合肥 | 北京 | 1.2.4.5 | 1055 | 1240 | 733 | 960 |
MU5341 | 上海 | 广州 | 每日 | 1420 | 1615 | M90c 字符串数组怎么定义 | 1280 |
CZ3869 | 重庆 | 深圳 | 2.4.6 | 0855 | 1035 | 733 | 1010 |
MU1836 | 桂林 | 南京 | 2.3.4.6.7 | 2050 | 2215 | M90 | 1380 |
HU1836 | 上海 | 北京 | 每日 | 0940 | 1120 | 738 | 1250 |
CZ3528 | 成都 | 厦门 | 1.3.4.5.7 | 1510 | 1650 | CRJ | 1060 |
MU4594 | 昆明 | 西安 | 1.3.5.6 | 1015 | 1140 | 328 | 1160 |
SC7425 | 青岛 | 海口 | 1.3.6 | 1920 | 2120 | DH4 | 1630 |
其中航班号一项的格式为:
k0 k1 k2 k3 k4 k5
C | Z | 3 | 8 | 6 | 9 |
其中k0和k1的输入值是航空公司的别称,用两个大写字母表示,后4位为航班编号,这种航班号关键字可分成两段,即字母和数字。其余七项输入内容因为不涉及本设计的核心,因此除了票价为数值型外,均定义为字符串型即可。
3 概要设计
3.1 设计思路
根据题目所要求,程序必须实现航班信息的录入和查询。程序首先定义了一个用于储存航班信息的数据类型,再由用户录入航班数据,在录入的同时并对数据进行排序,最后执行数据查询和检索。在查询设计中,使用二分查法对排好序的航班数据按航班号实现快速查,按起点站、终点站、起飞时间、到达时间查的则采用顺序查询方法。
3.2 各函数说明
(1)一趟数字字符分配函数
void Distribute(SLNode *sl,int i,ArrType_n f,ArrType_n e)
(2)一趟数字字符收集函数
void Collect(SLNode *sl,int i,ArrType_n f,ArrType_n e)
(3)一趟字母字符分配函数
void Distribute_c(SLNode *sl,int i, ArrType_c f,ArrType_c e)
(4)一趟字母字符收集函数
void Collect_c(SLNode *sl,int i, ArrType_c f,ArrType_c e)
(5)链式基数排序函数
void RadixSort(SLList &L)
(6)按指针链重新整理静态链表
void Arrange(SLList &L)//重新整理
(7)二分查函数
int BinSearch(SLList L,KeyType key[])
(8)顺序查函数
void SeqSearch(SLList l,KeyType key[],int i)
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论