- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
该函数通过number来按航班号查询航班,并返回相关的航班节点
12.system1()
函数原型void system1(SqFlight LF)
该函数主要实现/显示主菜单能实现的操作等并像用户提供进行选择的界面。
13.wbook()
函数原型int wbook(SqFlight & LF,flightnode *p)
该函数用来完成顾客续票的操作
2.back_ticket()
函数原型int back_ticket(int number,SqFlight &LF)
该函数用来完成为顾客办理退票业务。
3.book()
函数原型int book(int number,SqFlight &LF)
该函数用来完成顾客的订票业务
4.GetElem()
{
。。。。。。
}WpassengerQueue; //侍订票客户链队列
在该队列中,“WPassengerNode *front;”用来指向队列中的第一个人,即为头指针,“WPassengerNode *rear;”指向队尾。
4.航班节点(即每一个航班的结构体)
typedef struct flightnode //航班结点
C程序课程设计报告
题目:航班管理系统
班级:
学号:
姓名:
指导教师:
年月日
航班管理系统
一、问题描述
航班售票是民航业务管理的一项最基本业务。表面上看,他只是民航业务的一个简单部分,但是她涉及的业务量大、客户多,还涉及资金管理与客户服务等多方面,因此这项业务并不像看上去那么简单。过去传统的售票方式已不能满足现代航空业务流量剧增的客户要求,本次设计便是利用目前先进的开发工具Delphi7.0以及SQL server2000开发一个航班售票管理系统,她能方便快捷的运用在民航业务的营运之中。本系统是对民航飞机售票业务的一种模拟。
{
。。。。。。
}
具体实现的结果如以下所示
图5是有待票人的情况。
图5(没有足够的票,进入到待票的队列中)
图6为在有人退票的情况下进行的补票
即在显示退票的情况下,即显示“退票成功”后会出现待票人的一些信息,并询问是不是要购票。在1.要2.不要的界面中,如果选择1,则系统再次运用函数bookup( )函数来完成订票。选择2则退出系统
5.航班顺序表的定义
typedef struct
{
。。。。。。
}SqFlight;//航班顺序线性表
此结构体中用“flightnode *flight;”来指向系统中的所有航班的头指针,用“int length;”来统计航班的数量。
(三)、函数功能描述
1.ask_passenger()
函数原型int ask_passenger(flightnode *p,SqFlight LF)
(图一:航班管理系统功能的主要模块)
(图二:航班管理系统的主流程图)
2
(一)、功能模块设计
1.
2.
3.
4.
5.
6.
7.
(二)、数据结构设计
此程序中运用了C语言的结构体,数据结构中链表和队列的相关知识,为了便于理解陈旭,这里分别来介绍。
1.订票顾客的结构体
typedef struct PassengerNode //订票客户结点
int lookup(char *cityname,SqFlight LF)
{ //查询系统
//形参指针cityname指向查询时输入的航线的首地址
//引用航班顺序线性表LF
。。。。。。
}
其操作实现的结果按如图1所示。
当输入目的地的结果如图2所示。
查询完以后,按任意键有可进入主界面
图1
图2(输入目的地的准确查询)
{
。。。。。。
}PassengerNode; //已订票客户结点
typedef struct
PassengerNode结构体在系统中用来存储顾客的一些基本信息,如以上定义一样,包括顾客的姓名订票客户身份号码顾客的电话号码订票的数量和舱位等级以及用“PassengerNode *next;”来指向下一个订票客户结点。
图6 (待票人再次订票成功的界面)
(二)运行结果
具体的运行结果以上图所示(即图1——6所示)
五、
在系统中应该减少顾客输入的次数,比如在待票人在次订票时,只需要输入是不是要订票即可,而不要在输入一次客户的必要信息,由于水平有限,程序中可能存在不足之处,敬请老师批评和指导。
具体操作如下所示
int back_ticket(int number,SqFlight &LF)//办理退票业务
{
。。。。。。
}
实现结果如图4所示
图4(退票成功)
5.
在有待票客户的前提下,系统通过ask_passenger()来完成待票人的补订,并将其加入到已定票人的序列中,具体操作如下
int ask_passenger(flightnode *p,SqFlight LF)
该函数是续票函数的补充,主要实现将待票客户插入到待票队列的队尾
14.main()
函数原型void main()
该函数先通过system("color 0A");来实现改变背景和前景颜色的效果,继而分别通过InitList_Sq(LF);
InitFlightNode(LF);来完成对航班顺序表的初始化。最后通过system1(LF);来进入显示系统的主界面,以供用户选择。
函数原型int GetElem(SqFlight LF,int number)
该函数用来完成顾客查询基本资料的一些操作
5.InitFlightNode()
函数原型int InitFlightNode(SqFlight& LF)
该函数用来完成对航班顺序表中的每一个航班进行赋值并将赋值后的航班连接到航班顺序表中
函数原型int InitList_WPQ(WpassengerQueue &WPQ)
该函数用来为待票客户建一个空的队列
9.lookup()
函数原型int lookup(char *cityname,SqFlight LF)
用来查找航班,形参指针cityname指向查询时输入的航线的首地址,引用航班顺序线性表LF
二、设计及实验要点
1
如图一所示航班管理系统主要有以下
第一:具有乘客乘坐飞机的起点、终点、日期和可以使用的座位等基本信息。
第二:售票/订票系统:包括乘客信息添加、修改、删除、查询。
第三:可以在顾客退票时,及时让侯票的顾客补到票
第四:顾客可以及时的查询自己是不是订票成功。
第五:顾客可以在无票时能预定票数。
2.待订票客户的结构体
typedef struct WPassengerNode
{
。。。。。。
}WPassengerNode; //待订票客户结点
WpassengerNode结构体在系统中用来存储待订票客户的一些基本信息,如以上定义,包括待订票客户的姓名待订票客户的身份证号待订票客户电话号码待订票客户机票需求量以及用“WPassengerNode *next;”来指向下一个待订票客户节点。
SqFlight LF;
InitList_Sq(LF);
InitFlightNode(LF);
system1(LF);
printf("\n");
}
3
该功能主要实在主函数初始化的前提下,调用lookup( )函数来完成所有航班的查询。另外也可以通过目的地,输入目的地的大写字母来调用lookup.( )来完成。
6.InitList_Sq()
函数原型int InitList_Sq(SBiblioteka BaiduFlight &LF)
此函数用来构造一个空的线性表LF飞机航班结点
7.InitList_pa()
函数原型int InitList_pa(passengerLink &PA)
该函数用来为已订票客户链表建一个空链表
8.InitList_WPQ()
3./订票客户链表
typedef struct
{
。。。。。。
}passengerLink; //已订票客户单链表(按ID有序)
在该链表中,用“PassengerNode *passenger;”来指向订票客户,用“int length;”来统计订票的人数
4.待订票客户的队列
typedef struct
三、源程序(见附录)
四、程序实现
(一)源码分析
1.
2.
主函数实现功能主要是为进入系统做好准备,并完成航班的初始化,即对各个航班赋上初值。
void main()
{
system("color 0A");//改变背景和前景颜色
system("mode con: cols=70 lines=35");//调整显示方框的大小
{
。。。。。。
}flightnode;//航班结点
在该航班节点中,用来存储每一个航班的信息,其中有终点站名称航班编号飞机编号飞行周日飞机能载最大人数还余下多少张票等基本信息
并用“flightnode *next;”来指向下一个航班节点,用“WpassengerQueue npassenger;”来指向本次航班带票客户队列,用“passengerLink passenger;”来指向本次航班已定票的客户链表。
4.
。。。。。
实现结果如图3所示
图3(订票成功)
5.
在完成订票后,如果要退票,顾客可在在主界面中选择4进行退票,此时通过调用函数back_ticket()来完成,在此函数中,先通过searchNUM(number,LF)找到要办理航班的航班,继而通过修改订票人的链表和剩余票数来删除要退票的人的信息。
此次的开发系统主要是完成航班售票管理的各种自动化服务,通过计算机的运行完成各项事务,设计一个航班售票管理的数据管理系统。通过开发此系统,可稳定简便地通过计算机来执行一系列操作,减少人工劳动强度,达到省时省力的目的,内容包括乘客信息添加、修改、删除、查询;航班的售票订票的添加、修改、删除、查询;航空公司的航班时刻表的查询等。在此次课程设计的实验中,便是利用C语言和数据结构的一些知识模拟航班管理系统。
10.searchID()
函数原型PassengerNode *searchID(flightnode *p,char *ID)
p是指向某个航班结点的指,ID是要查询的ID,该函数是通过ID号来查询航班,,并返回已订票顾客节点
11.searchNUM()
函数原型flightnode *searchNUM(int number,SqFlight LF)