1、 1 XXXXXXXXXXXXXXXXXX 计算机技术系计算机技术系 项目名称: 航空客运订票系统 学生姓名: XX 学 号: 班 级: 10801 指导教师: 年 月 日 2 目目 录录 1.1.系统需求分析系统需求分析 . 3 1.1 问题分析 . 3 1.2 任务意义 . 3 2. 2. 数据结构设计及用法说明数据结构设计及用法说明 4 3. 3. 详细设计和编码详细设计和编码 5 3.1.主菜单. 5 3.2.录入航空信息 5 3.3 输出航空信息 6 3.4 订票 7 3.5 退票 7 4. 4. 实验结果实验结果 9 4.1 菜单函数的功能测试 9 4.2 录入函数的功能测试 9
2、4.3 查询航班函数的功能测试 11 4.4 订票功能地测试 . 12 致谢致谢. 17 参考文献参考文献 18 附录:源程序清单附录:源程序清单 19 3 1 1. .系统需求分析系统需求分析 1.1 问题分析 这次的课程设计是设计一个航空系统。 由于存储的数量较大且不固定, 因此选择用链表 来保存基本信息:终点站名、航班号、飞机号、飞行时间、乘员定额、余票量、已经订票的 客户名单(包括姓名、订票量)、等候替补的客户名单(包括姓名、所需票量)等等。由于在航 线这个主链表上, 每个航班上的已经订票名单这个链表和等候替补的名单这个链表队列, 所 以建立一个十字交叉链表, 在纵行上开辟一个链表存储
3、所有航班的基本信息, 再在各个航班 节点横向展开一个链表和一个链表队列, 展开的链表存储已经订票的客户名单, 展开的链表 队列存储等候替补的客户名单。 同时, 由于预约人数无法预计, 队列也应以链表作存储结构。 系统主要实现的操作和功能是:添加航线、查询航线、订票功能、退票功能。要实现这些功 能,首先要使程序能实现查找功能,在查找出到有效信息的前提之下,通过链表的赋值,更 新信息和删除退票人信息,满足客户的要求。 1.2 任务意义 飞机场每天要接受大量的订票退票服务, 对于这些数量巨大的数据, 需要一个专门的软 件来进行管理和操作。软件至少需要具备的基本功能包括:接受订票,处理退票,查询航班
4、信息等等。 面对这些实际问题, 航空客运系统的制作无疑要全面的考察一个学生的知识及能 力。在全面理解客户的需求下面,来进行设计出最能够满足客户的程序出来,并且能够根据 不同的要求来将其进行改动,最能考察到对代码活用的程度。 4 2. 2. 数据结构设计及用法说明数据结构设计及用法说明 数据结构的存储结构,中间纵列,为各个航班的基本信息,用一链表存储,其中一个节 点为一个航班,其中包括终点站名、航班号、飞机号、飞行时间、乘员定额、余票量、已经 订票的客户名单(包括姓名、订票量)、等候替补的客户名单(包括姓名、所需票量)等等。横 向是各个航班的情况, 即从该指定的航班中用链表的形式横向存储这个航班
5、的基本信息, 纵 向为已经订票了的客户信息和药等候替补的客户的信息,其中包括客户姓名和相应的需票 量。相应的存储结构如下 struct Passenger char name20; int bnum; /bnum 记录某人买的票数 struct Passenger *next; ; typedef struct Air /记录飞机信息 int ticket; /飞机票数 char des20; /des 记录飞机的终点 char flight8; /flight 记录航班号 int num; /记录飞机号 Passenger *wait; Passenger *book; Time time;
6、 struct Air *next; AirPlane; 5 3. 3. 详细设计和编码详细设计和编码 3.1.主菜单 进入主菜单, 必须先录入航班信息, 客户可以根据自己需要选择, 选择自己想要的航班, 然后进行一系列自己选择的操作,具体菜单流程图如下所示 图 3-1 主菜单功能模块图 3.2.录入航空信息 录入航空信息包括终点站名、航班号、飞机号、飞行时间、乘员定额,根据用户的需要 选择航班,输出航班信息,如果可以再进行订票操作,录入航空信息的流程图如下 图 3-2 录入航空信息流程图 航空系统 录入信息 查询信息 订票 退票 6 3.3 输出航空信息 客户可以根据自己的需要选择是按目的地查询还是按航班查询, 如果按航班查询, 必须 要知道航班号,如果按目的地查询,只需输入终点站,如