C语言课程设计报告航班管理系统_第1页
C语言课程设计报告航班管理系统_第2页
C语言课程设计报告航班管理系统_第3页
C语言课程设计报告航班管理系统_第4页
C语言课程设计报告航班管理系统_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、C程序课程设计报告题目:航班管理系统班级:学号:姓名: 指导教师: 年 月 日一、问题描述2二、设计及实验要点31功能分析32、总体设计4(一)、功能模块设计41.航班管理系统的功能主流程42.管理系统的查询功能53.顾客进行订票的功能模块54.退票的功能模块55.续票的功能模块56.在订票续票功能完成之后,对顾客订票信息的查询功能模块67.退出系统的功能模块6(二)、数据结构设计6(三)、函数功能描述8三、源程序(见附录)9四、程序实现9(一)源码分析91.程序预处理92.主函数main()123管理系统的查询功能124.顾客订票的功能模块145.顾客退票的功能模块165.顾客续票的功能模块

2、18(二)运行结果22五、不足之处22六、参考文献22航班管理系统一、问题描述 航班售票是民航业务管理的一项最基本业务。表面上看,他只是民航业务的一个简单部分,但是她涉及的业务量大、客户多,还涉及资金管理与客户服务等多方面,因此这项业务并不像看上去那么简单。过去传统的售票方式已不能满足现代航空业务流量剧增的客户要求,本次设计便是利用目前先进的开发工具Delphi7.0以及SQL server 2000开发一个航班售票管理系统,她能方便快捷的运用在民航业务的营运之中。本系统是对民航飞机售票业务的一种模拟。此次的开发系统主要是完成航班售票管理的各种自动化服务,通过计算机的运行完成各项事务,设计一个

3、航班售票管理的数据管理系统。通过开发此系统,可稳定简便地通过计算机来执行一系列操作,减少人工劳动强度,达到省时省力的目的,内容包括乘客信息添加、修改、删除、查询;航班的售票订票的添加、修改、删除、查询;航空公司的航班时刻表的查询等。在此次课程设计的实验中,便是利用C语言和数据结构的一些知识模拟航班管理系统。二、设计及实验要点1功能分析如图一 所示航班管理系统主要有以下第一: 具有乘客乘坐飞机的起点、终点、日期和可以使用的座位等基本信息。第二: 售票/订票系统:包括乘客信息添加、修改、删除、查询。第三: 可以在顾客退票时,及时让侯票的顾客补到票第四: 顾客可以及时的查询自己是不是订票成功。第五:

4、 顾客可以在无票时能预定票数。航班管理系统所有航班的信息查询航线客票预订办理退票查看资料 (图一:航班管理系统功能的主要模块)开始查询所有的航班信息(包括航班号,票数,以及时间和到达地点等) 查询要到的目的地的所有航线。客票预订,调用book( )函数,办理退票,调用back-ticket( )函数,查看资料,调用Getlem( )函数,结束 (图二:航班管理系统的主流程图)2、总体设计(一)、功能模块设计1.航班管理系统的功能主流程2.管理系统的查询功能3.顾客进行订票的功能模块 4.退票的功能模块5.续票的功能模块6.在订票续票功能完成之后,对顾客订票信息的查询功能模块7.退出系统的功能模

5、块(二)、数据结构设计此程序中运用了C语言的结构体,数据结构中链表和队列的相关知识,为了便于理解陈旭,这里分别来介绍。1 订票顾客的结构体 typedef struct PassengerNode /订票客户结点 。PassengerNode; /已订票客户结点typedef structPassengerNode结构体在系统中用来存储顾客的一些基本信息,如以上定义一样,包括 顾客的姓名 订票客户身份号码 顾客的电话号码 订票的数量 和舱位等级以及用“PassengerNode *next;”来指向下一个订票客户结点。2. 待订票客户的结构体typedef struct WPassengerN

6、ode 。WPassengerNode; /待订票客户结点WpassengerNode结构体在系统中用来存储待订票客户的一些基本信息,如以上定义,包括待订票客户的姓名 待订票客户的身份证号 待订票客户电话号码 待订票客户机票需求量以及用“WPassengerNode *next;”来指向下一个待订票客户节点。3. /订票客户链表typedef struct 。passengerLink; /已订票客户单链表(按ID有序)在该链表中,用“ PassengerNode *passenger;”来指向订票客户,用“ int length;”来统计订票的人数4. 待订票客户的队列typedef str

7、uct 。WpassengerQueue; /侍订票客户链队列在该队列中,“WPassengerNode *front;”用来指向队列中的第一个人,即为头指针,“WPassengerNode *rear;”指向队尾。4.航班节点(即每一个航班的结构体)typedef struct flightnode /航班结点 。flightnode;/航班结点在该航班节点中,用来存储每一个航班的信息,其中有终点站名称 航班编号 飞机编号 飞行周日 飞机能载最大人数 还余下多少张票等基本信息并用“flightnode *next;”来指向下一个航班节点,用“ WpassengerQueue npasseng

8、er;”来指向本次航班带票客户队列,用“passengerLink passenger;”来指向本次航班已定票的客户链表。5.航班顺序表的定义typedef struct 。SqFlight;/航班顺序线性表此结构体中用“flightnode *flight;”来指向系统中的所有航班的头指针,用“int length;”来统计航班的数量。(三)、函数功能描述1. ask_passenger()函数原型int ask_passenger(flightnode *p,SqFlight LF)该函数用来完成顾客续票的操作2. back_ticket()函数原型int back_ticket(int

9、number,SqFlight &LF)该函数用来完成为顾客办理退票业务。3. book()函数原型int book(int number,SqFlight &LF)该函数用来完成顾客的订票业务4. GetElem()函数原型int GetElem(SqFlight LF,int number)该函数用来完成顾客查询基本资料的一些操作5. InitFlightNode()函数原型int InitFlightNode(SqFlight& LF)该函数用来完成对航班顺序表中的每一个航班进行赋值并将赋值后的航班连接到航班顺序表中6. InitList_Sq()函数原型int

10、InitList_Sq(SqFlight &LF) 此函数用来构造一个空的线性表LF 飞机航班结点7. InitList_pa()函数原型int InitList_pa(passengerLink &PA)该函数 用来为已订票客户链表建一个空链表8. InitList_WPQ()函数原型int InitList_WPQ(WpassengerQueue &WPQ)该函数 用来为待票客户建一个空的队列9. lookup()函数原型int lookup(char *cityname,SqFlight LF)用来查找航班,形参指针cityname指向查询时输入的航线的首地址,引

11、用航班顺序线性表LF10. searchID()函数原型PassengerNode *searchID(flightnode *p,char *ID)p是指向某个航班结点的指,ID是要查询的ID,该函数是通过ID号来查询航班,并返回已订票顾客节点11. searchNUM()函数原型flightnode *searchNUM(int number,SqFlight LF)该函数通过number来按航班号查询航班,并返回相关的航班节点12. system1()函数原型void system1(SqFlight LF)该函数主要实现/显示主菜单 能实现的操作等并像用户提供进行选择的界面。13. w

12、book()函数原型int wbook(SqFlight & LF,flightnode *p)该函数是续票函数的补充,主要实现将待票客户插入到待票队列的队尾14. main()函数原型void main()该函数先通过system("color 0A"); 来实现改变背景和前景颜色的效果,继而分别通过InitList_Sq(LF);InitFlightNode(LF);来完成对航班顺序表的初始化。最后通过system1(LF); 来进入显示系统的主界面,以供用户选择。三、源程序(见附录)四、程序实现(一)源码分析1.程序预处理2.主函数main()主函数实现功能主

13、要是为进入系统做好准备,并完成航班的初始化,即对各个航班赋上初值。void main()system("color 0A");/改变背景和前景颜色system("mode con: cols=70 lines=35");/调整显示方框的大小SqFlight LF;InitList_Sq(LF);InitFlightNode(LF);system1(LF);printf("n");3管理系统的查询功能该功能主要实在主函数初始化的前提下,调用lookup( )函数来完成所有航班的查询。另外也可以通过目的地,输入目的地的大写字母来调用loo

14、kup.( )来完成。int lookup(char *cityname,SqFlight LF) /查询系统 /形参指针cityname指向查询时输入的航线的首地址 /引用航班顺序线性表LF。其操作实现的结果按如图 1 所示。当输入目的地的结果如图 2 所示。查询完以后,按任意键有可进入主界面 图 1 图 2 (输入目的地的准确查询)4.顾客订票的功能模块。实现结果如图 3 所示 图 3 (订票成功)5.顾客退票的功能模块在完成订票后,如果要退票,顾客可在在主界面中选择 4 进行退票,此时通过调用函数back_ticket()来完成,在此函数中,先通过searchNUM(number,LF)

15、 找到要办理航班的航班,继而通过修改订票人的链表和剩余票数来删除要退票的人的信息。具体操作如下所示int back_ticket(int number,SqFlight &LF)/办理退票业务 。实现结果如图 4 所示 图 4 (退票成功)5.顾客续票的功能模块在有待票客户的前提下,系统通过ask_passenger()来完成待票人的补订,并将其加入到已定票人的序列中,具体操作如下int ask_passenger(flightnode *p,SqFlight LF)。具体实现的结果如以下所示图 5是有待票人的情况。 图 5 (没有足够的票,进入到待票的队列中)图 6 为在有人退票的情况下进行的补票即在显示退票的情况下,即显示“退票成功”后会出现待票人的一些信息,并询问是不是要购票。在1.要 2.不要 的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论