飞机订票系统.doc
《飞机订票系统.doc》由会员分享,可在线阅读,更多相关《飞机订票系统.doc(29页珍藏版)》请在三一办公上搜索。
1、目 录目录1摘要21 设计目的32 设计要求33 设计内容43.1 预备知识43.2设计思路43.3 总体设计43.4各模块部分53.4.1录入航班信息模块53.4.2 订票模块63.4.3 退票模块83.4.4 航班信息查询模块93.5设计结果验证9总结与致谢13参考文献14附录15摘 要 随着经济的快速发展以及生活水平的提高,飞机已经成为了人们出行常用的交通工具之一,而作为航空公司,飞机订票系统必不可少,为了适应快速发展的需求,管理大量数据,有效地稳定的管理航空公司,我运用所学知识,编程开发了一套飞机订票系统,此系统虽然简单,却可以完成基本功能。其具体工作流程为:首先我们可以录入航班信息,
2、包括班号、飞机号、目的地、订票数、余票数共5项。顾客到达营业网点后向航空公司营业员提供出姓名和航班号,营业员根据以上信息,操作软件,查询该航线的订票情况, 若有余票, 则为客户办理订票手续, 分配给客户一个座位号, 然后将新客户的信息添加, 并修改该航线的订票数和余票数。若无余票, 则输出客满信息。当航班信息改变时可以修改航班信息。进一步可实现如果该航班已经无票,可以提供相关可选择航班信息。可以提供退票业务。本设计采用VC+6.0完成编程。关键词:系统;飞机订票;退票;航班;1 设计目的本次课程设计的飞机订票系统,要求实现如下功能: 1) 录入航线信息:每条航线信息包括航班号、飞机号、目的地、
3、订票数、余票数共5项。假设现在有3条航线, 目的地分别是北京, 上海, 广州, 飞机上可乘坐100人( 即初始订票数为0, 余票数为100)。 2) 订票业务:客户信息包括姓名, 航班号, 座位号(初始为0)。有新客户订票时, 先输入客户的姓名和他提出的航班号, 查询该航线的订票情况, 若有余票, 则为客户办理订票手续, 分配给客户一个座位号, 然后将新客户的信息添加, 并修改该航线的订票数和余票数。若无余票, 则输出客满信息。进一步可实现如果该航班已经无票,可以提供相关可选择航班信息。 3) 退票业务:根据客户提出的航班号, 办理退票,删除该客户的信息, 并修改文件相应航线的订票数和余票数。
4、 4) 修改航班信息:当航班信息改变可以修改。2 设计要求1根据已知设计要求分析飞机订票系统设计功能,确定实现飞机订票系统设计的方法,画出流程图,编写实现程序,并进行调试,完成系统软件设计。2基本教学要求:每人一台计算机,计算机安装VC、visio等软件。3 设计内容3.1 预备知识线性链表的定义:航班的信息:航班的情况存储结构采用单链表,每个元素表示一个航班的情况,包括航班号、飞机号、目的地、订票数、余票数五个数据项:航班号飞机号目的地订票数余票数字符串字符串字符串整数(int)整数(int)单链表如下: 每个结点包括数据域和指针域:数据域指针域3.2设计思路本系统设计主要采用线性链表的定义
5、、插入、删除等基本操作。这是数据结构里学到的内容。当然还需要编制初始化、建立数据文件、数据文件保存、增加航班信息、订票、退票业务等内容。包括录入信息模块,订票模块,退票模块,查询航班,修改航班模块等。3.3 总体设计 本系统为完成设计要求的功能必须包括录入,订票,退票,修改航班信息业务。其总设计流程图如下所示。图1 总设计流程图3.4各模块部分 3.4.1录入航班信息模块该步骤在实际生活中主要内容由航空公司完成,录入航班信息,然后保存,以供顾客订票,退票,查询使用。录入的信息包括每条航线信息包括航班号、飞机号、目的地、订票数、余票数共5项。假设现在有3条航线, 目的地分别是北京, 上海, 广州
6、, 飞机上可乘坐100人( 即初始订票数为0, 余票数为100)。图2 录入航班信息具体定义程序:typedef struct flightnodechar flight_num10; /航班号char start_num10; /飞机号char aim_place10; /目的地char dingpiao20;/订票数char yupiao20; /余票数struct flightnode *next;/指向下一个结点flightnode;/航班结点录入航班信息即用到了线性链表的插入,链表的插入:void add_flight(flightnode *&h)调用void insert_fli
7、ght(flightnode *&h,char* flight_num,char* start_num, char* aim_place, char* dingpiao, char* yupiao)函数,将新航班结点插入航班链表中。3.4.2 订票模块在这个函数中首先调用了search函数查找需要订票的航班。运用if语句实现订票时的多种情况:订票数输入不正确、飞机票数不足等情况。订票成功时运用si.count=si.count-n;将已被订的机票数减去,以显示新的即时航班信息图3 订票模块(1)客户的资料:为了便于插入、删除和修改,其采用单链表存储结构,每个数据元素包括姓名、航班号和座位号三个
8、个数据项:姓名航班号座位号字符串字符串整数(int)每个结点包括数据域和指针域:数据域指针域C语言描述如下:typedef struct passengernode/定义客户资料结点 char name20; /姓名char flight_num10;/航班号 int id_place; /座位号 struct passengernode *next;/指向下一个结点passengernode; (2)客户链表:每个数据元素包括头指针和尾指针两个数据项:每个结点包括两个指针域:头指针域尾指针域C语言描述如下:typedef struct passengerList passengernode
9、*head; passengernode *rear;passengerList; (3)链表的插入int book(flightnode *&h,passengerList *&PList)函数调用int insert_passenger(passengernode *&h,char *name,char *ID_num,char *flight_num, int id_place)函数,将新客户结点插入客户链表中。3.4.3 退票模块与订票函数相类似,只做稍稍修改就行退票成功是用si.count=si.count+n; 将航班的剩余票数加上去以显示即时航班信息。图4 退票模块线性链表的删除
10、:void delete_flight(flightnode *&h,passengerList *&PList)/目的要按照某个航班号删除航班结点int delete_passenger(passengerList *&PList,flightnode *&h,char *name,char *ID_num)/目的是按照要退票的顾客的姓名查找该顾客结点,进行删除操作3.4.4 航班信息查询模块即查询所有航班信息3.5设计结果验证总结与致谢经过此次的课程设计,可以很明确的了解到自己哪些知识点掌握的比较好,哪些知识点运用的还不够熟练。通过此次课程设计也学会综合运用理论知识来分析和解决实际问题的能
11、力、养成严谨的科学态度和良好的程序设计习惯,实现由知识向智能的初步转化;学会遵循软件开发过程的基本规范,运用结构化程序设计的方法,按照课程设计的题目要求,并能够完成设计、编写、调试和测试应用程序及编写文档的任务。 短暂的课程设计就要结束了,在此,感谢所有在学习和生活中给予我关心和帮助的人们。首先我要感谢杨红娟、张君捧两位位老师,本次课程设计设计的选题、课题调研与撰写工作实在和老师的指导下完成的。和老师渊博的知识、严谨的治学态度、一丝不苟的工作作风、和不厌其烦的精神对我影响至深,使我受益终生,在此我向和老师表示崇高的敬意和衷心的感谢。其次,在我的课程设计期间,同课题的同学都给予了我热情的帮助和无
12、私的指导,在此向这些同学们表示衷心的感谢。最后,向所有曾给予我关心和帮助的老师和同学们再次致以最衷心的感谢,向参加报告评审、答辩的老师表示衷心的感谢和崇高的敬意。参考文献1 数据结构及应用算法教程,严蔚敏、陈文博,清华大学出版社,20112 数据结构与程序设计(影印版),(美)Robert L.Kruse,Alexander J.Ryba,高等教育出版社,20013数据结构与算法分析,(美)Mark Allen Weiss,机械工业出版社,20044数据结构算法实现及解析,高一凡,西安电子科技大学,20085计算机软件技术基础(第二版),徐士良、葛兵,清华大学出版社,20076计算机软件技术基
13、础(第三版),沈被娜、刘祖照、姚晓冬,清华大学出版社,20077软件开发技术基础(第2版),赵应良,机械工业出版社,20048(美) H.M.Deitel, P.J.Deitel 著,薛万鹏等译, C 程序设计教程,北京:机械工业出版社,20009C语言程序设计,谭浩强主编,清华大学出版社,201010 Brian W. Kernighan Dennis M. Ritchie, C PROGRAMMING LANGUAGE, 清华大学影印版 ,2001 年 6 月第 10 次印刷附录#include #include #include #include typedef struct fligh
14、tnodechar flight_num10; /航班号char start_num10; /飞机号char aim_place10; /目的地char dingpiao20;/订票数char yupiao20; /余票数struct flightnode *next;/指向下一个结点flightnode;/航班结点typedef struct passengernodechar name20; /姓名char ID_num20; /证件号char flight_num10;/航班号int order_num; /订单号int ticket_num; /订票数量struct passenger
15、node *next;/指向下一个结点passengernode;/客户结点typedef struct passengerListpassengernode *head;passengernode *rear;passengerList;void init_flight(flightnode *&h)/目的是要建立一个以h为头结点的空链表,录入航班信息和增加航班后将航班结点插入该链表h=(flightnode *)malloc(sizeof(flightnode);/申请头结点的空间if(h=NULL) exit(0);h-next=NULL;/将头结点h的指针域置为空void init_p
16、assengerList(passengerList *&pList)pList=(passengerList *)malloc(sizeof(passengerList);pList-head=(passengernode *)malloc(sizeof(passengernode);/创建头结点pList-rear=pList-head;pList-rear-order_num=0;/订单号从0开始计数pList-head-next=NULL;void save_passenger(passengerList *PList)FILE* fp = fopen(passenger.dat,wb
17、);if(fp=NULL)return;passengernode *temp=PList-head-next;while(temp!=NULL)fwrite(temp,sizeof(passengernode),1,fp);temp = temp-next;fclose(fp);void load_passenger(passengerList *PList)FILE* fp = fopen(passenger.dat,rb);if(fp=NULL)return;passengernode *q;int n;while(!feof(fp)q=(passengernode *)malloc(s
18、izeof(passengernode);n =fread(q,sizeof(passengernode),1,fp);if(n!=1)break;PList-rear-next=q;PList-rear=q;PList-rear-next=NULL;fclose(fp);void save_flight(flightnode *h)FILE* fp = fopen(flightList.dat,wb);if(fp=NULL)return;flightnode *temp=h-next;while(temp!=NULL)fwrite(temp,sizeof(flightnode),1,fp);
19、temp = temp-next;fclose(fp);void load_flight(flightnode *&h)flightnode *pt=h;FILE* fp = fopen(flightList.dat,rb);if(fp=NULL)return;flightnode *q;int n;while(!feof(fp)q=(flightnode *)malloc(sizeof(flightnode);n=fread(q,sizeof(flightnode),1,fp);if(n!=1)break;pt-next=q;pt=q;pt-next=NULL;fclose(fp);int
20、find_same_flight(flightnode *h,char *flight_num)flightnode *t=h-next,*p=h-next;int mark=0;printf(%-8s%-12s%-12s%-10s%-10sn,航班号,飞机号,目的地,订票数,余票数);while(t!=NULL & strcmp(t-flight_num,flight_num)!=0) t=t-next;while(p!=NULL)if(strcmp(t-start_place,p-start_place)=0)&(strcmp(t-end_place,p-end_place)= 0)&(s
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 飞机 订票 系统
链接地址:https://www.31ppt.com/p-2931617.html