数据结构课程设计报告
题 目: 航空订票系统
系 部 名 称 :
专 业 名 称 :
班 级 :
学 号 :
学 生 姓 名 :
指 导 教 师 :
时 间 :
一、 课程设计目的
1. 数据结构课程设计是综合运用数据结构课程中学到的几种典型数据结构,以及程序设计
语言(C 语言),自行实现一个较为完整的应用系统的设计与开发
2. 通过课程设计,自己通过系统分析、系统设计、编程调试,写实验报告等环节,进一步
掌握应用系统设计的方法和步骤,灵活运用并深刻理解典型数据结构在软件开发中的应用 。
3. 学会将知识应用于实际的方法,提高分析和解决问题的能力,增加综合能力。
航空空订票系统:
(1)熟练掌握链表存储结构及其建立过程和常用操作;
(2)熟练掌握队列的建立过程和常用操作;
(3)学会自己调试程序的方法并掌握一定的技巧。
二、课程设计内容
航空客运订票的业务活动包括:查询航线、客票预订和办理退票等。设计一个航空客运
订票系统,以使上述业务可以借助计算机来完成。
三、需求分析
1. 每条航线所涉及的信息有:终点站名、航班号、飞机号、飞行日(星期几)、乘员定
额、余票量、已订票的客户名单(包括姓名、订票量、舱位等级 1,2 或 3)以及等候替补的
客户名单(包括姓名、所需票量);
2. 全部数据可以只放在内存中;
3. 系统能实现的操作和功能如下:
a) 查询航线:
根据旅客提出的终点站名输出下列信息:航班号、飞机号、星期几飞行,最近一天航班的
日期和余票额;
b) 承办订票业务:
根据客户提出的要求(航班号、订票数额)查询该航班票额情况,若尚有余票,则为客户
办理订票手续,
输出座位号;若已满员或余票额少于定票额,则需重新询问客户要求。若需要,可登记排
队候补;
c) 退票业务:
根据客户提供的情况(日期、航班),为客户办理退票手续,然后查询该航班是否有人排
队候补,首先询
问排在第一的客户,若所退票额能满足他的要求,则为他办理订票手续,否则依次询问其
他排队候补的客户。
四、概要设计
1.系统结构图(功能模块图)
2.功能模块说明
(1)显示已初始化的全部航线信息
(2)浏览已订票客户信息
(3)根据客户提出的终点站名,调用 find()函数寻找航线信息,调用 list()函数输
出航线信息
(4)办理订票业务:根据客户提供的航班号进行查询航线信息,若客户订票额超过乘员定
票总额,退出,若客户订票额末超过余票量,订票成功并登记信息,在订票乘员名单域中添
加客户信息;如果暂时没有票,询问客户是否要排队等侯,如果是,则在等候队列增加该客
户的订票信息。
(5)办理退票业务:调用查询函数,根据客户提供的航线进行搜索根据客户提供的姓
名到订票客户名单域进行查询。退票成功后,重新将航线名单域指向订票单链表的头指针。
根据队列中从出的客户信息判断是否满足要求,如果满足,则将该客户的信息插入到乘客信
息链表中。
(6)退出本系统
五、详细设计及运行结果
(1)显示已初始化的全部航线信息
主函数
浏览航线信
息
浏览已订票
客户信息
查询航线
办理订票业
务
办 理 退票业
务
退出系统
按剩余票数排序
(2)浏览已订票客户信息
(3)查询航线
开始
初始化
i<MAXSIZE
?
调用 find ()函数输
出
结束
开始
调用 find ()函数
P=NUL
L ?
P 不 为
空
该 航 线 没
有 客 户 信
息
输 出 客 户 信
息
结束
(4)办理订票业务
开始
初始化
i<MAXSI
ZE
!
strcmp(name,info
->ter_name)
info++ , i++
i>=MAXSIZ
E
调用函数输出
未找到
结束