数据结构航空订票系统课程设计报告.doc
《数据结构航空订票系统课程设计报告.doc》由会员分享,可在线阅读,更多相关《数据结构航空订票系统课程设计报告.doc(30页珍藏版)》请在沃文网上搜索。
1、 航空订票系统课程设计报告摘 要飞机在现代的生活中扮演者非常重要的角色。它能够快速的把人们送到自己想要去的地方,既快速,又方便。所以现在坐飞机时很普遍的。但是都到机场去买票浪费时间,因此,航空订票系统应运而生。有了航空订票系统,用户可以在该系统进行飞机票的查询,订票,退票等操作。 关键词 航空订票系统 、查询、订票、退票I目 录摘 要I1 需求分析21.1 需求概述21.2 需求环境21.3 功能描述22 概要设计32.1 程序功能模块32.2 程序流程图32.3 课程设计的思想33 详细设计43.1 程序初始化43.1.1代码功能43.1.2 功能实现代码43.2 查询航班信息63.2.1代
2、码功能63.2.3 功能实现代码73.3 订票模块83.3.1 代码功能83.3.2 功能实现代码84 测试与运行145结束语.166 参考文献.177附录.1828攀枝花学院学生课程设计报告 需求分析1 需求分析1.1 需求概述航线管理。每条航线所涉及的信息有:终点站名、航班号、飞机号、飞行周日(星期几)、乘员定额、余票量 客户管理。有关订票的客房信息(包括姓名、订票量、舱位等级(1,2和3)以及等替补的客房名单(包括姓名、所需标量)。 系统实现主要操作操作和功能。系统实现的主要操作规程和功能如下: 查询航线。根据旅客提出的终点站名输出下列信息:航班号、飞机号、飞行日期、余标额。 承办订票业
3、务。根据客户提出的要求(航班号、订票数额)查询该航班票额情况,若有余票,则为客户办理订票手续,输出座位号;若已满或者余票少于订票额,则需要重新询问客户要求;若需要,可等待排队侯补 承办退票业务。根据客户提供的情况(日期、航班),为客户输退票手续,然后查询该航班是否有人排队候补,首先询问排在第一的客户,若所退票额满足该客户的要求,则为其订票手续,否则依次询问其他排队候补的客户。1.2 需求环境本课程设计需要的设备为硬件要求和软件配置要求具体要求如下:硬件要求:一台计算机。软件配置:WINDOWS7/VC+6.0。1.3 功能描述本次课程设计是航空订票系统主要是由查询航班信息,订票还有退票三大主要
4、功能。除此之外,还有系统的界面等等。攀枝花学院学生课程设计论文 概要设计2 概要设计2.1 程序功能模块由需求分析知,本次课程设计是航空订票系统其主要由三大模块构成,即查询模块(这部分由我负责),订票系统模块和退票系统模块构成。2.2 程序流程图开始 该程序开始运行后 进如航空订票系统 用户可以进行航班航空订票系统 信息的查询,订票 和退票操作。退票系统模块查询模块订票系统模块使用结束,退出系统图2.1为该系统总的流程图2.3 课程设计的思想 由需求分析知道需要实现几个功能定义了两个结构体。这两个结构体分别用来表示顾客信息和航班信息。有结构体可以知道一些基本信息,比如顾客的姓名,定的机票和航班
5、的时间等等信息。使得实验代码的可读性大大增强。3 详细设计3.1 程序初始化3.1.1代码功能这一块还是由我负责。我初始化了五个航班的基本信息。在初始化程序中,主要是航班的基本信息。比如航班号,出发时间和剩下的机票数目等等基本信息。通过运用指针和链表来进行对初始化信息的书写。在初始化时将三个重点的信息分别初始化为:广州 航班号005 飞机号PZH113 机票数120天津 航班号004 飞机号PZH121 机票数120 北京 航班号003 飞机号PZH133 机票数120上海 航班号002 飞机号PZH132 机票数120成都 航班号001 飞机号PZH122 机票数1203.1.2 功能实现代
6、码void InitLine()/初始化航线信息airline *p,*q; /航线L=(airline *)malloc(sizeof(airline);L-booked=NULL;L-wait=NULL;L-next=NULL;strcpy(L-end_addr,00000000); /终点站strcpy(L-line_num,000); /航班号strcpy(L-plant_num,0000000); /飞机号L-day=L-left=L-total=0;q=L;p=(airline *)malloc(sizeof(airline);/广州p-booked=NULL;p-wait=NUL
7、L;strcpy(p-end_addr,广州);strcpy(p-line_num,005);strcpy(p-plant_num,PZH113);p-day=5;p-left=120;p-total=120;p-next=q-next;q-next=p;p=(airline *)malloc(sizeof(airline);/天津p-booked=NULL;p-wait=NULL;strcpy(p-end_addr,天津);strcpy(p-line_num,004);strcpy(p-plant_num,PZH121);p-day=4;p-left=120;p-total=120;p-ne
8、xt=q-next;q-next=p; p=(airline *)malloc(sizeof(airline);/北京p-booked=NULL;p-wait=NULL;strcpy(p-end_addr,北京);strcpy(p-line_num,003);strcpy(p-plant_num,PZH133);p-day=1;p-left=120;p-total=120;p-next=q-next;q-next=p; p=(airline *)malloc(sizeof(airline);/上海p-booked=NULL;p-wait=NULL;strcpy(p-end_addr,上海);s
9、trcpy(p-line_num,002);strcpy(p-plant_num,PZH132);p-day=2;p-left=120;p-total=120;p-next=q-next;q-next=p; p=(airline *)malloc(sizeof(airline);/成都p-booked=NULL;p-wait=NULL;strcpy(p-end_addr,成都);strcpy(p-line_num,001);strcpy(p-plant_num,PZH122);p-day=3;p-left=120;p-total=120;p-next=q-next;q-next=p; 3.2
10、查询航班信息3.2.1代码功能 此模块主要由我负责,在此模块我实现了查询航班的功能。当进入查询功能时,通过输入数字用户可以查询航班的基本信息,比如目的地,剩下的机票数目,出发的时间等等基本信息。如果输入的数字在界面中没有显示则会提示用户没有这次航班。在这个模块我使用了个switch语句来实现对查询方式的选择。通过判断输入的数字进入到相对应的查询方式。如果输入的信息有误的话,系统将会提示用户没有这次航班,需要重新输入。3.2.2查询模块流程图查询4321航班终点飞行日期飞机号航班号 3.2.2查询模块的流程图在该模块用户可以进行查询功能。用户根据提示可以按照航班号、飞机号、飞行日期和航班重点来查
11、询航班的基本信息。这些基本信息包括了飞行航班号、飞机号、剩余票量和处罚日期等等。在该模块用户必须根据提示进行输入,否则系统会提示输入有误,需要重新输入。3.2.3 功能实现代码void search()/航班查询系统 int i; int flag=0; airline *p; PR(请输入查询航班的方式:n); PR(航班号-1n); PR(飞机号-2n); PR(飞行日期-3n); PR(航班终点-4n); SC(%d,&i); for(;!flag;) switch(i) /switch语句来进行航班的查询方式 case 1: p=search_line();flag=1;break;
12、case 2: p=search_plant();flag=1;break; case 3: p=search_day();flag=1;break; case 4: p=search_addr();flag-=1;break; default:PR(操作错误,请重新输入n);break; if(p) PR(终点站 航班号 飞机号 飞行周日 余票量n);PR(%-20s%10s%10s%8d%8dn,p-end_addr,p-line_num,p-plant_num,p-day,p-left);PR(是否订票(确定请按1));SC(%d,&i);if(i=1)book();else PR(没有
13、该航班n);3.3 订票模块3.3.1 代码功能在此模块可以根据提示可以从航班号,飞行日期和终点站来进行订票。如果订票时余票不足所需要的票的数目时就可以进行排队购票选择。3.3.2 功能实现代码void book()/订票系统int i;int flag=0;airline *p;customer *cst,*c;PR(请输入查询航班的方式:n);PR(航班号-1n);PR(终点站-2n);PR(飞行日期-3n);for(;!flag;)SC(%d,&i);switch(i) /运用一个switch语句进行航班查询case 1: p=search_line();flag=1;break;cas
14、e 2: p=search_addr();flag=1;break;case 3: p=search_day();flag=1;break;default:PR(操作错误,请重新输入n);break;if(p)PR(终点站 航班号 飞机号 飞行周日 余票量n);PR(%-20s%10s%10s%8d%8dn,p-end_addr,p-line_num,p-plant_num,p-day,p-left);cst=(customer *)malloc(sizeof(customer);PR(请输入订票数量:);SC(%d,&cst-num);PR(请输入舱位等级(1/2/3));SC(%d,&cs
15、t-level);PR(请输入您的名字);SC(%s,cst-name);if(cst-numleft)cst-next=p-booked;p-booked=cst;p-left=p-left-cst-num;PR(订票成功,座位号为%d%dn,p-total-p-left-cst-num+1,p-total-p-left);else/当需要的飘得数量大于剩余的票数的时候进行询问是否进行排队购票PR(余票不足,是否排队等候n是(y)n否(n)n);SC(%d,&flag);if(flag)if(!p-wait)cst-next=p-wait;p-wait=cst;elsec=p-wait;fo
16、r(;c-next;c=c-next);cst-next=c-next;c-next=cst; else PR(没有该航班n);guide();排队订票时的排队订票系统:void waited(airline *p)/排队订票系统int flag;customer *q,*q0,*h;if(!p-wait) return;q=(customer *)malloc(sizeof(customer);q-level=0;q-num=123;strcpy(q-name,00000);q-next=p-wait;h=q;for(;p-left0&q-next;)if(q-next-numleft)PR
17、(%s,您正在排队定%d张票,现有票,是否定n是(y)n否(n)n,q-next-name,q-next-num);SC(%d,&flag);if(flag)q0=q-next;q-next=q-next-next;q0-next=p-booked;p-booked=q0;p-left=p-left-q0-num;PR(排队订票成功nn);elseq=q-next;elseq=q-next;p-wait=h-next;3.4退票系统模块3.4.1代码功能在此模块,用户可以根据系统的提示进行退票操作。当进行退票操作时需要进行信息的核对,如果正确,打印出信息,再询问是否退票。3.4.2功能实现代码
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
20 积分
下载 | 加入VIP,下载更划算! |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 航空 订票 系统 课程设计 报告