数据结构课程设计-航班的信息系统
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据结构课程设计-航班的信息系统
目录
1、需求分析 1
1.1系统主要功能 1
1.2系统要求 1
2.概要设计 2
2.1系统功能模块图 2
2.2算法设计: 2
2.2.1录入模块 2
2.2.2 订票退票模块 2
2.2.3查询修改模块 3
2.3 存储结构设计 4
2.4 C语言描述 5
3.详细设计 6
3.1录入航班信息模块 6
3.2订票模块 6
3.3退票模块 6
3.4查询航班模块 6
3.5查询订单模块 6
3.6修改航线模块 6
3.7保存退出模块 6
4.调试分析7
5.用户说明13
6.收获及体会13
7.源代码14
1、需求分析
1.1系统主要功能
(1)录入:
可以录入航班情况。(数据可以存储在一个数据文件中,数据结构、具体数据自定)
(2)查询:
可以查询某个航线的情况(如,输入航班号,查询起降时间,起飞抵达城市,航班票价,票价折扣,确定航班是否满仓);可以输入起飞抵达城市,查询飞机航班情况。
(3)订票:
可以订票,如果该航班已经无票,可以提供相关可选择航班。(订票情况可以存在一个数据文件中,结构自己设定)
(4)退票:
可以退票,退票后修改相关数据文件;客户资料有姓名,证件号,订票数量及航班情况,订单要有编号。
(5)修改航班信息:
当航班信息改变可以修改航班数据文件。
1.2系统要求
首先录入航班的信息:包括航班号,查询起降时间,起飞抵达城市,航班票价,票价折扣,确定航班是否满仓。根据提示完成相应的要求如:查询航班、订票、退票、修改航班等。航班信息如表1.1所示。订票客户的信息也录入其中如:姓名,证件号,订票数量及航班情况。所有信息根据数据可以存储在一个数据文件中,数据结构、具体数据自定。客户信息如表1.2所示。
表1.2 客户信息
航班号姓名证件号订票数票价 MU5138
张三 7>201314 1 375
表1.1航班信息
航班号起飞时间降落时间起飞城市降落城市票价折扣是否满仓CN8963 12:00 13:00 郴州长沙125 7.5 否MU4567 14:00 15:00 北京上海355 3.3 否CN1234 9:00 11:00 武汉长沙215 3.5 是
2.概要设计
2.1系统功能模块图
图2.1 主程序流程图
2.2算法设计:
2.2.1录入模块
查找单链表的链尾,在链尾插入一个“航班信息”的新结点。流程图如2.2.1所示。
2.2.2 订票退票模块
(1)订票模块:输入起飞到达城市显示录入航班信息,查找乘客要订的班号,判断此航班是否有空位,有则输入乘客有关信息,订票成功,否则失败。
(2)退票模块:输入要退票的乘客姓名以及证件号码,查找乘客资料的链表中是否有这位乘客,有则删去此结点,无则退票失败。流程图如图2.2.2所示。
2.2.3查询修改模块
(1)查询模块:提供两种查方式:按航号和按航线查询,1代表按航号查询,2代表按航线查询。3则表示浏览全部航班信息。顺着单链表查找,如果与航班号(航线)一致,输出相关信息,否则,查询不成功。
(2)修改模块:在航线信息修改菜单中选择修改内容,若存在修改航班,则在航班信息链表中查找要修改的结点,进行修改,否则不能修改。流程图如2.2.3所示。
图2.2录入航线的流程图
N
Y
图2.3订票退票流程图
Y
N
2.4修改航班流程图
2.3 存储结构设计
(1)航班的信息:为了便于查找和修改,航班的情况存储结构采用单链表,如图2.3所示结构每个元素表示一个航班的情况,包括航班号,查询起降时间,起飞抵达城市,航班票价,票价折扣,是否满仓。
(2)旅客的资料:为了便于插入、删除和修改,其采用单链表存储结构,每个数据元素包括姓名、证件号码、航班号、订票数和票价。
图2.3 单链表存储结构
2.4 C语言描述
typedef struct flightnode
char flight_num[10]; //航班号
char start_time[10]; //降落时间
char end_time[10]; //起飞时间
char start_place[20]; //出发点
char end_place[20]; //到达点
int left; //余座位数
float price; //票价
float price_discount; //折扣
int isFull;//票的余额
struct flightnode *next;
*flightlist;
typedef struct passengernode
char name[20];//订票人的姓名
char ID_num[20];//订票人的证件号
char flight_num[10];//航班号
char order_num;//订单号
int ticket_num;//订单数量
struct passengernode *next;//指向下一个结点 *passengerlist;//客户结点
typedef struct pnode