航空客运订票系统的设计与实现

合集下载

航空票务销售系统的设计与实现

航空票务销售系统的设计与实现

航空票务销售系统的设计与实现随着航空业的发展和人们对航空出行的需求增加,航空票务销售系统成为了航空公司和旅行社等机构必备的工具。

这种系统通过互联网平台提供航空机票的预订、支付、退改签等功能,为乘客提供方便快捷的服务,同时也为航空公司提供了有效管理和业务拓展的工具。

本文将着重讨论航空票务销售系统的设计与实现。

一、需求分析在设计航空票务销售系统之前,首先需要进行需求分析。

这包括从用户和企业两个角度考虑系统所需要具备的功能和特点。

以下是航空票务销售系统的基本需求:1. 机票查询和预订功能:用户可以根据出发地、目的地、航班日期等参数查询航班信息,并进行机票的预订。

2. 航班信息展示:系统需要能够准确展示航班的起降时间、航程、航班准点率等信息,以帮助用户做出选择。

3. 价格与库存管理:系统需要及时更新航班票价和剩余库存的信息,确保用户获得准确的价格和可用机票的数量。

4. 安全支付功能:用户在系统内进行支付时,需要保障支付过程的安全性和隐私保护,例如使用加密技术和第三方支付方式。

5. 会员管理与优惠政策:系统应提供会员注册和积分系统,为常客提供各种优惠政策,如折扣、里程兑换等。

6. 退改签服务:系统需要提供退票、改签等服务,用户可以在系统内简单操作完成,同时需要根据航空公司的政策进行相应处理。

7. 数据分析和报表导出:系统应该具备数据分析功能,能够进行数据统计并生成相应的报表,为航空公司管理层提供决策依据。

二、系统设计与实现1. 架构设计:航空票务销售系统的架构设计应该具备良好的可扩展性和可维护性,可分为前端和后端两个部分。

前端部分需要提供用户友好的界面,可以是网页端或移动端应用,通过界面与用户进行交互,包括机票查询、预订、支付等功能。

后端部分需要处理前端的请求,与数据库进行交互,包括用户信息、航班信息、支付信息等的存取。

同时,后端还需要与第三方支付或航空公司系统进行对接。

2. 数据库设计:数据库设计是航空票务销售系统的重要组成部分。

航空客运订票系统的设计与实现

航空客运订票系统的设计与实现

课程设计说明书课程名称题目航空客运订票系统的设计与实现院系_电子信息工程学院____班级__计算机科学与技术__学生姓名______________指导教师_____________日期_ 2011.12.19-2011.12.30__数据结构课程设计任务书指导教师:时间: 2011.12.8航空客运订票系统的设计与实现一、简介1.设计目的:1.数据结构课程设计是综合运用数据结构课程中学到的几种典型数据结构,以及程序设计语言(C语言),自行实现一个较为完整的应用系统的设计与开发2.通过课程设计,自己通过系统分析、系统设计、编程调试,写实验报告等环节,进一步掌握应用系统设计的方法和步骤,灵活运用并深刻理解典型数据结构在软件开发中的应用。

3.学会将知识应用于实际的方法,提高分析和解决问题的能力,增加综合能力。

航空空订票系统:(1)熟练掌握链表存储结构及其建立过程和常用操作;(2)熟练掌握队列的建立过程和常用操作;(3)学会自己调试程序的方法并掌握一定的技巧。

2.问题的描述:航空客运订票的业务包括查询航线和客票预定的信、客票预定和办理退票等,设计一个程序以使上述任务借助计算机完成。

二、数据结构的设计:(1)航班信息:飞机抵达城市、航班号、飞机号、起降时间、航班票价、票价折扣、总位置和剩余位置、以訂票的客户名单。

(2)客户信息:客户姓名、证件号、座位号。

三、功能(函数)设计:1.每条航线所涉及的信息有:终点站名、航班号、飞机号、飞行日(星期几)、载客量、余票量、票价格,折扣,已订票的客户名单(包括姓名、订票量、舱位等级1,2或3)以及等候替补的客户名单(包括姓名、所需票量); 2.全部数据可以只放在内存中;3.系统能实现的操作和功能如下:a) 查询航线:根据旅客提出的终点站名输出下列信息:航班号、飞机号、星期几飞行,最近一天航班的日期和余票额;b) 承办订票业务:根据客户提出的要求(航班号、订票数额)查询该航班票额情况,若尚有余票,则为客户办理订票手续,输出座位号;若已满员或余票额少于定票额,则需重新询问客户要求。

航空订票系统设计报告

航空订票系统设计报告

一绪论11.1 课题背景及现状 (1)1.2 开发工具介绍 (1)二需求分析 (2)(一)航空售票系统的数据需求(二)数据字典(三) 主要数据流图三概要设计 (6)四逻辑设计 (7)五详细设计 (7)(一)基本查询语句(二) 程序流图中某些加工实现采用IPO图的方式描述(三)数据库的逻辑结构设计六测试结果 (12)七小结 (17)参考文献 (18)附录(主要源代码) (19)一绪论1.1 课题背景及现状随着旅游业的逐渐的成熟发达,航空客运量大幅度的提高,国内国际的旅游航班的增加,这些都对航空的信息管理系统提出了更高的要求,所以要不断的完善更新航空售票系统,提高航空售票系统的工作效率。

航空公司为方便旅客,需开发一个订票系统。

系统的操作者是有登录密码和用户名的售票员。

系统要实现的基本功能是航班的调整,售票,订票,取票,退票,乘客信息的管理,乘客购票的统计;而系统在以后扩展时还可以实现的功能有:对机组工作人员的管理,预定机票的送票情况管理等。

此系统的开发由我们分模块完成,而我所负责的模块是实现系统的航班调整,售票,订票,退票,取票,航班查询功能。

举一个旅客订票的例子:预定机票的旅客信息,包括姓名、性别、地址、证件号、目的地,输入机票预定系统的客户端程序,系统经过查询航空公司内的航班数据服务器后,为旅客安排航班,印出取票通知。

旅客在飞机起飞前一天凭取票通知和帐单交款后取票,系统校对无误后即印出机票给旅客。

要求系统能有效、快速、安全、可靠和无误的完成上述操作。

并要求客户机的界面要简单明了,易于操作,服务器程序利于维护。

航空售票系统是典型的信息管理系统,其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。

对于前者要求建立起数据一致性和完整性强、数据安全性好的库。

而对于后者则要求应用程序功能完备,易使用等特点1.2 开发工具介绍本次课程设计应用的开发工具主要是用java语言和SQL Server 2005 。

航空订票系统的设计与实现毕业论文

航空订票系统的设计与实现毕业论文

航空订票系统的设计与实现毕业论⽂引⾔1 引⾔1.1选题背景21世纪的特征是数字化、⽹络化和信息化,它是⼀个以数据库技术为核⼼的信息时代。

⽽随着信息技术的发展,航空售票业也成为⼀个⾼度依赖信息业的⾏业。

信息技术的飞速发展不仅使航空售票⼯作者逐渐摆脱了繁重的⼿⼯劳动、提⾼了⼯作效率,⽽且推着航空事业向现代化管理迈进。

现代化的航空售票也应该有现代化的管理系统。

在科技⽇益发达的今天,⼈们对旅游出⾏更加重视。

因此,航空售票进⾏现代化管理就变的尤为重要。

今天,信息资源已成为各个部门的重要财富,建⽴⼀个满⾜航空售票信息处理要求的⾏之有效的信息系统也成为⼀个航空公司发展的重要条件。

航空售票管理系统,它是航空部门机票管理系统的⼀部分,其作⽤是对所有待售机票和已售机票进⾏有效的管理。

通过本系统不仅可以进⾏售票⼯作,⽽且还可以对和机票相对应的旅客情况和航班情况进⾏查询,并可随时进⾏增加,修改,删除等⼯作,使售票⼈员能够有效地对机票进⾏有效的控制和管理。

因此,通过航空售票管理系统,使航空售票管理⼯作系统化,规范化,⾃动化,从⽽⼤⼤提⾼了售票管理⼯作的效率。

1.2 ⽬的和意义随着信息技术的发展,使⼈们上⽹容易成为现实,⽽售票厅往往⼈群拥挤⼀票难求,现实中去站点购票要受时间及地点的限制,由于现在⼈们⽣活节凑变快,时间资源相当保贵,有时为定购⼀张票需要坐上⼏个⼩时的车到售票处去排队买票,有时还会因为信息的缺乏,不能有效的了解票的销售情况,使旅⾏计划受阻,给顾客带来了很多的不便。

⽹上订票系统,新⼀种新型的售票模式。

⽤户可以通过⽹络查询航班的情况及机票的销售情况,以便更好的制定旅⾏计划,⽤户通过互联⽹在⽹上预订机票,极⼤的提⾼的旅客的订票效率,节省了订票的时间,缓解了售票窗⼝的拥挤的现状。

⽹上订票系统的成功实施,提⾼了售票的信息化管理⽔平,减⼩了⼯作⼈员的⼯作强度,为航空运输⾏业提供了新型的管理模式。

第1页(共38页)航空订票系统的设计与实现1.3 技术要求和设计范围航空售票系统提供的是⼀种⾯向较⼴区域的⽤户群系统。

数据结构课程设计-航空订票系统

数据结构课程设计-航空订票系统

数据结构课程设计报告设计题目:航空客运订票系统院系年级学生学号指导教师2015年11月26日目录一、课程设计目的 3二、需求分析 3三、概要设计1.设计步骤 42.系统整体结构图 53.功能模块及调用关系说明 5四、详细设计和源代码1.实现概要设计中定义数据的存储结构 62.查询航线信息功能的算法设计73.订票功能的算法设计94.退票功能的算法设计125.录入功能的算法设计 146.总航线预览功能的程序源代码15五、调试分析1.各功能的具体实例分析162.实验过程中出现的问题及解决方法 20六、课程设计总结20七、参考资料21一、课程设计目的(1) 熟练使用 C 语言编写程序,解决实际问题;(2) 了解并掌握数据结构与算法的设计方法,具备初步的独立分析和设计能力;(3) 初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能;(4) 提高综合运用所学的理论知识和方法独立分析和解决问题的能力;航空订票系统:(1)熟练掌握链表存储结构及其建立过程和常用操作;(2)熟练掌握队列的建立过程和常用操作;(3)学会自己调试程序的方法并掌握一定的技巧。

二、需求分析问题描述:航空客运订票的业务活动包括:查询航线、客票预订和办理退票等。

试设计一个航空客运订票系统,以使上述业务可以借助计算机来完成。

设计任务:通过此系统可以实现如下功能:录入:可以录入航班情况(数据可以存储在一个数据文件中,数据结构、具体数据自定)查询:可以查询某个航线的情况(如,输入航班号,查询起降时间,起飞抵达城市,航班票价,票价折扣,确定航班是否满仓);可以输入起飞抵达城市,查询飞机航班情况;根据旅客提出的终点站名输出下列信息:航班号、飞机号、星期几飞行,最近一天航班的日期和余票额;订票:(订票情况可以存在一个数据文件中,结构自己设定)根据客户提出的要求(日期、航班号、订票数额)查询该航班票额情况,若尚有余额,则为客户办理订票手续,输出座位号;若已满员或余票额少于订票额,则需要重新询问客户要求。

航空客运订票系统本科课程设计

航空客运订票系统本科课程设计

石家庄经济学院本科生课程设计报告书题目航空客运订票系统航空客运订票系统1 需求分析【问题描述】试设计一个航空客运订票系统,方便乘客通过购票系统购买自己的所需要的飞机票,而航空客运订票的业务活动包括:1.查询航线;2.客票预订;3.办理退票。

【系统能实现的功能】①录入:由设计者录入航班情况,数据存储在文件中;②查询航线:由用户输入终点站名,出发时间,输出下列信息:所有可能的航班号,当天航班的余票数目;③承办订票业务:根据用户提出的要求(航班号、出发时间、订票数额)查询该航班票额情况,若尚有余票,则为客户办理订票手续,输出座位号;已满员或余票额少于订票额,则需重新询问客户是否需要进入预约人数中。

④承办退票业务:根据用户提供的情况(日期、航班、票数等),为客户办理退票手续。

然后查询该航班是否有人排队候补,首先询问排在第一的客户,若所退票数目能满足他的要求,则为他办理订票手续,否则依次询问其他排队候补的客户。

【测试实例】例子某客户输入订票信息:北京到上海,2014年5月3日,所需票数3张;系统输出:所有可能航班号1000,1001,1002 余票分别为40张,50张,55张;该客户选择航班号为1000的航班;则该航班余票变为37张;2 概要设计航线的情况和已订票客户登录在一张线性表上,分别用顺序表和单链表实现;ADT list{数据对象:D = {ai | ai∈ElemSet,i = 1,2,…,n,n>=0}数据关系:R1 = {<ai-1,ai>|ai-1,ai∈D,i = 2, …,n}基本操作:InitList70219(&L)操作结果:构造一个空的线性表L;ListInsert70219(&L,i,e)初始条件:线性表L已经存在;操作结果:在L中第i个位置之前插入新的元素e,L的长度加1;ListDelete70219(&L,i,&e)初始条件:线性表L已经存在且非空,操作结果:删除L的第i个位置的元素,并用e返回其值,L的长度减1;}预约客户信息的存储使用队列。

航空客运订票系统—VC毕业设计(论文)

航空客运订票系统—VC毕业设计(论文)

航空客运订票系统—VC毕业设计(论文) 航空客运订票系统 1 问题描述航空客运订票的业务活动包括:查询航线、客票预订和办理退票等。

试设计一个航空客运订票系统,以使上述业务可以借助计算机来完成。

1.1 每条航线所涉及的信息有:终点站名、航班号、飞机号、飞行周日(星期几)、乘员定额、余票量、已订票的客户名单(包括姓名、订票量、舱位等级1,2或3)以及等候替补的客户名单(包括姓名、所需票量)1.2 作为示意系统,全部数据可以只放在内存中1.3 系统能实现的操作和功能如下:1.3.1 查询航线:根据旅客提出的终点站名输出下列信息:航班号、飞机号、星期几飞行,最近一天航班的日期和余票额1.3.2 承办订票业务:根据客户提出的要求(航班号、订票数额)查询该航班票额情况,若尚有余票,则为客户办理订票手续,输出座位号;若已满员或余票额少于订票额,则需重新询问客户要求。

若需要,可登记排队候补 1.3.3 承办退票业务:根据客户提供的情况(日期、航班),为客户办理退票手续,然后查询该航班是否有人排队候补,首先询问排在第一的客户,若所退票额能满足他的要求,则为他办理订票手续,否则依次询问其他排队候补的客户 2 概要设计2.1 存储结构设计typedef struct Al_Custom //已订票客户{char name[15];//姓名int count;//订票量int level;//舱位等级Al_Custom *next;//下一节点指针}Al_Custom,*Al_CustomLink;typedef struct Wait_Custom//等候替补的客户{char name[15];//姓名int count;//所需票量Wait_Custom *next;//下一节点指针 }Wait_Custom; typedef struct Wait_Queue//等待队列 {Wait_Custom *front;//队列头指针Wait_Custom *rear;//尾指针 }Wait_Queue; typedef struct Flight//航线{char terminus[15];//终点站名char flight_no[10];//航班号char plane_no[10];//飞机号int week;//飞行周日int count;//乘客定额int rest;//余票量Al_CustomLink Al_link;//指向成员名单链表的头指针Wait_Queue wait_queue;//等待替补队列 }Flight;2.2 主要算法设计2.2.1 主程序模块:void main(){初始化;do{接受命令;处理命令;}while(命令!="退出");}2.2.2 查询航线模块——实现查询功能 void findFlight() { 提示输入要查询航线的终点站名;如果存在该航线,则输出该航线信息;否则提示不存在该航线;}2.2.3 承办订票业务模块——实现订票功能 void dingpiao() {提示输入航班号和订票数;若不存在该航班号,则提示不存在该航线;否则{如果有余票,则办理业务;否则提示没有足够的余票,询问是否候补;若是,则排队候补;}}2.2.4 承办退票业务模块——实现退票功能 void tuipiao() {提示输入航班号和飞行周日;确认航班号和飞行周日都存在,并且客户有订票,则 {执行退票;为排队候补的客户办理订票业务;}否则{提示有误}}2.3 测试用例设计2.3.1 航线3条:1001 hp001 shanghai 2 501002 hp002 beijing 5 501003 hp003 guangzhou 7 502.3.2 查询航线:shanghai2.3.3 承办订票业务:航班号1001 数额30 姓名chengangjie 舱位等级22.3.4 承办订票业务:航班号1001 数额23 姓名zhenxi 舱位等级32.3.5 承办退票业务:姓名chengangjie 航班号1001 飞行周日2 2.3.6 查询航线:终点站名:shanghai3 调试分析3.1 本次的设计比较困难,需要实现较多的功能,所以在调试过程中不太顺利,主要是指针的修改。

航空客运订票系统的设计与实现

航空客运订票系统的设计与实现

课程设计说明书之阿布丰王创作课程名称题目航空客运订票系统的设计与实现院系_电子信息工程学院____班级__计算机科学与技术__学生姓名______________指导教师_____________日期___数据结构课程设计任务书航空客运订票系统的设计与实现一、简介1.设计目的:1.数据结构课程设计是综合运用数据结构课程中学到的几种典范数据结构,以及法式设计语言(C语言),自行实现一个较为完整的应用系统的设计与开发2.通过课程设计,自己通过系统分析、系统设计、编程调试,写实验陈说等环节,进一步掌握应用系统设计的方法和步伐,灵活运用并深刻理解典范数据结构在软件开发中的应用 .3.学会将知识应用于实际的方法,提高分析和解决问题的能力,增加综合能力.航空空订票系统:(1)熟练掌握链表存储结构及其建立过程和经常使用把持;(2)熟练掌握队列的建立过程和经常使用把持;(3)学会自己调试法式的方法并掌握一定的技巧.2.问题的描述:航空客运订票的业务包括查询航线和客票预定的信、客票预定和规画退票等,设计一个法式以使上述任务借助计算机完成.二、数据结构的设计:(1)航班信息:飞机抵达城市、航班号、飞机号、起降时间、航班票价、票价折扣、总位置和剩余位置、以訂票的客户名单.(2)客户信息:客户姓名、证件号、座位号.三、功能(函数)设计:1.每条航线所涉及的信息有:终点站名、航班号、飞机号、飞行日(星期几)、载客量、余票量、票价格,折扣,已订票的客户名单(包括姓名、订票量、舱位品级1,2或3)以及等待替补的客户名单(包括姓名、所需票量);2.全部数据可以只放在内存中;3.系统能实现的把持和功能如下:a) 查询航线:根据旅客提出的终点站名输出下列信息:航班号、飞机号、星期几飞行,最近一天航班的日期和余票额;b) 承办订票业务:根据客户提出的要求(航班号、订票数额)查询该航班票额情况,若尚有余票,则为客户规画订票手续,输出座位号;若已满员或余票额少于定票额,则需重新询问客户要求.若需要,可挂号排队候补;c) 退票业务:根据客户提供的情况(日期、航班),为客户规画退票手续,然后查询该航班是否有人排队候补,首先询问排在第一的客户,若所退票额能满足他的要求,则为他规画订票手续,否则依次询问其他排队候补的客户.系统结构图(功能模块图)功能模块说明(1)显示已初始化的全部航线信息(2)浏览已订票客户信息(3)根据客户提出的终点站名,调用find()函数寻找航线信息,调用list()函数输返航线信息(4)规画订票业务:根据客户提供的航班号进行查询航线信息,若客户订票额超越乘员定票总额,退出,若客户订票额末超越余票量,订票胜利并挂号信息,在订票乘员名单域中添加客户信息;如果暂时没有票,询问客户是否要排队等侯,如果是,则在等待队列增加该客户的订票信息.(5)规画退票业务:调用查询函数,根据客户提供的航线进行搜索根据客户提供的姓名到订票客户名单域进行查询.退票胜利后,重新将航线名单域指向订票单链表的头指针.根据队列中从出的客户信息判断是否满足要求,如果满足,则将该客户的信息拔出到乘客信息链表中.(6)退出本系统四、界面设计:界面简洁易懂,包括1.浏览航线信息;2.浏览已订票客户信息;3.查询航线;4.规画订票业务;5.规画退票业务;6.检查剩余票数并排序.五、法式设计:六、运行与测试:1、测试的数据及其结果:(1)通过按键“1”浏览航线信息,结果输出五行事先输入的数据.(2)通过按键“3”查询航线,输入终点站名后,结果输出相关航线信息.(3)通过按键“4”规画订票业务,依次输入航班号,订票数量,客户姓名,证件号后,结果输出客户的座位号,订票胜利.(4)通过按键“2”浏览已定票客户信息,输入航班号后,结果显示客户信息.(5)通过按键“5”规画退票业务,输入航班号,客户名后,结果退票胜利.(6)通过按键“6”检查剩余票数并排序,结果正确.(7)通过按键“0”退出系统,结果正确.2、运行与测试期间遇到的问题及其解决法子.(1)因自己能力有限,在编写的时候只使用了相对较为简单的基础语言 ,取代了相对较为复杂的语言,降低了运行效率.(2)法式在起初设计的时候,经常呈现溢犯毛病,而且不只一处.为了修正这些溢犯毛病,耗费了年夜量的时间,修正解释之后再看源法式,才发现原来只是因为开始的函数界说的数据类型呈现了问题,对函数的界说不清楚,字符的不正确界说造成了后期年夜量的纠错工作,(3)由于忘记了一些c语言的规范使得在调试过程中一些毛病没有发现.例如,调用函数时,数组只需要传递数组名即可;字符‘0’和整形的0是分歧的文明不成以直接对其画等号.(4)测试用例具有一定的广泛性.运行法式时输入了多种分歧字符信息,经过屡次修改结果到达了预期效果.说明法式具有一定的可靠性和稳定性.七、设计后的思考:经过这次课程设计,我对换试掌握的更加熟练了,改变了过去只调试不知道如何对比法式语言修改法式的坏习惯,对换试也有了新的认识,意识到了法式语言的规范性以及我们在编程时要有严谨的态度,同时在写法式时如果加一定量的注释,既增加了法式的可读性,也可以使自己在读法式时更容易.代码:#include <stdio.h>#include <stdlib.h>#include <string.h>#include <conio.h>#define MAXSIZE 5typedef struct wat_ros{ char name[10];int req_amt;struct wat_ros *next;}qnode,*qptr;typedef struct pqueue { qptr front;qptr rear;}linkqueue;typedef struct ord_ros { char name[10];int ord_amt;int grade;struct ord_ros *next; }linklist;struct airline{ char ter_name[10]; char air_num[10]; char plane_num[10]; char date[7];int tkt_amt;int tkt_sur;int tkt_pri;int tkt_reb;linklist *order;linkqueue wait;}lineinfo;struct airline *start;struct airline air[MAXSIZE]={{"北京","1","A1401","星期日",3,1,800,9},{"上海","2","H1102","星期一",2,5,600,6},{"洛阳","3","L1003","星期五",1,3,100,4},{"杭州","4","H1035","星期三",5,4,700,5},{"呼和浩特","5","F1100","星期六",6,3,800,5}};void display(struct airline *info){printf("%8s\t%3s\t%s\t%7s\t%7d\t%10d\t%5d\t%3d\n",info->ter_name,info->air_num,info->plane_num,info->date,info->tkt_amt,info->tkt_sur,info->tkt_pri,info->tkt_reb);}void list(){ struct airline *info;int i=0;info=start;printf("终点站\t\t航班号\t飞机号\t飞行日期\t载客量\t 余票量\t票价格\t折扣\n");while(i<MAXSIZE){display(info);info++;i++;}printf("\n\n");}void search(){ struct airline *info,*find();char name[10];int i=0;info=start;printf("请输入终点站名:");scanf("%s",name);while(i<MAXSIZE){if(!strcmp(name,info->ter_name)) break; info++;i++;}if(i>=MAXSIZE)printf("对不起,该航线未找到!\n");else{printf("终点站\t\t航班号\t飞机号\t飞行日期\t载客量\t余票量\t票价格\t折扣\n");display(info);}}struct airline *find(){ struct airline *info;char number[10];int i=0;info=start;printf("请输入航班号:");scanf("%s",number);while(i<MAXSIZE){if(!strcmp(number,info->air_num)) return info;info++;i++;}printf("对不起,该航线末找到!\n");return NULL;}void prtlink(){ linklist *p;struct airline *info;info=find();p=info->order;if(p!=NULL){printf("客户姓名订票数额客户证件号\n");while(p){printf("%s\t\t%d\t%d\n",p->name,p->ord_amt,p->grade);p=p->next;}}elseprintf("该航线没有客户信息!!\n");}linklist *insertlink(linklist *head,int amount,char name[],int grade){ linklist *p1,*new1;p1=head;new1=(linklist *)malloc(sizeof(linklist));if(!new1) {printf("\nOut of memory!!\n");return NULL;} strcpy(new1->name,name);new1->ord_amt=amount;new1->grade=grade;new1->next=NULL;if(head==NULL){head=new1;new1->next=NULL;}elsehead=new1;new1->next=p1;return head;}linkqueue appendqueue(linkqueue q,char name[],int amount) { qptr new1;new1=(qptr)malloc(sizeof(qnode));strcpy(new1->name,name);new1->req_amt=amount;new1->next=NULL;if(q.front==NULL)q.front=new1;elseq.rear->next=new1;q.rear=new1;return q;}void order(){ struct airline *info;int amount,grade;char name[10];info=start;if(!(info=find())) return;printf("请输入你订票所需要的数量:");scanf("%d",&amount);if(amount>info->tkt_amt){ printf("\n对不起,您输入的票的数量已经超越乘员定额!");return;}if(amount<=info->tkt_sur){int i;printf("请输入您的姓名(订票客户):");scanf("%s",name);printf("请输入%s票的证件号:",name);scanf("%d",&grade);info->order=insertlink(info->order,amount,name,grade);for(i=0;i<amount;i++)printf("%s的座位号是:%d\n",name,info->tkt_amt-info->tkt_sur+i+1);info->tkt_sur-=amount;printf("\n祝您乘坐愉快!\n");}else{ char r;printf("\n已经没有更多的票,您需要排队等待吗?(Y/N)"); r=getch();printf("%c",r);if(r=='Y'||r=='y'){ printf("\n请输入您的姓名(排队订票客户):");scanf("%s",name);info->wait=appendqueue(info->wait,name,amount);printf("\n注册胜利!\n");}else printf("\n欢迎您下次再次订购!\n");}}void return_tkt(){ struct airline *info;qnode *t,*back,*f,*r;int grade;linklist *p1,*p2,*head;char cusname[10];if(!(info=find())) return;head=info->order;p1=head;printf("请输入你的姓名(退票客户):");scanf("%s",cusname);while(p1!=NULL) {if(!strcmp(cusname,p1->name)) break;p2=p1;p1=p1->next;}if(p1==NULL){ printf("对不起,你没有订过票!\n");return;} else{if(p1==head) head=p1->next;else p2->next=p1->next;info->tkt_sur+=p1->ord_amt;grade=p1->grade;printf("%s胜利退票!\n",p1->name);free(p1);}info->order=head;f=(info->wait).front;r=(info->wait).rear;t=f;while(t){if(info->tkt_sur=info->wait.front->req_amt){int i;info->wait.front=t->next;printf("%s订票胜利!\n",t->name);for(i=0;i<t->req_amt;i++)printf("%s的座位号是:%d\n",t->name,(info->tkt_sur)-i);info->tkt_sur-=t->req_amt;info->order=insertlink(info->order,t->req_amt,t->name,grade);free(t);break;}back=t;t=t->next;if((info->tkt_sur)>=(t->req_amt)&&t!=NULL){ int i;back->next=t->next;printf("%s订票胜利!\n",t->name);for(i=0;i<t->req_amt;i++)printf("<%s>'s seat number is:%d\n",t->name,(info->tkt_sur)-i);info->tkt_sur-=t->req_amt;info->order=insertlink(info->order,t->req_amt,t->name,grade);free(t);break;}if(f==r) break;}}void sort_tkt(){int j;struct airline t,*info,*p,*q;p=info=air;for(p=info;(p+1)->tkt_sur;p++)for(q=p+1;q->tkt_sur;q++){if(p->tkt_sur<q->tkt_sur){t=*p;*p=*q;*q=t;}}printf("终点站\t\t航班号\t飞机号\t飞行日期\t载客量\t余票量\t票价格\t折扣\n");for(j=0;j<MAXSIZE;j++){display(info);info++;}}int menu_select(){ int c;char s[20];printf("\n *航空客运订票系统*\n");printf("***************************** *********************************\n");printf(" 1.浏览航线信息2.浏览已订票客户信息\n");printf(" 3.查询航线4.规画订票业务\n");printf(" 5.规画退票业务6.检查剩余票数并排序\n");printf(" 0.退出系统\n");printf("********************************************* ***********************************\n");do{printf("请选择:");scanf("%s",s);c=atoi(s);}while(c<0||c>7);return c;}void main(){start=air;for(;;){switch(menu_select()){case 1:list();break;case 2:prtlink();break;case 3:search();break;case 4:order();break;case 5:return_tkt();break;case 6:sort_tkt();break;case 0:printf("\n欢迎您的使用,再见!\n");exit(0); }printf("\nPress any key to continue!\n");getch();}}时间:二O二一年七月二十九日电子信息工程学院数据结构课程设计指导教师评分表时间:二O二一年七月二十九日。

航空客运智能售票系统开发及运营策略方案设计

航空客运智能售票系统开发及运营策略方案设计

航空客运智能售票系统开发及运营策略方案设计第一章:项目背景与目标 (2)1.1 项目背景 (3)1.2 项目目标 (3)第二章:市场分析 (3)2.1 航空客运市场现状 (3)2.2 智能售票系统市场需求 (4)2.2.1 用户需求分析 (4)2.2.2 市场规模分析 (4)2.3 市场竞争分析 (4)2.3.1 竞争格局 (4)2.3.2 竞争策略 (5)第三章:系统架构设计 (5)3.1 系统架构总体设计 (5)3.2 关键技术选择 (5)3.3 系统模块划分 (6)第四章:功能设计与实现 (6)4.1 用户界面设计 (6)4.2 系统功能模块设计 (7)4.3 数据库设计 (7)第五章:系统安全性设计 (8)5.1 数据安全 (8)5.1.1 数据加密 (8)5.1.2 数据备份与恢复 (8)5.1.3 数据访问控制 (8)5.2 网络安全 (8)5.2.1 防火墙与入侵检测系统 (8)5.2.2 网络隔离与访问控制 (8)5.2.3 安全漏洞修复 (8)5.3 用户隐私保护 (8)5.3.1 用户信息加密存储 (9)5.3.2 用户权限控制 (9)5.3.3 用户隐私政策 (9)第六章:系统功能优化 (9)6.1 功能指标分析 (9)6.1.1 系统响应时间 (9)6.1.2 系统吞吐量 (9)6.1.3 系统资源利用率 (9)6.1.4 系统并发能力 (9)6.2 系统功能优化策略 (10)6.2.1 代码优化 (10)6.2.2 数据库优化 (10)6.2.3 硬件优化 (10)6.2.4 系统架构优化 (10)6.3 测试与评估 (10)6.3.1 功能测试 (10)6.3.2 功能评估 (10)第七章:运营管理策略 (11)7.1 售票策略 (11)7.1.1 价格策略 (11)7.1.2 座位分配策略 (11)7.1.3 退改签政策 (11)7.2 客户服务策略 (11)7.2.1 售后服务 (11)7.2.2 信息推送 (11)7.2.3 客户关系管理 (11)7.3 营销推广策略 (12)7.3.1 线上线下融合 (12)7.3.2 联合营销 (12)7.3.3 优惠活动 (12)7.3.4 品牌建设 (12)第八章:合作伙伴关系管理 (12)8.1 合作伙伴选择 (12)8.1.1 合作伙伴筛选标准 (12)8.1.2 合作伙伴选择流程 (13)8.2 合作伙伴管理策略 (13)8.2.1 建立合作伙伴关系管理体系 (13)8.2.2 合作伙伴激励政策 (13)8.3 合作伙伴评价与激励 (14)8.3.1 合作伙伴评价体系 (14)8.3.2 合作伙伴激励措施 (14)第九章:项目实施与监控 (14)9.1 项目实施计划 (14)9.2 项目监控与管理 (15)9.3 项目风险应对 (15)第十章:未来发展展望 (16)10.1 市场发展趋势 (16)10.2 技术发展趋势 (16)10.3 业务拓展方向 (16)第一章:项目背景与目标1.1 项目背景我国经济的快速发展,航空运输业逐渐成为国民出行的主要选择之一。

毕业论文-航空售票系统设计与实现

毕业论文-航空售票系统设计与实现

毕业论文-航空售票系统设计与实现摘要航空售票/订票是航空业务中的一个最基本的业务,从表面上来看,它只是航空业务的一个简单的部分,但是它涉及到资金管理与客户服务等多方面,因此,过去传统的售票已经不能满足现代航空业务流量剧增的客观要求。

本系统——航空售票系统,采用 技术作为创建应用程序的方式,以C#作为编程语言,采用SQL Server 数据库作为后台数据库。

它是基于Browser/Server结构下形成的数据驱动的Web应用程序。

不仅能方便旅客,还能节省航空公司的代理费用,加速资金周转。

实现了后台管理员对航空公司、航班和订票信息的维护;前台客户通过注册登陆可以查询航班信息,进行订票和查看自己的购票信息并可以删除管理员未确认的订票信息。

同时可以进行购票错误以后的退票信息等功能。

本论文主要涉及软件,数据库与网络技术等。

涵盖知识面广,可有效地提高消费者综合运用所学知识分析解决问题的能力,增强消费者对事物的理解与掌握能力,培养消费者掌握科学的研究方法,正确的设计思想,独立思考,勇于进取,探索创新,为今后进一步学习与工作奠定了良好的基础。

关键词航空售票;;C#;SQL Server数据库;I(论文)AbstractTicket / booking is the aviation business in the most basic of business, from the face of it, it's just a simple air part of the business, but it relates to financial management and customer service and other aspects, therefore, has been the traditional ticket Modern air traffic flow can not meet the objective requirements of surge.The system - Air ticketing system, using technology as a way to create applications to C # as the programming language, using SQL Server database as the backend database. It is based on Browser / Server structure, formed under the data-driven Web applications. Not only convenient for tourists, but also save the airline agent costs and accelerate cash flow. Administrators realized back airlines, flights and booking information maintenance; receptionists can search for flights by up login information, make reservations and view their own information and tickets can delete the administrator has not confirmed the booking information. Tickets can also refund after wrong information and so on.This paper mainly involves software, database and network technology. Cover the wide range of knowledge, can effectively improve the knowledge of consumers of the integrated use of problem-solving skills, and enhance consumer understanding and grasp of things, cultivating consumer knowledge of scientific research methods, the correct design ideas, independent thinking, courage to forge ahead, exploration and innovation, for further study and work laid a good foundation.Keywords : C# SQL Server database air ticketII(论文)III(论文)IV(论文)V(论文)第1章绪论1.1 课题背景在现在的航空售票系统中,管理是航空公司能正常运作的重要环节,为了更好地推动航空售票业务的持续发展,不少航空分公司,通过分公司把航空售票管理软件推向最终用户。

基于C语言的航空订票系统的设计与实现

基于C语言的航空订票系统的设计与实现

基于C语言的航空订票系统的设计与实现航空订票系统是通过计算机技术对航空公司的航班信息和乘客信息进行管理和处理的系统。

本文将介绍基于C语言的航空订票系统的设计与实现。

具体包括系统的需求分析、系统的设计与架构、系统的实现和功能特点等方面。

一、系统的需求分析在设计和实现航空订票系统之前,需要明确系统的需求,包括基本功能和用户需求等。

基本功能包括航班查询、座位预订、票价计算、乘客信息管理等。

用户需求包括操作简便、查询快速、信息准确等。

二、系统的设计与架构1.系统架构设计航空订票系统采用客户端/服务器(Client/Server)架构设计。

客户端负责与用户进行交互,接收用户的输入并向服务器发送请求。

服务器负责处理客户端的请求,访问数据库获取相应的数据并返回给客户端。

2.数据库设计三、系统的实现1.用户界面设计在客户端实现用户界面,提供菜单和命令行交互的方式供用户操作。

菜单包括航班查询、座位预订、票价计算、乘客信息管理等功能选项。

2.功能实现(1)航班查询功能用户输入出发地和目的地,系统从数据库中查询符合条件的航班信息,并显示在用户界面上。

用户可以选择其中一条航班进行预订。

(2)座位预订功能用户选择一条航班后,系统显示该航班的座位信息,并提示用户选择座位号。

用户选择座位后,系统生成一个订单号,并将订单信息保存到数据库中。

(3)票价计算功能用户选择一条航班后,系统显示该航班的票价信息,并提示用户输入乘客人数和票价类型。

系统根据输入的信息计算总票价并显示给用户。

(4)乘客信息管理功能用户可以添加、修改和删除乘客信息。

当用户进行座位预订时,系统要求用户输入乘客信息,可以选择已有的乘客信息或新添加乘客信息。

四、系统的功能特点1.操作简便:用户可以通过菜单方式选择需要的功能,操作简单快捷。

2.查询快速:系统利用数据库索引技术,提高了查询速度,用户可以快速获取所需信息。

3.信息准确:系统通过数据库管理相关信息,并通过数据校验保证数据的准确性。

航空客运订票系统课程设计(数据结构)

航空客运订票系统课程设计(数据结构)

XXXXXXXXX计算机技术系项目名称:航空客运订票系统学生姓名:XX学号:班级:10801指导教师:年月日目录1.系统需求分析 (3)1.1问题分析 (3)1.2任务意义 (3)2. 数据结构设计及用法说明 (4)3. 详细设计和编码 (5)3.1.主菜单 (5)3.2.录入航空信息 (5)3.3输出航空信息 (6)3.4订票 (7)3.5退票 (7)4. 实验结果 (9)4.1菜单函数的功能测试 (9)4.2录入函数的功能测试 (9)4.3查询航班函数的功能测试 (11)4.4订票功能地测试 (12)致谢 (17)参考文献 (18)附录:源程序清单 (19)1.系统需求分析1.1 问题分析这次的课程设计是设计一个航空系统。

由于存储的数量较大且不固定,因此选择用链表来保存基本信息:终点站名、航班号、飞机号、飞行时间、乘员定额、余票量、已经订票的客户名单(包括姓名、订票量)、等候替补的客户名单(包括姓名、所需票量)等等。

由于在航线这个主链表上,每个航班上的已经订票名单这个链表和等候替补的名单这个链表队列,所以建立一个十字交叉链表,在纵行上开辟一个链表存储所有航班的基本信息,再在各个航班节点横向展开一个链表和一个链表队列,展开的链表存储已经订票的客户名单,展开的链表队列存储等候替补的客户名单。

同时,由于预约人数无法预计,队列也应以链表作存储结构。

系统主要实现的操作和功能是:添加航线、查询航线、订票功能、退票功能。

要实现这些功能,首先要使程序能实现查找功能,在查找出到有效信息的前提之下,通过链表的赋值,更新信息和删除退票人信息,满足客户的要求。

1.2 任务意义飞机场每天要接受大量的订票退票服务,对于这些数量巨大的数据,需要一个专门的软件来进行管理和操作。

软件至少需要具备的基本功能包括:接受订票,处理退票,查询航班信息等等。

面对这些实际问题,航空客运系统的制作无疑要全面的考察一个学生的知识及能力。

在全面理解客户的需求下面,来进行设计出最能够满足客户的程序出来,并且能够根据不同的要求来将其进行改动,最能考察到对代码活用的程度。

飞机售票管理系统的设计与实现

飞机售票管理系统的设计与实现

图6 3 测试 3.1 系统测试的概述
1)被测系统的描述:航空订票系统能够在网上实现用户订票退票
• 147 •
ELECTRONICS WORLD・技术交流
的功能。2)系统的测试计划:逐步对系统的各个功能进行测试,最后 再进行综合测试。3)测试人员安排:马金億、唐涛负责检测登录、 注册功能;桂军、严村负责检测订票、退票功能;滕智飞负责管理
功能:用户使用账号登陆;输入:用户输入账号;处理:系统 判定用户名和账号密码是否匹配;输出:用户登录成功(或者登陆 失败)。交互界面如图4。
图1 1.4 运行环境要求
开发系统:window8 浏览器:火狐、谷歌、360等主流浏览器 集成环境:WampServer Version 2.2 Apache Version:2.2.21 PHP Version:5.3.10 MySQL Version :5.5.20 编译工具:ZendStudio 10.6 数据库工具:phpMyAdmin 主体代码:plane_code.zip 数据库信息:plane_db.zip 2 系统设计 2.1 总体设计 系统软件结构图如图2:
图10 3)退票功能:切换用户选择退票,退票成功。
图11
• 148 •
图15
图16 退出,返回主界面。 测试完成。 总之,开发一种飞机售票管理系统,可以说是对于航空公司和 乘客都是具有极大的经济性和适用性的,另外在技术方面和法律层 面都是可行的。
数据库,进行数据库操作。 3.2 系统的测试方法和步骤
1)系统的测试方法:等价类划分、边缘检测、条件覆盖、语句覆盖。 2)系统的测试步骤:注册->登录->订票->查看已订票->预定->切换账 户->退票->切换账户->查看预订票->退票->退出。 3.3 系统的测试过程

航空客运订票系统(论文)

航空客运订票系统(论文)

信息科学与工程学部数据结构课程设计题目航空客运订票系统姓名学号**************学院信息科学与工程学院专业、年级软件工程1101班指导教师2012 年 11月 27 日摘要随着科技与经济的发展,人们的生活水平不断的提高,旅游业的逐渐的成熟发展,人们追求快节奏的生活方式,越来越多的人选择乘飞机,从而国内国际的航班不断的增加。

航空客运量大幅的提高,也促使了航空业得到迅速的发展。

而且随着网络的盛行,航空订票系统就显得尤为重要,所以航空客运订票系统主要是为了方便人们,让人们能够快速、清晰、准确地了解航班信息而不至于象以前那样排队等候,从而避免耽搁乘客大量的等待时间,使旅客轻松快捷的踏上愉快的旅程。

该航空客运订票系统分为乘客操作模块和系统管理员操作模块。

乘客操作模块包含了浏览所有航班信息、办理订票业务、办理退票业务,航班查询、等候订票人登记功能,而管理员操作模块包含添加航班、删除航班、查看已订票人信息、查看等待订票人信息功能,最后就是退出系统功能。

该系统主要运用动态线性链表和动态线性队列及其文件的保存与读取完成的。

航班线性链表中每一个结点包含了航班号、飞机号、终点站名、起飞时间、乘员定额、票价、余票量,已订票人的信息的链表和排队候补人的信息的链表等内容。

本系统在Visual C++ 6.0环境下进行开发,根据我们自身所学的知识利用动态线性链表、动态队列链表和文件操作实现了对数据的保存、读取等功能,达到了预定要求。

该系统虽然还存在一点点不足,那就是对乘客的座位号和座舱等级的具体安排没有实现,但该系统的所有功能均能实现,并且系统考虑的问题全面、易于操作、界面简单明了、服务器程序利于维护。

关键词:动态线性链表;动态队列链表;文件操作;订票目录第1章前言----------------------------------------------------11.1课题背景及其现实意义-----------------------------------错误!未定义书签。

网上航空订票系统设计与实现

网上航空订票系统设计与实现

单位代码01学号1403010001分类号TP315密级毕业设计说明书网上航空订票系统系统的设计与实现院(系)名称信息工程学院专业名称14计科专升本学生姓名郑智杰指导教师杜献峰2016年5月15日网上航空订票系统系统的设计与实现摘要随着人们生活质量的提升,物质文化需求的提高及各类交通工具也应运而生。

现阶段出外旅行及出差的人越来越多,而飞机快速、价低、便捷等优点开始成为越来越多人的选择。

从而一个好的航空信息管理系统变得越来越重要。

管理信息系统的实施在技术上已逐步成熟、越来越深入而广泛的应用,管理信息系统是一个不断发展的新型学科,就要高效率地建立与自身特点相适应的管理信息系统,该系统是完成一个基于票务管理、飞机航线航班管理、帮助出行等特殊服务以及查询业务的航空信息管理系统。

使用C#语言进行代码的编写,对于底层平台的依赖更少,其组件具有更强的实用性;系统框架使用MVC框架,MVC架构完全支持松耦合,高可维护性的开发模式。

数据库使用SQL Server2014版本进行数据的管理,SQL Server的数据库服务器具有快速、可靠和易于使用、稳定性高、可移植性强的特点。

系统最终达到的效效果远远高于用户的需求,快捷方便的为用户服务,既能提高工作人员的效率,又降低人为出错的几率。

数据方便统计与管理,大大节约了数据存储的成本。

关键词:C#,MVC,SQL ServerThe Design and implementation of online airline booking systemAuthor:Zheng ZhijieTutor:Du XianfengAbstractWith the enhancement of people's quality of life, and to improve the material and cultural needs of all types of vehicles have emerged. Present to travel on business and more and more people, and the plane fast, low price, convenience and other advantages became more and more people to choose from. Thus a good aeronautical information management system becomes increasingly important.Implementation of management information system has gradually matured technically, more in-depth and extensive application of new management information system is an evolving discipline, it is necessary to establish efficient management information system with its own characteristics, the system is based on the completion of ticketing management, management of aircraft flight routes, travel assistance and other special services and querying business aviation information management system. Use C # language to write code, and less dependence on the underlying platform, the assembly has a more practical; system framework using MVC framework, MVC architecture fully supports loosely coupled, maintainable development model. Use version of SQL Server2014 database to manage the data, the database server SQL Server has a fast, reliable and easy touse, high stability, portability features. System and ultimately achieve the effect is much higher than the efficiency of the user's needs, fast and convenient services for users, both to improve the efficiency of the staff, but also reduce the chance of human error. To facilitate data management and statistics, a significant reduction in the cost of data storage.Keywords: C#,MVC,SQL Server目录1引言 (1)1.1 项目背景 (1)1.2 研究现状 (2)1.3 项目意义 (3)2 需求分析 (4)2.1 系统环境需求 (4)2.2 功能需求分析 (4)3 系统功能设计 (6)3.1概念结构设计 (6)3.1.1概念模型 (6)3.1.2物理模型 (8)3.2数据库分析 (9)3.2.1数据库描述 (9)3.2.2数据表设计 (9)3.2.3数据库优化方法 (15)4 系统功能实现 (17)4.1 系统登陆与注册界面实现 (17)4.2 网站首页及机票展示界面实现 (21)4.3 提交订单及订单列表界面实现 (26)4.4 账户充值及资产动态界面实现 (34)5 系统测试 (42)5.1 测试方法 (42)5.2 测试过程 (42)5.2.1 登录界面测试 (42)5.2.2 系统功能测试 (42)5.3 测试总结 (43)结论 (44)致谢 (46)参考文献 (47)附录 (48)源程序代码 (48)1 引言1.1 项目背景随着人们生活质量的提升,物质文化需求的提高及各类交通工具也应运而生。

航空票务系统系统的设计

航空票务系统系统的设计

二、系统的设计(一).数据库设计数据库在一个信息管理系统中占有非常重要的地位,数据库设计的目标是建立一个合理、高效的数据模型。

合理的含义是,数据模型要能够满足用户需求,既能够合理地组织用户所需要的数据,又能够支持用户对数据处理的要求。

高效的含义是,数据模型的效益高、数据的完整性好,使于维护,没有数据冲突,能够满足较高的范式要求,同时数据模型还应该便于在DBMS中实现。

设计数据库系统时应该首先充分了解用户各个方面的需求,包括现有的以及将来可能增加的需求。

数据库设计一般包括如下几个步骤:数据库需求分析。

数据库概念结构设计。

数据库逻辑结构设计。

1.数据库需求分析针对一般航空公司管理信息系统的需求,通过对航空公司管理业务过程和数据流程分析,可以确定岀系统中一些实体对象及以及它们之间的关系,这些实体包含各种具体信息,通过相互之间的作用形成数据的流动。

航空电子票务综合管理系统中的业务实体包括航班信息(flightTick),定票客户信息(clientlnfo),每期航空座位信息(seat),这些实体模型的含义如下所述。

(1)flightTick:代表一个航班信息实体:包括航班号(fight)、航空公司(airfirm)、起飞地(start)、到达地(destination)、起飞时间(leaveTime)、到达时间(arriveTime)、儿童票价(childFare),成人票价(adultFare)、座位(seat)等。

(2)clientlnfo:代表一个定票客户信息实体:包括身份证号(id)、用户名(name),出发地(start)、到达地(edu)、出发时间(startime)、返回时间(returntime)、航班号(flight)、联系电话(telephone)、返回航班号(returnflight)、航空公司(airfirm)、机票类型(style)等。

(3)seat:代表一个每期航班座位信息实体:包括航班标识(seatnumber),每期航班已售座位数(bookedSeats)。

航空客运订票系统课程设计报告

航空客运订票系统课程设计报告

课程设计报告课程名称:数据结构与算法题目名称:航空客运订票系统2011 年 6 月10 日目录一、设计目的 (2)二、问题描述 (3)三、需求分析 (3)四、概要设计 (4)1、算法思路 (4)2、工作分配 (4)3、程序模块 (4)五、详细设计 (7)1.数据定义 (7)1.1 已定票客户 (7)1.2 未订票客户 (8)1.3 航线定义 (8)2.函数设计 (9)2.1 录入航线信息 (9)2.2查询航线信息 (10)2.3订票功能 (11)2.4退票功能 (17)2.5主函数 (21)六、测试数据 (23)七、总结 (24)航空客运订票系统一、设计目的我们之所以选择做航空订票系统这个课题,主要是因为当今时代的需求。

随着科技与经济的发展,越来越多的人选择乘飞机,这跟我国的经济增长有很大关系,人们在追求快节奏的生活方式,所以做飞机无疑成了首选。

而且随着网络的盛行,航空订票系统就显得尤为重要,我们开发这个系统主要是为了方便大家,让大家能够快速、清晰、准确地了解航班信息,而不至于像以前那样排队等候,从而避免耽搁乘客大量的等待时间。

二、问题描述航空客运订票的业务活动包括:查询航线,预订客票,办理退票等。

顾客只要在网上登陆了这个系统并输入相应的航班信息和飞行时间等信息,就可以了解当天的航班信息,方便乘客合理的安排自己的时间。

顾客可以通过这个系统了解到当天将到地点的详细航班信息,包括:航班号、飞机号以及余票额等相关信息。

三、需求分析(1)每条航线所涉及带的信息有:终点站名、航班号、飞机号、飞行日期、余票量、已定票客户名单(包括姓名、订票量、仓位等级1,2,或3)以及等候替补的客户名单(包括姓名、所需票量);(2)作为示意系统,全部数据可以存放在内存中。

(3)系统能实现的操作功能如下:①查询航线:根据旅客提出的终点站名输出下列信息:航班号、飞机号、星期几飞行、余票额;②承办订票业务:根据客户提出的要求(航班号、订票数额)查询该航班的票额情况,若尚有余票,则为客户办理订票手续,输出座位号;若已满员或余票额少于订票额,则需重新询问客户要求。

航空客运订票系统的设计与实现

航空客运订票系统的设计与实现

课程设计说明书课程名称题目航空客运订票体系的设计与实现院系_电子信息工程学院____班级__盘算机科学与技巧__学生姓名______________指点教师_____________日期___数据构造课程设计义务书航空客运订票体系的设计与实现一.简介1.设计目标:1.数据构造课程设计是分解应用数据构造课程中学到的几种典范数据构造,以及程序设计说话(C说话),自行实现一个较为完全的应用体系的设计与开辟2.经由过程课程设计,本身经由过程体系剖析.体系设计.编程调试,写试验陈述等环节,进一步控制应用体系设计的办法和步调,灵巧应用并深入懂得典范数据构造在软件开辟中的应用 . 3.学会将常识应用于现实的办法,进步剖析息争决问题的才能,增长分解才能.航空空订票体系:(1)闇练控制链表存储构造及其树立进程和经常应用操纵;(2)闇练控制队列的树立进程和经常应用操纵;(3)学会本身调试程序的办法并控制必定的技能.2.问题的描写:航空客运订票的营业包含查询航路和客票预定的信.客票预定和筹划退票等,设计一个程序以使上述义务借助盘算机完成.二.数据构造的设计:(1)航班信息:飞机抵达城市.航班号.飞机号.起降时光.航班票价.票价扣头.总地位和残剩地位.以訂票的客户名单.(2)客户信息:客户姓名.证件号.座位号.三.功效(函数)设计:1.每条航路所涉及的信息有:终点站名.航班号.飞机号.飞翔日(礼拜几).载客量.余票量.票价钱,扣头,已订票的客户名单(包含姓名.订票量.舱位等级1,2或3)以及等候替补的客户名单(包含姓名.所需票量);2.全体数据可以只放在内存中;3.体系能实现的操纵和功效如下:a) 查询航路:依据搭客提出的终点站名输出下列信息:航班号.飞机号.礼拜几飞翔,比来一天航班的日期和余票额;b) 承办订票营业:依据客户提出的请求(航班号.订票数额)查询该航班票额情形,若另有余票,则为客户筹划订票手续,输出座位号;若已满员或余票额少于定票额,则需从新讯问客户请求.若须要,可登记列队候补;c) 退票营业:依据客户供给的情形(日期.航班),为客户筹划退票手续,然后查询该航班是否有人列队候补,起首讯问排在第一的客户,若所退票额能知足他的请求,则为他筹划订票手续,不然依次讯问其他列队候补的客户.体系构造图(功效模块图)功效模块解释(1)显示已初始化的全体航路信息(2)阅读已订票客户信息(3)依据客户提出的终点站名,挪用find()函数查找航路信息,挪用list()函数输出航路信息(4)筹划订票营业:依据客户供给的航班号进行查询航路信息,若客户订票额超出乘员定票总额,退出,若客户订票额末超出余票量,订票成功并登记信息,在订票乘员名单域中添加客户信息;假如临时没有票,讯问客户是否要列队等侯,假如是,则在等候队列增长该客户的订票信息.(5)筹划退票营业:挪用查询函数,依据客户供给的航路进行搜刮依据客户供给的姓名到订票客户名单域进行查询.退票成功后,从新将航路名单域指向订票单链表的头指针.依据队列中从出的客户信息断定是否知足请求,假如知足,则将该客户的信息拔出到乘客信息链表中.(6)退出本体系四.界面设计:界面简练易懂,包含1.阅读航路信息;2.阅读已订票客户信息;3.查询航路;4.筹划订票营业;5.筹划退票营业;6.检讨残剩票数并排序.五.程序设计:六.运行与测试:1.测试的数据及其成果:(1)经由过程按键“1”阅读航路信息,成果输出五行事先输入的数据.(2)经由过程按键“3”查询航路,输入终点站名后,成果输出相干航路信息.(3)经由过程按键“4”筹划订票营业,依次输入航班号,订票数目,客户姓名,证件号后,成果输出客户的座位号,订票成功.(4)经由过程按键“2”阅读已定票客户信息,输入航班号后,成果显示客户信息.(5)经由过程按键“5”筹划退票营业,输入航班号,客户名后,成果退票成功.(6)经由过程按键“6”检讨残剩票数并排序,成果精确.(7)经由过程按键“0”退出体系,成果精确.2.运行与测试时代碰到的问题及其解决办法.(1)因本身才能有限,在编写的时刻只应用了相对较为简略的基本说话 ,代替了相对较为庞杂的说话,下降了运行效力.(2)程序在起先设计的时刻,经常消失溢出错误,并且不只一处.为了修改这些溢出错误,消耗了大量的时光,修改解释之后再看源程序,才发明本来只是因为开端的函数界说的数据类型消失了问题,对函数的界说不清楚,字符的不精确界说造成了后期大量的纠错工作,(3)因为忘却了一些c说话的规范使得在调试进程中一些错误没有发明.例如,挪用函数时,数组只须要传递数组名即可;字符‘0’和整形的0是不合的文明不成以直接对其画等号.(4)测试用例具有必定的普遍性.运行程序时输入了多种不合字符信息,经由多次修改成果达到了预期后果.解释程序具有必定的靠得住性和稳固性.七.设计后的思虑:经由此次课程设计,我对换试控制的加倍闇练了,转变了曩昔只调试不知道若何对比程序说话修改程序的坏习惯,对换试也有了新的熟悉,意识到了程序说话的规范性以及我们在编程时要有严谨的立场,同时在写程序时假如加必定量的注释,既增长了程序的可读性,也可以使本身在读程序时更轻易.代码:#include <stdio.h>#include <stdlib.h>#include <string.h>#include <conio.h>#define MAXSIZE 5typedef struct wat_ros{ char name[10];int req_amt;struct wat_ros *next;}qnode,*qptr;typedef struct pqueue{ qptr front;qptr rear;}linkqueue;typedef struct ord_ros{ char name[10];int ord_amt;int grade;struct ord_ros *next;}linklist;struct airline{ char ter_name[10];char air_num[10];char plane_num[10];char date[7];int tkt_amt;int tkt_sur;int tkt_pri;int tkt_reb;linklist *order;linkqueue wait;}lineinfo;struct airline *start;struct airline air[MAXSIZE]={{"北京","1","A1401","礼拜日",3,1,800,9},{"上海","2","H1102","礼拜一",2,5,600,6},{"洛阳","3","L1003","礼拜五",1,3,100,4},{"杭州","4","H1035","礼拜三",5,4,700,5},{"呼和浩特","5","F1100","礼拜六",6,3,800,5}};void display(struct airline *info){printf("%8s\t%3s\t%s\t%7s\t%7d\t%10d\t%5d\t%3d\n",info->ter_name,info->air_num,info->plane_num,info->date,info->tkt_amt,info->tkt_sur,info->tkt_pri,info->tkt_reb);}void list(){ struct airline *info;int i=0;info=start;printf("终点站\t\t航班号\t飞机号\t飞翔日期\t载客量\t 余票量\t票价钱\t扣头\n");while(i<MAXSIZE){display(info);info++;i++;}printf("\n\n");}void search(){ struct airline *info,*find();char name[10];int i=0;info=start;printf("请输入终点站名:");scanf("%s",name);while(i<MAXSIZE){if(!strcmp(name,info->ter_name)) break;info++;i++;}if(i>=MAXSIZE)printf("对不起,该航路未找到!\n");else{printf("终点站\t\t航班号\t飞机号\t飞翔日期\t载客量\t余票量\t票价钱\t扣头\n");display(info);}}struct airline *find(){ struct airline *info;char number[10];int i=0;info=start;printf("请输入航班号:");scanf("%s",number);while(i<MAXSIZE){if(!strcmp(number,info->air_num)) return info; info++;i++;}printf("对不起,该航路末找到!\n");return NULL;}void prtlink(){ linklist *p;struct airline *info;info=find();p=info->order;if(p!=NULL){printf("客户姓名订票数额客户证件号\n");while(p){printf("%s\t\t%d\t%d\n",p->name,p->ord_amt,p->grade);p=p->next;}}elseprintf("该航路没有客户信息!!\n");}linklist *insertlink(linklist *head,int amount,char name[],int grade){ linklist *p1,*new1;p1=head;new1=(linklist *)malloc(sizeof(linklist));if(!new1) {printf("\nOut of memory!!\n");return NULL;} strcpy(new1->name,name);new1->ord_amt=amount;new1->grade=grade;new1->next=NULL;if(head==NULL){head=new1;new1->next=NULL;}elsehead=new1;new1->next=p1;return head;}linkqueue appendqueue(linkqueue q,char name[],int amount) { qptr new1;new1=(qptr)malloc(sizeof(qnode));strcpy(new1->name,name);new1->req_amt=amount;new1->next=NULL;if(q.front==NULL)q.front=new1;elseq.rear->next=new1;q.rear=new1;return q;}void order(){ struct airline *info;int amount,grade;char name[10];info=start;if(!(info=find())) return;printf("请输入你订票所须要的数目:");scanf("%d",&amount);if(amount>info->tkt_amt){ printf("\n对不起,您输入的票的数目已经超出乘员定额!");return;}if(amount<=info->tkt_sur){int i;printf("请输入您的姓名(订票客户):");scanf("%s",name);printf("请输入%s票的证件号:",name);scanf("%d",&grade);info->order=insertlink(info->order,amount,name,grade);for(i=0;i<amount;i++)printf("%s的座位号是:%d\n",name,info->tkt_amt-info->tkt_sur+i+1);info->tkt_sur-=amount;printf("\n祝您乘坐高兴!\n");}else{ char r;printf("\n已经没有更多的票,您须要列队等候吗?(Y/N)"); r=getch();printf("%c",r);if(r=='Y'||r=='y'){ printf("\n请输入您的姓名(列队订票客户):");scanf("%s",name);info->wait=appendqueue(info->wait,name,amount);printf("\n注册成功!\n");}else printf("\n迎接您下次再次订购!\n");}}void return_tkt(){ struct airline *info;qnode *t,*back,*f,*r;int grade;linklist *p1,*p2,*head;char cusname[10];if(!(info=find())) return;head=info->order;p1=head;printf("请输入你的姓名(退票客户):");scanf("%s",cusname);while(p1!=NULL) {if(!strcmp(cusname,p1->name)) break;p2=p1;p1=p1->next;}if(p1==NULL){ printf("对不起,你没有订过票!\n");return;} else{if(p1==head) head=p1->next;else p2->next=p1->next;info->tkt_sur+=p1->ord_amt;grade=p1->grade;printf("%s成功退票!\n",p1->name);free(p1);}info->order=head;f=(info->wait).front;r=(info->wait).rear;t=f;while(t){if(info->tkt_sur=info->wait.front->req_amt){int i;info->wait.front=t->next;printf("%s订票成功!\n",t->name);for(i=0;i<t->req_amt;i++)printf("%s的座位号是:%d\n",t->name,(info->tkt_sur)-i);info->tkt_sur-=t->req_amt;info->order=insertlink(info->order,t->req_amt,t->name,grade);free(t);break;}back=t;t=t->next;if((info->tkt_sur)>=(t->req_amt)&&t!=NULL){ int i;back->next=t->next;printf("%s订票成功!\n",t->name);for(i=0;i<t->req_amt;i++)printf("<%s>'s seat number is:%d\n",t->name,(info->tkt_sur)-i);info->tkt_sur-=t->req_amt;info->order=insertlink(info->order,t->req_amt,t->name,grade);free(t);break;}if(f==r) break;}}void sort_tkt(){int j;struct airline t,*info,*p,*q;p=info=air;for(p=info;(p+1)->tkt_sur;p++)for(q=p+1;q->tkt_sur;q++){if(p->tkt_sur<q->tkt_sur){t=*p;*p=*q;*q=t;}}printf("终点站\t\t航班号\t飞机号\t飞翔日期\t载客量\t余票量\t票价钱\t扣头\n");for(j=0;j<MAXSIZE;j++){display(info);info++;}}int menu_select(){ int c;char s[20];printf("\n *航空客运订票体系*\n");printf("***************************** *********************************\n");printf(" 1.阅读航路信息2.阅读已订票客户信息\n");printf(" 3.查询航路4.筹划订票营业\n");printf(" 5.筹划退票营业6.检讨残剩票数并排序\n");printf(" 0.退出体系\n");printf("********************************************* ***********************************\n");do{printf("请选择:");scanf("%s",s);c=atoi(s);}while(c<0||c>7);return c;}void main(){start=air;for(;;){switch(menu_select()){case 1:list();break;case 2:prtlink();break;case 3:search();break;case 4:order();break;case 5:return_tkt();break;case 6:sort_tkt();break;case 0:printf("\n迎接您的应用,再会!\n");exit(0); }printf("\nPress any key to continue!\n");getch();}}电子信息工程学院数据构造课程设计指点教师评分表。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

课程设计说明书课程名称题目航空客运订票系统的设计与实现院系_电子信息工程学院____班级__计算机科学与技术__学生______________指导教师_____________日期_ 2011.12.19-2011.12.30__数据结构课程设计任务书指导教师:时间: 2011.12.8航空客运订票系统的设计与实现一、简介1.设计目的:1.数据结构课程设计是综合运用数据结构课程中学到的几种典型数据结构,以及程序设计语言(C语言),自行实现一个较为完整的应用系统的设计与开发2.通过课程设计,自己通过系统分析、系统设计、编程调试,写实验报告等环节,进一步掌握应用系统设计的方法和步骤,灵活运用并深刻理解典型数据结构在软件开发中的应用。

3.学会将知识应用于实际的方法,提高分析和解决问题的能力,增加综合能力。

航空空订票系统:(1)熟练掌握链表存储结构及其建立过程和常用操作;(2)熟练掌握队列的建立过程和常用操作;(3)学会自己调试程序的方法并掌握一定的技巧。

2.问题的描述:航空客运订票的业务包括查询航线和客票预定的信、客票预定和办理退票等,设计一个程序以使上述任务借助计算机完成。

二、数据结构的设计:(1)航班信息:飞机抵达城市、航班号、飞机号、起降时间、航班票价、票价折扣、总位置和剩余位置、以訂票的客户。

(2)客户信息:客户、证件号、座位号。

三、功能(函数)设计:1.每条航线所涉及的信息有:终点站名、航班号、飞机号、飞行日(星期几)、载客量、余票量、票价格,折扣,已订票的客户(包括、订票量、舱位等级1,2或3)以及等候替补的客户(包括、所需票量);2.全部数据可以只放在存中;3.系统能实现的操作和功能如下:a) 查询航线:根据旅客提出的终点站名输出下列信息:航班号、飞机号、星期几飞行,最近一天航班的日期和余票额;b) 承办订票业务:根据客户提出的要求(航班号、订票数额)查询该航班票额情况,若尚有余票,则为客户办理订票手续,输出座位号;若已满员或余票额少于定票额,则需重新询问客户要求。

若需要,可登记排队候补;c) 退票业务:根据客户提供的情况(日期、航班),为客户办理退票手续,然后查询该航班是否有人排队候补,首先询问排在第一的客户,若所退票额能满足他的要求,则为他办理订票手续,否则依次询问其他排队候补的客户。

系统结构图(功能模块图)功能模块说明(1)显示已初始化的全部航线信息(2)浏览已订票客户信息(3)根据客户提出的终点站名,调用find()函数寻找航线信息,调用list ()函数输出航线信息(4)办理订票业务:根据客户提供的航班号进行查询航线信息,若客户订票额超过乘员定票总额,退出,若客户订票额末超过余票量,订票成功并登记信息,在订票乘员域中添加客户信息;如果暂时没有票,询问客户是否要排队等侯,如果是,则在等候队列增加该客户的订票信息。

(5)办理退票业务:调用查询函数,根据客户提供的航线进行搜索根据客户提供的到订票客户域进行查询。

退票成功后,重新将航线域指向订票单链表的头指针。

根据队列中从出的客户信息判断是否满足要求,如果满足,则将该客户的信息插入到乘客信息链表中。

(6)退出本系统四、界面设计:界面简洁易懂,包括1.浏览航线信息;2.浏览已订票客户信息;3.查询航线;4.办理订票业务;5.办理退票业务;6.查看剩余票数并排序。

五、程序设计:六、运行与测试:1、测试的数据及其结果:(1)通过按键“1”浏览航线信息,结果输出五行事先输入的数据。

(2)通过按键“3”查询航线,输入终点站名后,结果输出相关航线信息。

(3)通过按键“4”办理订票业务,依次输入航班号,订票数量,客户,证件号后,结果输出客户的座位号,订票成功。

(4)通过按键“2”浏览已定票客户信息,输入航班号后,结果显示客户信息。

(5)通过按键“5”办理退票业务,输入航班号,客户名后,结果退票成功。

(6)通过按键“6”查看剩余票数并排序,结果正确。

(7)通过按键“0”退出系统,结果正确。

2、运行与测试期间遇到的问题及其解决办法。

(1)因本人能力有限,在编写的时候只使用了相对较为简单的基础语言,代替了相对较为复杂的语言,降低了运行效率。

(2)程序在起初设计的时候,经常出现溢出错误,而且不只一处。

为了修正这些溢出错误,耗费了大量的时间,修正解释之后再看源程序,才发现原来只是因为开始的函数定义的数据类型出现了问题,对函数的定义不清楚,字符的不正确定义造成了后期大量的纠错工作,(3)由于忘记了一些c语言的规使得在调试过程中一些错误没有发现。

例如,调用函数时,数组只需要传递数组名即可;字符‘0’和整形的0是不同的文明不可以直接对其画等号。

(4)测试用例具有一定的广泛性。

运行程序时输入了多种不同字符信息,经过多次修改结果达到了预期效果。

说明程序具有一定的可靠性和稳定性。

七、设计后的思考:经过这次课程设计,我对调试掌握的更加熟练了,改变了过去只调试不知道如何对照程序语言修改程序的坏习惯,对调试也有了新的认识,意识到了程序语言的规性以及我们在编程时要有严谨的态度,同时在写程序时如果加一定量的注释,既增加了程序的可读性,也可以使自己在读程序时更容易。

代码:#include <stdio.h>#include <stdlib.h>#include <string.h>#include <conio.h>#define MAXSIZE 5typedef struct wat_ros{ char name[10];int req_amt;struct wat_ros *next;}qnode,*qptr;typedef struct pqueue{ qptr front;qptr rear;}linkqueue;typedef struct ord_ros{ char name[10];int ord_amt;int grade;struct ord_ros *next;}linklist;struct airline{ char ter_name[10];char air_num[10];char plane_num[10];char date[7];int tkt_amt;int tkt_sur;int tkt_pri;int tkt_reb;linklist *order;linkqueue wait;}lineinfo;struct airline *start;struct airline air[MAXSIZE]={{"","1","A1401","星期日",3,1,800,9},{"","2","H1102","星期一",2,5,600,6},{"","3","L1003","星期五",1,3,100,4},{"","4","H1035","星期三",5,4,700,5},{"呼和浩特","5","F1100","星期六",6,3,800,5}};void display(struct airline *info){printf("%8s\t%3s\t%s\t%7s\t%7d\t%10d\t%5d\t%3d\n",info->ter_name,info->air_num,info->plane_num,info->date,info->tkt_amt,info->tkt_sur,info->tkt_pri,info->tkt_reb);}void list(){ struct airline *info;int i=0;info=start;printf("终点站\t\t航班号\t飞机号\t飞行日期\t载客量\t余票量\t票价格\t折扣\n");while(i<MAXSIZE){display(info);info++;i++;}printf("\n\n");}void search(){ struct airline *info,*find();char name[10];int i=0;info=start;printf("请输入终点站名:");scanf("%s",name);while(i<MAXSIZE){if(!strcmp(name,info->ter_name)) break;info++;i++;}if(i>=MAXSIZE)printf("对不起,该航线未找到!\n");else{printf("终点站\t\t航班号\t飞机号\t飞行日期\t载客量\t余票量\t票价格\t折扣\n");display(info);}}struct airline *find(){ struct airline *info;char number[10];int i=0;info=start;printf("请输入航班号:");scanf("%s",number);while(i<MAXSIZE){if(!strcmp(number,info->air_num)) return info;info++;i++;}printf("对不起,该航线末找到!\n");return NULL;void prtlink(){ linklist *p;struct airline *info;info=find();p=info->order;if(p!=NULL){printf("客户订票数额客户证件号\n");while(p){printf("%s\t\t%d\t%d\n",p->name,p->ord_amt,p->grade);p=p->next;}}elseprintf("该航线没有客户信息!!\n");}linklist *insertlink(linklist *head,int amount,char name[],int grade) { linklist *p1,*new1;p1=head;new1=(linklist *)malloc(sizeof(linklist));if(!new1) {printf("\nOut of memory!!\n");return NULL;}strcpy(new1->name,name);new1->ord_amt=amount;new1->grade=grade;new1->next=NULL;if(head==NULL){head=new1;new1->next=NULL;}elsehead=new1;new1->next=p1;return head;}linkqueue appendqueue(linkqueue q,char name[],int amount){ qptr new1;new1=(qptr)malloc(sizeof(qnode));strcpy(new1->name,name);new1->req_amt=amount;new1->next=NULL;if(q.front==NULL)q.front=new1;elseq.rear->next=new1;q.rear=new1;return q;void order(){ struct airline *info;int amount,grade;char name[10];info=start;if(!(info=find())) return;printf("请输入你订票所需要的数量:");scanf("%d",&amount);if(amount>info->tkt_amt){ printf("\n对不起,您输入的票的数量已经超过乘员定额!");return;}if(amount<=info->tkt_sur){int i;printf("请输入您的(订票客户):");scanf("%s",name);printf("请输入%s票的证件号:",name);scanf("%d",&grade);info->order=insertlink(info->order,amount,name,grade);for(i=0;i<amount;i++)printf("%s的座位号是:%d\n",name,info->tkt_amt-info->tkt_sur+i+1); info->tkt_sur-=amount;printf("\n祝您乘坐愉快!\n");}else{ char r;printf("\n已经没有更多的票,您需要排队等候吗?(Y/N)");r=getch();printf("%c",r);if(r=='Y'||r=='y'){ printf("\n请输入您的(排队订票客户):");scanf("%s",name);info->wait=appendqueue(info->wait,name,amount);printf("\n注册成功!\n");}else printf("\n欢迎您下次再次订购!\n");}}void return_tkt(){ struct airline *info;qnode *t,*back,*f,*r;int grade;linklist *p1,*p2,*head;char cusname[10];if(!(info=find())) return;head=info->order;p1=head;printf("请输入你的(退票客户):");scanf("%s",cusname);while(p1!=NULL) {if(!strcmp(cusname,p1->name)) break;p2=p1;p1=p1->next;}if(p1==NULL){ printf("对不起,你没有订过票!\n");return;}else{if(p1==head) head=p1->next;else p2->next=p1->next;info->tkt_sur+=p1->ord_amt;grade=p1->grade;printf("%s成功退票!\n",p1->name);free(p1);}info->order=head;f=(info->wait).front;r=(info->wait).rear;t=f;while(t){if(info->tkt_sur=info->wait.front->req_amt){int i;info->wait.front=t->next;printf("%s订票成功!\n",t->name);for(i=0;i<t->req_amt;i++)printf("%s的座位号是:%d\n",t->name,(info->tkt_sur)-i);info->tkt_sur-=t->req_amt;info->order=insertlink(info->order,t->req_amt,t->name,grade); free(t);break;}back=t;t=t->next;if((info->tkt_sur)>=(t->req_amt)&&t!=NULL){ int i;back->next=t->next;printf("%s订票成功!\n",t->name);for(i=0;i<t->req_amt;i++)printf("<%s>'s seat number is:%d\n",t->name,(info->tkt_sur)-i);info->tkt_sur-=t->req_amt;info->order=insertlink(info->order,t->req_amt,t->name,grade);free(t);break;}if(f==r) break;}}void sort_tkt(){int j;struct airline t,*info,*p,*q;p=info=air;for(p=info;(p+1)->tkt_sur;p++)for(q=p+1;q->tkt_sur;q++){if(p->tkt_sur<q->tkt_sur){t=*p;*p=*q;*q=t;}}printf("终点站\t\t航班号\t飞机号\t飞行日期\t载客量\t余票量\t票价格\t折扣\n"); for(j=0;j<MAXSIZE;j++){display(info);info++;}}int menu_select(){ int c;char s[20];printf("\n *航空客运订票系统*\n");printf("**************************************************************\n");printf(" 1.浏览航线信息 2.浏览已订票客户信息\n");printf(" 3.查询航线 4.办理订票业务\n");printf(" 5.办理退票业务 6.查看剩余票数并排序\n");printf(" 0.退出系统\n");printf("*********************************************************** *********************\n");do{printf("请选择:");scanf("%s",s);c=atoi(s);}while(c<0||c>7);return c;}void main(){start=air;for(;;){switch(menu_select()){case 1:list();break;case 2:prtlink();break;case 3:search();break;case 4:order();break;case 5:return_tkt();break;case 6:sort_tkt();break;case 0:printf("\n欢迎您的使用,再见!\n");exit(0); }printf("\nPress any key to continue!\n");getch();}}电子信息工程学院数据结构课程设计指导教师评分表。

相关文档
最新文档