数据结构课程设计 飞机订票系统分解
航空机票预订系统ER图数据流图状态转换图数据字典

航空机票预订系统ER图数据流图状态转换图数据字典.软件工程课程设计航空机票预订系统项目结构化分析一、机票预定系统的逻辑模型(实体—关系图)机票预定系统的逻辑模型(实体—关系图)如下图所示:4/ 0.二、机票预定系统的数据流图机票预订系统的数据流图包括两部分:旅客订票和旅客取票两部分。
具体如下图所示。
旅客订票流程图:旅客取票图:4/ 1.机票预定系统的状态转换图三、四、机票预定系统的数据字典系统中的数据元素:名字:旅客信息别名:描述:旅客的个人信息,用于对旅客的确认+旅行时间身份证号码+性别+工作单位+定义:旅客信息=姓名旅行目的地+端)位置:输入到旅行社端(client名字:订票旅客清单别名:描述:已订票的旅客的记录定义:订票旅客清单=旅客信息的合集位置:输入到旅行社端(Client端)/ 2.名字:航班机票信息别名:描述:旅客的航班信息,根据旅客的旅行时间和目的地确定定义:航班机票信息=旅客机票时间+旅客机票班次位置:传输到旅行社端(Client端)名字:取票通知别名:描述:旅客领取机票的凭证定义:取票通知=旅客姓名+领票时间位置:输出到打印机名字:售出机票信息别名:描述:旅客的航班机票的信息定义:售出机票信息=旅客的航班机票位置:输出到打印机名字:旅客订票记录别名:描述:已订票的旅客在航空公司的记录定义:旅客订票记录=旅客姓名+航班机票信息位置:输出到航空公司端(Server端)4/ 3。
数据结构课程设计航空订票系统

—航空客运订票系统的设计与实现一、设计目的:设计一个航班订票系统,提高对信息管理、信息查找和排序算法的应用能力。
二、问题的描述:航空客运订票的业务包括查询航线和客票预定的信、客票预定和办理退票等,设计一个程序以使上述任务借助计算机完成。
三、数据结构的设计:;数之间的关系:函数间关系图如下:,【-函数调用图如上,各个函数模块化设计,函数之间的数据传递少均通过函数间相互调用,把函数之间联系起来,这样函数的重用率高,设计代码的效率更高,用很好的实用性,很好的兼容性。
五、界面设计:Main 函数中通过switch 语句对于所有的模块进行整合。
用户通过键盘通过提示输入相关信息。
对航班信息的航线查询,通过城市查询航班,订票业务,退票业务,查询已定客户信息。
六、程序设计:函数流程图:/menu display refund savefind函数refund函数list函数search函数increlist函数order 函数menu函数increqueue函数display函数print函数save函数main函数流程图如上问题:{1.问题1(1)问题描述:输入时字符数组输入不稳定。
(2)解决办法:在反复尝试中还没发现,后来在同学帮助下发现是一些基础问题,对于链表中数组字符的如scanf("%s",&p->name);这样是有问题的.虽然是一个会的人看似很简单的问题,但对于意念中存在看这样问题的人是很严重的。
由此要多多与同学交流,特别是编程的思想理念,很是重要。
对于个人存在的基本被错误要通过多编程序发现,并及时改正。
细节很决定成败。
2.问题2(1)问题描述:对于界面该觉很不舒服(2)解决办法:通过网络上搜索,查询,发现界面的模块设计好之后程序的界面要精练实用,让用户操作方便,可通过switch很好的实现我的想法。
3.问题3(1)问题描述:对于姓名的查找不知如何实现@(2)解决办法:通过查资料,看c课本发现一很好用的字符比较函数strcmp;通过字符比较是否等于0来实现对姓名的查找。
数据结构课程设计航空订票系统

目录总体设计 (2)概要设计 (2)详细设计 (3)调试分析 (7)测试数据及截图 (7)时间复杂度分析 (11)问题思考 (11)算法的改进设想 (11)课设总结体会 (11)附录 (13)程序说明 (13)源代码 (13)主要参考文献 (26)总体设计通过此系统可以实现如下功能:1).录入:可以录入航班情况(数据存储在一个数据文件中)2).查询:可以查询某个航线的情况(如,输入航班号,查询起降时间,起飞抵达城市,航班票价,票价折扣,确定航班是否满仓);可以输入起飞抵达城市,查询飞机航班情况;3).订票:(订票情况存在一个数据文件中)可以订票,如果该航班已经无票,可以提供相关可选择航班;4).退票:可退票,退票后修改相关数据文件;客户资料有姓名,证件号,订票数量及航班情况,订单要有编号。
5).修改航班信息:当航班信息改变可以修改航班数据文件概要设计每个模块的算法设计说明如下:(1)录入模块:查找单链表的链尾,在链头插入一个“航班信息”的新结点。
(2)浏览模块:顺着单链表输出航班信息。
(3)修改模块:输入密码,确认是否有权限对航班信息进行修改,有则进行修改,否则不能修改。
提供两种修改方式:添加航班和对已有的航班信息进行改动(修改和删除),1添加航线,0对已有的航班信息进行改动(修改和删除)。
对已有的航班信息进行改动(修改和删除):顺着单链表查找,若找到则进行相关操作。
(4)查询模块:提供两种查方式:按航号和起飞抵达城市查询,0代表按航号查询,1代表按起飞抵达城市查询。
顺着单链表查找,如果与航班号(起飞抵达城市)一致,输出相关信息并询问乘客是否要订票,若订进入订票模块;否则,查询不成功。
(5)订票模块:查找乘客要订的航班号,判断此航班是否有空位,有则输入乘客有关信息,订票成功;否则查找这个月此乘客起飞城市和降落城市的有空位航班,供乘客选择,若有则订票,若无则订票不成功并把此乘客的信息录入此航班等候订票队列中,退出订票。
数据结构课程设计之飞机订票系统

数据结构课程设计之飞机订票系统青岛理工大学数据结构课程设计报告题目: 飞机订票系统院(系):学生姓名: 班级: 学号:起迄日期: 指导教师:指导教师评语: 成绩:签名:年月日2010—2011年度第 2 学期一、需求分析1.问题描述:设计一个模拟飞机订票系统,通过此系统可以录入、查询、修改航班情况,完成用户订票和退票功能,并且可以保存客户和航班的资料。
2.基本功能1,录入航班信息。
没个航班的信息包括:航班号,起飞、抵达城市,座位总数,剩余座位数。
数据由使用者输入。
数据存储在txt文件中,采用线性表的链式结构。
2,加载航班和客户信息。
可以自动加载保存在txt文件中的航班和客户的信息。
3,查询航班。
可以通过输入航班号,查询该航班的所有信息。
可以通过输入起飞抵达的城市,查询航班的信息。
4,订票。
客户的信息包括:姓名,证件号,所订票的航班号,座号。
用户输入要订票的航班号,如果该航班未满,则订票成功,并记录客户的信息。
如果该航班已满,则订票失败,输出所有未满的航班信息,供用户选择。
5,退票。
删除退票用户的订票信息,相应的航班的剩余票数增加1。
6,修改航班信息。
用户输入要修改的航班号,和要修改的内容,修改该航班的相应信息。
7,保存操作。
把当前的航班信息,和用户信息分别保存在txt文件中。
8,输出所有客户信息。
按一定的格式输出用户的姓名,证件号码,航班号,座号。
9,输出所有航班信息。
按一定的格式输出所有的航班的航班号,起飞抵达城市,座位总数,剩余座位数。
0,退出系统。
3.输入输出在控制台下,根据提示输入要完成功能的标号,然后在提示下选择性的输入航班号、起飞抵达地、证件号码,或者姓名等。
系统会根据用户的输入输出相应的航班信息或者用户信息。
二、概要设计1.设计思路:对于航班和用户,分别定义不同的数据结构,并且采用线性表的链式结构进行存储。
然后根据要完成的功能,分模块用函数实现。
所用到的算法主要有:链表的创建,增加,遍历,插入,删除。
数据结构课程设计报告格式及要求(航空购票系统)

数据结构课程设计报告题目航空客运订票系统专业班级学号姓名指导教师成绩一、设计任务航空客运订票的业务包括查询(航线和客票预订的)信息、客票预订和办理退票等。
基本要求有:(1)系统必须存储的数据信息i.航班信息:飞机抵达城市、航班号、飞机号、起降时间、航班票价、票价折扣、总位置和剩余位置、已订票的客户名单。
ii.客户信息:客户姓名、证件号、座位号。
(2)系统能实现的功能i.承办订票业务:根据客户提出的要求(飞机低达城市、起降时间、订票数量)查询该航班信息(包括票价、折扣和剩余位置),若满足要求,则为客户办理订票手续,输出座位号。
ii.承办退票业务:根据客户提供的情况(航班号、订票数量),为客户办理退票手续。
(3)查询功能i.查询航线信息:根据飞机降落地点,输出下列信息:航班号、飞机号、起降时间、航班票价、票价折扣和剩余位置。
ii.查询客户预订信息:根据客户证件号,输出下列信息:航班号、飞机号和座位号。
提供的参考程序已经基本实现以上功能,但有很多不足之处,要求进行程序改进和完善。
具体任务有:(1)分析参考程序实现了哪些功能?指出存在的缺陷。
(2)从以下几方面完善程序:i.功能上的完善ii.程序结构上的完善iii.程序控制上的完善二、设计要点1、改变了订票系统主界面格式及背景颜色;2、增加了清屏功能,避免语句过多的结果;3、实现了订票与否;4、实现了只能输入正确航班;5、实现了选择性别只能选择男女;6、订票成功余票减少三、算法实现#include<stdio.h>#include <stdlib.h>#include<malloc.h>#include<string.h>#define OK 1#define ERROR 0typedef struct airline{ /* 飞机航班的结构定义*/ char air_num[8]; //航班号char plane_num[8];//飞机号char end_place[20];//抵达城市int total; //总位置int left; //剩余位置struct airline *next;}airline;/*顾客信息的结构定义*/typedef struct customer{char name[8]; //姓名char sex[8]; //性别char id[20]; //身份证char air_num[8]; //航班号int seat_num; //座位号struct customer *next; //指向下一个旅客}customer;/*创建航班链表*/airline *start_air(){airline *a;a=(airline*) malloc(sizeof(airline));if(a==NULL) printf("空间不足");return a;}/*创建顾客链表*/customer *start_cus(){customer *c;c=(customer*)malloc(sizeof(customer));if(c==NULL) printf("空间不足");return c;}/* 修改航班的空余座位信息*/airline *modefy_airline(airline *l,char *air_num){airline *p;p=l->next;for(;p!=NULL;p=p->next){if(strcmp(air_num,p->air_num)==0){p->left++;return l;}printf("NO the airline!");return 0;}}/* 增加航班信息*/int insert_air(airline **p,char *air_num,char *plane_num,char *end_place,int total,int left) {airline *q;q=(airline*)malloc(sizeof(airline));strcpy(q->air_num,air_num);strcpy(q->plane_num,plane_num);strcpy(q->end_place,end_place);q->total=total;q->left=left;q->next=NULL;(*p)->next=q;(*p)=(*p)->next;return OK;}/*增加某航班的顾客信息*/int insert_cus(customer **p,char *name,char *sex,char *id,char *air_num,int seat_num) {customer *q;q=(customer*)malloc(sizeof(customer));strcpy(q->name,name);strcpy(q->sex,sex);strcpy(q->id,id);strcpy(q->air_num,air_num);q->seat_num=seat_num;q->next=NULL;(*p)->next=q;(*p)=(*p)->next;return OK;}/*订票操作*/int book(airline *a,char *air_num,customer *c,char *name,char *sex,char *id){airline *p=a;customer *q=c->next;p=a->next;for(;p->next!=NULL;p=p->next){if(strcmp(p->air_num,air_num)==0)break;}while(q->next!=NULL){q=q->next;}{if(p->left>0){printf("您的座位号是%d",(p->total-p->left+1));printf("\n");insert_cus(&q,name,sex,id,air_num,p->total-p->left+1);--p->left;p=p->next;return OK;}else{printf("没您的座啦!");return 0;}}}/*取消订票信息操作*/int del_cus(customer *c,airline *l,char *name){customer *p,*pr;char air_num[8];pr=c;p=pr->next;while(p!=NULL){if(strcmp(p->name,name)==0||strcmp(p->air_num,air_num)==0){strcpy(air_num,p->air_num);l=modefy_airline(l,air_num);pr->next=p->next;p=pr->next;printf("取消订票成功!\n");return OK;}pr=pr->next;p=pr->next;}printf("没有这个人儿啊\n");return ERROR;}/*查找航班信息操作*/int search_air(airline *head){airline *p=head->next;printf("air_num plane_num end_place total left\n");for(;p!=NULL;p=p->next){printf("%s %-10s %-8s %-8d%-8d\n", p->air_num, p->plane_num,p->end_place,p->total,p->left);}return OK;}/*查找顾客信息操作*/int search_cus(customer *head){struct customer *q=head->next;printf(" name sex id air_num seat_num\n");for(;q!=NULL;q=q->next){printf("%-8s%-8s%-8s%-12s%-d\n",q->name,q->sex,q->id,q->air_num,q->seat_num);}return OK;}/*预先设置航班信息*/int creat_air(airline **l){airline *p=*l;int i=0;char *air_num[3]={"007af","008af","009af"};char *plane_num[3]={"航班1","航班2","航班3"};char *end_place[3]={"美国","德国","法国"};int total[3]={100,100,100};int left[3]={52,54,76};for(i=0;i<3;i++)insert_air(&p,air_num[i], plane_num[i], end_place[i],total[i], left[i]);return OK;}/*预先设置已订票的顾客信息*/int creat_cus(customer **l){customer *p=*l;int i=0;char *name[3]={"张三","李四","王五"};char *sex[8]={"nan","nan","nan"};char *id[20]={"123456","654321","741852"};char *air_num[3]={"007af","008af","009af"};int seat_num[3]={2,5,7};for(i=0;i<3;i++)insert_cus(&p,name[i],sex[i],id[i],air_num[i],seat_num[i]);return OK;}void main(){system("color 8E");int t=1;customer *cus=start_cus();airline *air=start_air();char name[8],air_num[8],ch,m;char sex[8],id[20];creat_air(&air);creat_cus(&cus);search_air(air);while(t==1){printf("\n\n\n");printf("*********************************\n");printf(" * 欢迎来订票哦,亲!*\n");printf(" * 订票----------1 *\n");printf(" * 退票----------2 *\n");printf(" * 查询----------3 *\n");printf(" * 退出----------4 *\n");printf("*********************************\n");scanf("%s",&ch);if(ch=='1'){system("cls");printf("亲,想乘坐哪辆航班嘞:");scanf("%s",air_num);if(strcmp(air_num,"007af")==0||strcmp(air_num,"008af")==0||strcmp(air_num,"009af")==0){printf("亲叫啥嘞:");scanf("%s",name);y1: printf("您的性别(nan or nv):");scanf("%s",sex);if(strcmp(sex,"nan")==0||strcmp(sex,"nv")==0){printf("您的id:");scanf("%s",id);}else {goto y1;}printf("*确认请输入Y否则输入N:");scanf("%s",&m);if(m=='Y'||m=='y'){printf("订票成功!");book(air,air_num,cus,name,sex,id);}else if(m=='n'||m=='N')printf("取消航班成功!\n");else{printf("您的输入有误\n");}} elseprintf("对不起,没有你要找的航班:\n\n");system("pause");}elseif(ch=='2'){system("cls");printf("您不想座哪个航班号啦:");scanf("%s",air);printf("您的姓名是啥来着:");scanf("%s",name);del_cus(cus,air,name);}elseif(ch=='3'){system("cls");search_air(air);printf("\n");search_cus(cus);}elseif(ch=='4'){t=0;}}}四、运行结果分析1.订票系统主界面2、订票成功操作3、订票航班输入错误操作4、选择男女操作5、选择订票是与否操作6、订票成功余票减少五、设计总结这次课程设计使用了C语言来编写程序,使我们的基础知识和数据结构的链表等知识得到了巩固,使我们在实践中得到了锻炼。
数据结构课程设计飞机订票系统

课程设计(论文)课程设计(论文)题目:飞机订票系统院(系):专业班级:姓名:学号:指导教师:2012年9 月18日课程设计(论文)任务书专业班级:学生姓名:指导教师(签名):一、课程设计(论文)题目飞机订票系统:设计航班信息,订票信息。
二、本次课程设计(论文)应达到的目的数据结构是实践性很强的课程。
课程设计是加强学生实践能力的一个强有力手段。
课程设计要求学生在完成程序设计的同时能够写出比较规范的设计报告。
严格实施课程设计这一环节,对于学生基本程序设计素养的培养和软件工作者工作作风的训练,将起到显著的促进作用。
本题目要达到目的:熟练掌握线性表的基本操作在两种存储结构上的实现。
三、本次课程设计(论文)任务的主要内容和要求(包括原始数据、技术参数、设计要求等)输入数据:航班号;起降时间;抵达城市;票价;票价折扣;1. 录入航班情况(数据结构、具体数据自定);2. 输入航班号,查询某个航线的情况;3. 输入起飞抵达城市,查询飞机航班情况;4. 客户姓名,证件号,订票数量,航班情况,订单编号(证件号唯一);5. 订票:如果该航班已经无票,可以提供相关可选择航班(结构自己设定);6. 退票:退票后修改相关数据文件;7. 修改航班信息:当航班信息改变可以修改航班数据文件。
四、应收集的资料及主要参考文献:1.数据结构与算法分析(C++版)(第二版)影印版 2005.72.数据结构与算法,科学出版社,2005.08;赵文静等编著3.数据结构-C++语言描述,西安交通大学出版社,1999.01,赵文静编著4.严蔚敏等著,《数据结构》,清华大学出版社,20035.冯博琴等编著,《软件技术基础》(修改版),西安交通大学出版社,1997五、审核批准意见教研室主任(签字)摘要随着全球经济和信息的发展,人们选择乘坐飞机外出的需求日益增加。
随着航空客运业务越来越发达,加上网络日益普及,所以良好的飞机场订票系统不仅方便人们订购飞机票,而且减缓了购票点的压力,具有一定的社会效益。
(完整word版)数据结构课程设计 航空客运订票系统分解

《数据结构课程设计》报告设计题目航空客运订票系统专业班级学号姓名电话完成日期2017.04.13目录1. 问题描述 (2)2. 系统设计 (2)3. 数据结构与算法描述 (4)4. 测试结果与分析 (6)5. 总结 (10)6. 参考文献 (10)附录程序源代码 (10)课程设计题目1. 问题描述基于人们对航空客运使用需求的日益提高,为方便乘客提前买票及优化飞机航空订票服务,需要开发一个飞机订票系统,此程序是为实现航班情况的查询,订票,退票以及客户信息浏览与票务信息浏览等基本功能。
2. 系统设计2.1 设计目标(1)可以浏览航线信息;包括终点站名、航班号、飞机号、飞行日期、乘员定额和余票量;(2)可以浏览已订票客户信息;包括客户姓名、订票数额和舱位等级;(3)可以查询航线;包括终点站名、航班号、飞机号、飞行日期、乘员定额和余票量;(4)可以办理订票业务;需提供航班号、所需票数、客户姓名和舱位等级,生成客户座位号;(5)可以办理退票业务;提供航班号和客户姓名,即可退票;(6)可以查看剩余票数;(7)要求:根据以上功能说明,设计航班信息,订票信息的存储结构,设计程序完成功能。
2.2 设计思想(1)运行环境(软硬件环境):DEV-C++;(2)输入的形式和输入值的范围:由航空公司输入航线情况并以单链表的形式存储在内存里面;(3)输出的形式描述:通过客户的输入,输出相应内容;(4)功能描述:用户可通过本系统实现对航班的查询、订票和退票功能。
2.3 系统模块划分2.3.1主函数输出菜单界面。
输入指令,显示,敲击回车开始工作。
2.3.2浏览航线信息编写void list()函数实现打印全部航线信息的功能,调用void display()函数实现打印struct airline链表中存储的航线的基本信息的功能。
2.3.2浏览已订票客户信息编写void prtlink()函数实现打印订票乘员名单域的客户名单信息的功能,调用find()函数查询并以指针形式返回。
(完整版)数据结构课程设计-航空客运订票系统

嘉应学院计算机学院实验报告课程名称:数据结构课程设计开课学期:2017-2018学年第2学期班级:1503指导老师:***实验题目:航空客运订票系统学号:姓名:上机时间:1.需求分析(1)航空管理。
每条航班所涉及的信息有:终点站名、航班号、飞机型号、飞行周日(星期几)、乘员定额、余票量。
(2)客户管理。
有关订票的客户信息(包括姓名、订票量、航位等级(1,2和3))以及等候替补的客户名单(包括姓名、所需票量)。
(3)系统实现的主要操作和功能。
系统实现的主要操作和功能如下:①查询航班。
根据旅客提出的终点站名输入下列信息:航班号、飞机型号、飞机日期、余票额。
②承办订票业务。
根据客户提出的要求(航班号、订票数额)查询该航班票额情况,若有余票,则为客户办理订票手续,输出座位号;若已满或者余票少于订票额,则需要重新询问客户要求;若需要,可等待排队后补。
③承办退票业务。
根据客户提供的情况(日期、航班),为客户办理退票手续,然后查询该航班是否有人排队候补,首先查询排在第一的客户,若所退票额能满足该客户的要求,则为其办理订票手续,否则询问其他排队候补的客户。
2.概要设计1)本系统设计了一个含有多个菜单项的主控菜单,系统主控菜单运行界面2)存储结构设计本系统主要采用链表结构类型存储航班信息和订票的乘客信息。
航班信息链表结点由10个分量构成,乘客信息链表由5个分量构成。
3)系统功能设计本系统分为以下5个功能模块。
(1)航班管理。
航班管理子模块可完成添加新的航班,按终点站点名查询航班,浏览所有航班。
(2)订票办理。
在添加了航班的基础上可办理订票业务。
乘客根据所需航班输入终点站名和订票量订票。
如果订票量超过余票量,则会提示是否成为候补乘客;如果订票成功,则会要求输入订票乘客的姓名及所订票的舱位等级。
(3)退票办理。
已办理订票业务的乘客可根据所订票的航班和乘客姓名办理退票业务。
、(4)乘客管理。
可以查看已经订票的乘客信息和候补乘客的信息。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
摘要随着时代的进步社会分工的不断细化,各个行业联系的不断密切,人们出行越来越多,出行的方式也是百花齐放,作为空中重要的交通工具,飞机航空系统也在不断地得到优化,其中重要的一项就是航空飞机订票系统,因此好的订票系统关系着人们的日常出行方便与否,设计并编制出符合人们需要的航空订票系统是一项繁重而艰巨的任务。
本文Microsoft Visual C 6.0作为程序代码的实现软件,进行飞机订票系统的数据结构课程设计。
首先,根据课程设计内容进行需求分析,确定主要的功能模块,。
然后进行数据结构、各功能模块算法以及它们之间的调用关系的概要设计,做出各信息模块的数据结构表,并给出所用的结构体和结点类型。
在此基础上,进行各功能模块的详细算法设计,做出各算法的流程图。
最后,对系统进行测试,分为合法数据测试和非法数据测试,并对测试结果截图保存。
本系统包含录入航班信息、订票、退票、查询航班信息、查询订票信息、修改航班信息和退出系统7个基本功能,经测试后健壮性良好。
关键词飞机订票系统;数据结构;C语言;单链表i目录1 问题背景 (1)2 问题分析 (1)3 需求分析 (2)3.1 用户需求分析 (2)3.2 功能需求分析 (2)3.3 系统需求分析 (3)4 逻辑设计 (3)4.1 数据结构 (3)4.2 各功能模块间函数调用关系 (5)4.3 函数说明 (5)5 详细设计 (7)5.1 录入航班信息 (7)5.2 顾客订票模块 (8)5.3 顾客退票模块 (8)5.4 查询航班模块 (9)5.5 查询订单模块 (9)5.6 修改航班模块 (9)6 程序调试与测试 (11)6.1 合法数据测试结果 (11)6.2 非法数据测试结果 (13)7 结果分析 (15)7.1 输入 (15)7.2 输出 (15)总结 (16)参考文献 (16)ii1问题背景订票系统是一种新兴的现代商务方式,近几年来得到了迅速发展,显现了巨大的现代商业价值。
有理由相信,订票系统将逐渐方便盛会生活,也将成为数字化社会的一种重要体现。
它改变了传统的买卖双方面堆满的交流方式,也打破了旧有工作经营模式,它通过网络使航空公司面对整个世界,为用户提供每周7天,每天24小时的全天候服务。
网上订票的规模正在逐年迅速增长,它带来的商机是巨大而深远的。
订票系统研究的主攻方向是通过公共计算机通信网络进行网上订票活动,突破传统商务在时间、地域上的限制,成为方便、快捷、安全可靠的新兴电子化商务活动模式。
是网上订票活动更安全、可靠、快速、明确和方便。
对航空公司来说,航空订票管理系统既能扩大服务范围,扩大公司影响,减少营业费用,又对稳固航空公司的客源有着重要的辅助作用;站在旅客的角度,航空公司提供的这种服务提供了更多的方便,节省了很多时间。
建设航空订票管理系统是体现和提高航空公司领导业绩的一条捷径。
2问题分析通过此系统可以实现如下功能:录入:可以录入航班情况(数据可以存储在一个数据文件中,数据结构、具体数据自定)查询:可以查询某个航线的情况(如,输入航班号,查询起降时间,起飞抵达城市,航班票价,票价折扣,确定航班是否满仓);可以输入起飞抵达城市,查询飞机航班情况;订票:(订票情况可以存在一个数据文件中,结构自己设定)可以订票,如果该航班已经无票,可以提供相关可选择航班;退票:可退票,退票后修改相关数据文件;客户资料有姓名,证件号,订票数量及航班情况,订单要有编号。
修改航班信息:当航班信息改变可以修改航班数据文件13需求分析3.1 用户需求分析用户使用此程序所要完成的工作主要为:录入和查询所有航线信息、查看已订票客户信息、查询航线、办理订票业务、办理退票业务。
通过此系统可以方便的进行上述工作。
每条航线所涉及的信息有:终点站名、航班号、飞行时间、票价、乘员定额、余票量。
已订票的客户名单信息包括姓名、订票量、舱位等级(1,2或3)。
等候替补的客户名单信息包括姓名、所需票量。
查询航线功能可以根据旅客提出的终点站名输出航班号、飞行时间、票价、乘员定额、余票量。
订票业务功能根据客户提出的要求(航班号、订票数额)查询该航班票额情况,若尚有余票,则为客户办理订票手续,输出座位号;若已满员或余票额少于定票额,则需重新询问客户要求。
若需要,可登记排队候补购票。
退票业务功能根据客户提供的情况(航班号、姓名)为客户办理退票手续,然后查询该航班是否有人排队候补,首先询问排在第一的客户,若所退票额能满足他的要求,则为他办理订票手续,否则依次询问其他排队候补的客户。
3.2功能需求分析1.功能模块说明:(1) 将航班的基本信息录入到系统中。
(2) 根据航班号或者根据起飞地点、降落地点查询所需航班信息。
(3) 输入姓名和所要订航班的航班号订票。
(4) 输入姓名和所订航班的航班号办理退票。
(5) 输入航班号,修改该航班的起飞和降落时间以修改航班的起降时间。
(6) 退出的同时将信息写入文件。
2. 订票系统功能图2订票系统录办办查查航退入理理询询班出航订退航订信系班票票班单息统信业业信信修息务务息息改图 3.1订票系统结构图3.3 系统需求分析开发环境:PC机,Windows 7系统运行软件:Microsoft Visual C 6.04逻辑设计4.1 数据结构1航班的信息:航班的情况存储结构采用单链表,每个元素表示一个航班的情况,包括航班号、起飞时间、降落时间、起飞城市、抵达城市、航班票价、票价折扣、确定航班是否满仓和空座数九个数据项:表3.1 航班信息的数据结构表数据项数据类型航班号字符串(char)起飞时间字符串(char)降落时间字符串(char)起飞城市字符串(char)抵达城市字符串(char)航班是否满仓整型(int)空座数整型(int)票价浮点数(float)票价折扣浮点数(float)typedef struct passengernode{ //定义客户资料结点char name[20]; //姓名char ID_num[20]; //证件号char flight_num[10]; //航班号int order_num; //订单号int ticket_num; //订票数量struct passengernode *next; //指向下一个结点}passengernode;3 客户链表:每个数据元素包括头指针和尾指针两个数据项:每个结点包括两个指针域:C 语言描述如下:typedef struct passengerList{passengernode *head;passengernode *rear;}passengerList;4.2各功能模板函数之间的调用关系。
4.3 函数说明void init_flight(flightnode *&h):要建立一个以 h 为头结点的空链表,录入航班信息和增加航班后将航班结点插入该链表。
void init_passengerList(passengerList *&pList):建立一个带有头指针和尾指针的空链表,存储带有顾客信息的结点。
头指针域尾指针域void save_flight(flightnode *h):保存航班信息到指定数据文件中。
void load_flight(flightnode *&h):从存储航班信息的文件导入航班信息到航班链表中。
void save_passenger(passengerList *PList):保存客户信息到指定数据文件中。
void load_passenger(passengerList *&PList):从存储客户信息的文件导入客户信息到客户链表中。
void add_flight(flightnode *&h):录入航班信息后调用 insert_flight 函数增加班。
void insert_flight(flightnode *&h,char* flight_num,char* start_place,char*end_place,char*start_time,char* end_time,int left,float price,float price_discount,int isFull):在录入航班情况或增加新的航班后,将新的航班结点插入到航线链表中。
int book(flightnode *&l,passengerList *&PList):要完成客户订票,将客户结点插入客户链表中,并修改相应的航班信息。
void insert_passengerList(flightnode *&h,passengerList *&PList,char *name,char *ID_num,char *flight_num,int ticket_num):在顾客订票后,将该顾客结点插入到顾客链表中,并修改相应的航班信息。
void find_same_flight(flightnode *l,char *flight_num):在客户订票时,当客户输入的航班号对应的航班已满仓时,提供其他可选航班并输出显示。
void cancel(passengerList *&PList,flightnode *&h):完成客户退票,将客户的订单从客户链表中删除,并修改相应的航班信息。
int delete_passenger(passengerList *&PList,flightnode *&h,char *name,char*ID_num):按照要退票的顾客的姓名和证件号查找该顾客结点,进行删除操作。
void flight_check(flightnode *h):选择使用何种方式对航班信息进行查询。
void check_all_flight(flightnode *l):浏览所有航班信息。
int place_check(flightnode *l,char *start_place,char *end_place):按照起飞抵达城市查询航班信息。
int flight_num_check(flightnode *l,char *flight_num):按照航班号查询航班信息。
void passenger_check(passengerList *PList):选择使用何种方式对订单信息进行查询。
void check_all_passenger(passengerList *PList):浏览所有订单信息。
int order_num_check(passengerList *PList,int order_num):按订单号查询订单信息。
int ID_name_check(passengerList *PList,char *name,char *ID_num):按客户姓名和证件号查询订单信息。