ImageVerifierCode 换一换
格式:DOCX , 页数:37 ,大小:261.82KB ,
资源ID:17034046      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-17034046.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(数据结构航空订票系统课程设计报告.docx)为本站会员(b****0)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

数据结构航空订票系统课程设计报告.docx

1、数据结构航空订票系统课程设计报告摘 要飞机在现代的生活中扮演者非常重要的角色。它能够快速的把人们送到自己想要去的地方,既快速,又方便。所以现在坐飞机时很普遍的。但是都到机场去买票浪费时间,因此,航空订票系统应运而生。有了航空订票系统,用户可以在该系统进行飞机票的查询,订票,退票等操作。方便了大家关键词 航空订票系统 、查询、订票、退票摘 要 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、.2 查询航班信息 63.2.1代码功能 63.2.3 功能实现代码 73.3 订票模块 83.3.1 代码功能 83.3.2 功能实现代码 84 测试与运行 145结束语.166 参考文献.177附录.181 需求分析1.1 需求概述航线管理。每条航线所涉及的信息有:终点站名、航班号、飞机号、飞行周日(星期几)、乘员定额、余票量 客户管理。有关订票的客房信息(包括、订票量、舱位等级(1,2和3)以及等替补的客房(包括、所需标量)。 系统实现主要操作操作和功能。系统实现的主要操作规程和功能如下:1查询航线。根据旅客提出的终点站名输出下列信息:航班号、飞机号、飞行日期、余标额。2承办订票业务。根

3、据客户提出的要求(航班号、订票数额)查询该航班票额情况,若有余票,则为客户办理订票手续,输出座位号;若已满或者余票少于订票额,则需要重新询问客户要求;若需要,可等待排队侯补3承办退票业务。根据客户提供的情况(日期、航班),为客户输退票手续,然后查询该航班是否有人排队候补,首先询问排在第一的客户,若所退票额满足该客户的要求,则为其订票手续,否则依次询问其他排队候补的客户。1.2 需求环境本课程设计需要的设备为硬件要求和软件配置要求具体要求如下:硬件要求:一台计算机。软件配置:WINDOWS7/VC+6.0。1.3 功能描述本次课程设计是航空订票系统主要是由查询航班信息,订票还有退票三大主要功能。

4、除此之外,还有系统的界面等等。2 概要设计2.1 程序功能模块由需求分析知,本次课程设计是航空订票系统其主要由三大模块构成,即查询模块(这部分由我负责),订票系统模块和退票系统模块构成。2.2 程序流程图 该程序开始运行后 进如航空订票系统 用户可以进行航班 信息的查询,订票 和退票操作。图2.1为该系统总的流程图2.3 课程设计的思想 由需求分析知道需要实现几个功能定义了两个结构体。这两个结构体分别用来表示顾客信息和航班信息。有结构体可以知道一些基本信息,比如顾客的,定的机票和航班的时间等等信息。使得实验代码的可读性大大增强。3 详细设计3.1 程序初始化3.1.1代码功能这一块还是由我负责

5、。我初始化了五个航班的基本信息。在初始化程序中,主要是航班的基本信息。比如航班号,出发时间和剩下的机票数目等等基本信息。通过运用指针和链表来进行对初始化信息的书写。在初始化时将三个重点的信息分别初始化为: 航班号005 飞机号PZH113 机票数120 天津 航班号004 飞机号PZH121 机票数120 航班号003 飞机号PZH133 机票数120 航班号002 飞机号PZH132 机票数120 航班号001 飞机号PZH122 机票数1203.1.2 功能实现代码void InitLine() /初始化航线信息airline *p,*q; /航线L=(airline *)malloc(s

6、izeof(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=NULL;strcpy(p-end_addr,);strcpy(p-line_num,005);strcpy(p-plant_num,P

7、ZH113);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-next=q-next;q-next=p; p=(airline *)malloc(sizeof(airline);/p-booked=N

8、ULL;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,);strcpy(p-line_num,002);strcpy(p-plant_num,PZH132);p-day=2;p-left=120;p-total

9、=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 查询航班信息3.2.1代码功能 此模块主要由我负责,在此模块我实现了查询航班的功能。当进入查询功能时,通过输入数字用户可以查询航班的基本信息,比如目的地,剩下

10、的机票数目,出发的时间等等基本信息。如果输入的数字在界面中没有显示则会提示用户没有这次航班。在这个模块我使用了个switch语句来实现对查询方式的选择。通过判断输入的数字进入到相对应的查询方式。如果输入的信息有误的话,系统将会提示用户没有这次航班,需要重新输入。3.2.2查询模块流程图 3.2.2查询模块的流程图在该模块用户可以进行查询功能。用户根据提示可以按照航班号、飞机号、飞行日期和航班重点来查询航班的基本信息。这些基本信息包括了飞行航班号、飞机号、剩余票量和处罚日期等等。在该模块用户必须根据提示进行输入,否则系统会提示输入有误,需要重新输入。3.2.3 功能实现代码void search

11、() /航班查询系统 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; case 2: p=search_plant();flag=1;break; case 3: p=search_day();flag=1;break; case 4: p=search_addr(

12、);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(没有该航班n);3.3 订票模块3.3.1 代码功能在此模块可以根据提示可以从航班号,飞行日期和终点站来进行订票。如果订票时余票不足所需要的票的数目时就可以进行排队购票选择。3.3.2 功能实现代码v

13、oid 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; case 2: p=search_addr();flag=1;break; case 3: p=search_day();flag=1;break; default:PR(操

14、作错误,请重新输入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,&cst-level); PR(请输入您的名字); SC(%s,cst-name); if(cst-numleft) cst-next=p-booked;

15、 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; else c=p-wait; for(;c-next;c=c-next); cst-next=c-next; c-next=cst; else PR

16、(没有该航班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(%s,您正在排队定%d票,现有票,是否定n是(y)n否(n)n,q-next-n

17、ame,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); else q=q-next; else q=q-next; p-wait=h-next;3.4退票系统模块3.4.1代码功能在此模块,用户可以根据系统的提示进行退票操作。当进行退票操作时需要进行信息的核对,如果正确,打印出信息,再询问是否退票。3.4.2功能实现代码void refund() /退票系统 int flag;

18、 char a20; airline *p; customer *c,*c1; p=search_line(); c=p-booked; if(!p) PR(没有该航班nn); guide(); return; PR(请输入您的); SC(%s,a); if(!p-booked-name) /进行信息的查找判断是否有用户的信息 PR(对不起,没有找到您的信息nn); guide(); return ; if(!strcmp(a,p-booked-name) /核对完信息后输出要退票乘客的信息 PR(退票信息n/终点站/票数n%s/%s/%dn,p-booked-name,p-end_addr,

19、p-booked-num); PR(确认要退票n是(y)n否(n)n); scanf(%d,&flag); if(flag) p-booked=p-booked-next; p-left=p-left+c-num; free(c); PR(退票成功nn); waited(p); guide(); else for(;c-next;c=c-next) if(!strcmp(a,c-next-name) break; if(!c-next) PR(对不起,没有找到您的信息nn); guide(); return ; else PR(退票信息n/终点站/票数n%s/%s/%dn,c-next-nam

20、e,p-end_addr,c-next-num); PR(确认要退票?n是(y)n否(n)n);/询问是否退票 scanf(%d,&flag); if(flag) c1=c-next; c-next=c-next-next; p-left=p-left+c1-num; free(c1); PR(退票成功nn); waited(p); guide(); 以上三个模块是改程序最主要的功能实现的代码。初次之外还有部分其他显示模块。4 测试与运行由需求分析可知该程序运行后实现功能后的结果。此处是功能界面,用户可以按照提示进行操作进行查询功能时:进行查询模块式会显示出查询方式,按照查询方式可以准确的得到

21、航班的信息进行订票模块时:在此处模块,订票可以根据提示进行购票,可以订多票,输入舱位的等级和订票人名字排队订票系统:如果该航班剩余的票量小于所要购买的数量,则会提示是否进行排队购票。退票系统:在该模块,进行退票操作时,系统会进行信息的核对,如果正确,将会显示客户的信息。然后提示是否退票。5 结束语 此次数据结构课程设计为航空订票系统。在写程序的时候还是遇到了很多的问题。有些功能怎么也实现不了。经过和同学的探讨还有上网查找资料,最后终于克服了这些问题,成功的运行出了程序。通过这次学习,使我对编写程序的兴趣更大了。除此之外,此次课程设计帮我们熟练地运用所学习的知识,还让我们熟练的去融合他们,写出一

22、个全新的程序来。在这次课程设计中要衷心的感老师对我们的帮助,使得我们对所学知识的熟练运用。总而言之,这次的课程设计既有趣又训练了我们对知识的运用。 6参考文献1阮宏一,鲁静数据结构课程设计C/C+描述.电子工业2马巧梅,庞晓琼等.数据结构课程设计案例教程第三版.人民邮电3袁蔚敏.数据结构 清华大学 7 源代码 源代码:#include#include#include#include#define PR printf#define SC scanftypedef struct customer /客户信息 char name20; /客户 int num; /订票量 int level; /舱位

23、等级 customer *next;customer,*Lcustomer;typedef struct airline /航线信息 char end_addr20; /航线终点 char line_num5; /航班号 char plant_num8; /飞机号 int day; /飞行日期 int total; /定员 int left; /剩余票数 customer *booked; /已定客户信息 customer *wait; /排队等候订票信息 airline *next;airline,*Lairline;airline *L; /将航班信息定义为全局变量,减少参数传递Lairl

24、ine search_line() /按航班号查找航班 char a5; airline *p; p=L-next; PR(请输入航班号); SC(%s,a); for(;p;p=p-next) if(!strcmp(a,p-line_num) break; return p;Lairline search_plant() /按飞机号查找航班 char a8; airline *p; p=L-next; PR(请输入飞机号); SC(%s,a); for(;p;p=p-next) if(!strcmp(a,p-plant_num) break; return p;Lairline search

25、_day() /按飞行日期查找航班 int a; airline *p; p=L-next; PR(请输入飞行日期); SC(%d,&a); for(;p;p=p-next) if(a=p-day) break; return p;Lairline search_addr() /按航班终点查找航班 char a20; airline *p; p=L-next; PR(请输入航班终点); SC(%s,a); for(;p;p=p-next) if(!strcmp(a,p-end_addr) break; return p;void guide() /主菜单界面 PR( -航空订票客服系统-n); PR(=n); PR(tt显示所有航线= 1n); PR(tt查询航线信息= 2n); PR(tt订票业务 = 3n); PR(tt退票业务 = 4n); PR(tt退出系统 = 0n); PR(=n); PR(tt清除屏幕信息= 9nn); PR(请按上面指引操作:t);

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2