欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOC文档下载
    分享到微信 分享到微博 分享到QQ空间

    数据结构课程设计-航空订票系统文档格式.doc

    • 资源ID:7007067       资源大小:237KB        全文页数:22页
    • 资源格式: DOC        下载积分:12金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要12金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    数据结构课程设计-航空订票系统文档格式.doc

    1、航空客运订票的业务活动包括:查询航线、客票预订和办理退票等。试设计一个航空客运订票系统,以使上述业务可以借助计算机来完成。设计任务:通过此系统可以实现如下功能:录入:可以录入航班情况(数据可以存储在一个数据文件中,数据结构、具体数据自定)查询:可以查询某个航线的情况(如,输入航班号,查询起降时间,起飞抵达城市,航班票价,票价折扣,确定航班是否满仓);可以输入起飞抵达城市,查询飞机航班情况;根据旅客提出的终点站名输出下列信息:航班号、飞机号、星期几飞行,最近一天航班的日期和余票额;订票:(订票情况可以存在一个数据文件中,结构自己设定)根据客户提出的要求(日期、航班号、订票数额)查询该航班票额情况

    2、,若尚有余额,则为客户办理订票手续,输出座位号;若已满员或余票额少于订票额,则需要重新询问客户要求。若需要,可预约登记排队等候。如果该航班已经无票,可以提供相关可选择航班;退票:根据客户提供的情况(日期、航班、退票数额),为客户办理退票手续,然后查询该航班是否有人预约登记,首先询问排在第一的客户,若所退票额能满足他的要求,则为他办理订票手续,否则依次询问其他排队预约的客户退票成功后修改相关数据文件。客户资料有姓名,证件号,订票数量及航班情况,订单要有编号。修改航班信息:当航班信息改变可以修改航班数据文件要求:根据以上功能说明,设计航班信息,订票信息的存储结构,设计程序完成功能。测试数据:由学生

    3、任意指定,但报告上要求写出多批数据测试结果。实现提示:每条航线应包含的信息有:终点站名、航班号、飞机号、飞行日期(星期几)、乘员定额、余票额、已订票的客户名单(包括姓名、订票额、座位号)和预约登记的客户名单(包括日期、姓名、所需票额)。这最后两项显然是一个线性表和一个队列。为查找方便、已订票客户的线性表应按客户姓名有序,并且,为插入和删除方便,应以链表作存储结构。由于预约人数无法预料,队列也应以链表作存储结构。整个系统需汇总各条航线的情况登录在一张线性表上,由于航线基本不变,可采用顺序存储结构,并按航班有序或按终点站名有序。每条航线是这张表上的一个记录,包含上述八个域,其中乘员名单域为指向乘员

    4、名单链表的头指针,预约登记客户名单域为分别指向队头和队尾的指针。选做内容:当客户订票要求不能满足时,系统可向客户提供到达同一目的地的其它航线情况。三、概要设计1设计步骤1)分析问题,给出数学模型,设计相应的数据结构。提示: (1)己订票的客户名单可以用线性表来实现。为查找方便,线性表应按照客户姓名有序,并且为了插入和删除的方便,应以链表作为存储结构。(2)等候替补的客户名单可以用队列来实现。由于预约人数无法预计,所以队列也应以链表作为存储结构。(3)需将输入的航班情况登录到一张线性表上(用顺序存储结构或链表存储结构)。为了查询的方便,可以将航班情况按照航班有序或按照终点站名有序建立线性表。每条

    5、航线是这张线性表的一个记录,包含上述8个域,其中已订票的客户名单域是指向己订票的客户名单链表的头指针,等候替补的客户名单域是指向队头和队尾的指针。2)算法设计在已经选择好数据结构的前提下,为解决问题设计算法。(1)确定所需模块对于稍复杂的程序设计,要充分利用模块化程序设计方法,自顶向下,逐步细化,在整体思路确定的情况下,考虑所需模块数,各模块完成功能以及模块之间的数据联系和调用关系。(2)各子模块功能描述给出主要模块的算法描述,用流程图或伪代码表示。(3)模块之间的调用关系3)源程序清单为了提高工作效率,充分利用上机调试程序的时间,要求学生在上机之前给出源程序清单。4)用测试数据去验证算法及程

    6、序的正确性5)算法分析经过上机调试,源程序运行正确,并且实现算法要求的功能,解决课程设计题目中给出的问题后,分析算法的时间复杂度和空间复杂度。2系统整体结构图(功能模块图) 主菜单menu()1.总航线信息预览display()2.查询单条 航线信息Search()3.办理订票业务Book()4.办理退票业务tuipiao()5.录入航班信息CreatPlane0.退出系统 图 1. 系统整体结构图3功能模块及调用关系说明(1)总航线信息预览:通过调用display()预览已经建立的全部航线的相关信息(航班号、飞机号 、终点站 、飞行日期 、 定额 、余票数 、排队等候人数),预览完返回主菜单

    7、。(2)查询单条航线信息:根据乘客提出的终点站名或航班号调用Search()函数来查询并输出此条航线的相关信息(航班号、飞机号 、终点站 、飞行日期 、 定额 、余票数 、已订票乘客名单、排队等候乘客名单)。 并且查询完后询问乘客是否订票,是就调用订票Book()函数来为乘客进行订票,否就返回主菜单。(3)办理订票业务:客户先输入的终点站名、订票数、姓名信息再来调用订票Book()函数,Book()函数根据客户提供的终点站名查询到该航线信息,若客户订票额末超过余票量,订票成功并登记信息,在订票乘员名单链表中添加乘客的信息; 如果暂时余票数不足是,询问客户是否要排队等侯,如果是,则在排队等候的队

    8、列中增加该乘客的订票信息。(4)办理退票业务:调用tuipiao()查询函数,根据客户提供的航线进行搜索根据客户提供的姓名到订票客户名单域进行查询。退票成功后,重新将航线名单域指向订票单链表的头指针。根据队列中从出的客户信息判断是否满足要求,如果满足,则将该客户的信息插入到乘客信息链表中。(5)录入航班信息:调用CreatPlane()函数,根据输入的航班的相关的信息(航班号、飞机号 、终点站 、飞行日期 、 定额 、余票数),将此航班加入到原来的航班组中。(6)退出系统四、详细设计和源代码1.实现概要设计中定义数据的存储结构(1)已订票乘客信息(单链表)typedef struct Cust

    9、/已订票乘客信息char Name15;/乘客姓名 char number10;/乘客所乘飞机航班号 char end15;/乘客终点站(2)排队等候的乘客信息typedef struct waitNode/排队等候客户信息 char name15;int ticket;/乘客的订票数struct waitNode *next;waitNode,*waitlink;typedef structwaitlink front;waitlink rear;waitQueue;(3)航班信息typedef struct Plane/航班信息char number10;/航班号int planenum;

    10、/飞机号char end15;/终点站char date10;/飞行日期int dinge;/成员定额 int tick;/剩余票数 int k;/排队等候的人数Customer *first;/链接已订票客户waitQueue Q;/链接候补客户PlaneLink;2.查询单条航线信息功能的算法设计(Search( )函数功能实现的源代码)int Search(PlaneLink *p,int N) int i=0,Q; cout=n; coutn 请选择查询方式 (1/2): cinQ;if(Q=1)char end10;coutend; while(iN) if(strcmp(pi.en

    11、d,end)=0) /先查看是否存在到该站点的航班 coutn*您所查询的航班信息如下*n_n cout 航班号 飞机号 终点站 飞行日期 余票数npi.numbersetw(7)pi.planenumsetw(12)pi.endsetw(10)pi.datepi.tickendl;n=n break; i+;else if(Q=2) char num10; coutnum; while(i if(strcmp(pi.number,num)=0) /查看是否存在该航班号的航班n*您所查询的航班信息如下:*n 航班号 终点 飞行日期 余票数n display_s(p, i, N); /调用dis

    12、play_s()函数输出该航班的已订票乘客和排队等候乘客的名单信息if(iN) /如果存在该航班,询问客户是否要预定 该航班的 机票int j; cout 是否需要预定 该航班的票(1/0):j; if(j=1) char name10; int ticket; coutticketname; Book(p,pi.end,ticket, name, N); else cout 很抱歉,没有您查询的航班信息! return 0;3.订票功能的算法设计(Book( )函数功能实现源代码)int Book(PlaneLink *p,char end,int ticket,char name,int

    13、N) int i;for(i=0;i=ticket) /查看 余票数是否 = 订票客户 订票数pi.tick-=ticket;Customer *t=(Customer *)malloc(sizeof(Customer);t-ticket=ticket;strcpy(t-Name,name);number,pi.number);end,pi.end);next=pi.first; pi.first=t; / 此使用的是头插法将订票乘客的信息放入到 链表中 /cout 您订票成功! 您的航班信息如下:_n 航班号 飞机号 终点站 飞行日期 定额nsetw(9)setw(6)pi.dinge=nn

    14、break;else if(pi.dingeticket) /订票数超出航班的定额时,不能订票,也不能无法排队等候了 cout 您预订的票数超过了航班定额,无法为您订票! break; else / 余票数不足时,询问乘客是否排队等候char z; 该航班剩余票数为: 很抱歉,剩余的票数不够! coutz; if(z=Y|z=y) Queue(p,end,ticket , name, N,i); /调用入队列函数,将乘客信息插入排队等候的人后面if(i=N) cout 很抱歉,没有您所需要的航班!return 0;int display_s(PlaneLink *p,int i,int N)

    15、/输出已定票及排队乘客的名单信息if(pi.first!=NULL) /pi.first!=NULL说明已订票链表不为空, 输出 已订票乘客的名单信息*该航班的已订票乘客名单如下:*n_n 姓名 订票量nCustomer *t=pi.first;while(t) coutName ticketnext;N&pi.Q.front!=NULL) /pi.Q.front!=NULL,输出正在排队等候乘客的名单信息 coutname =n 附:入队函数Queue( )的源代码int Queue(PlaneLink *p,char end,int ticket,char name,int N ,int

    16、i) /入队函数,将等候排队的乘客放入原来的队列中system(cls);color 2ewaitlink q=(waitlink)malloc(sizeof(waitNode); /将要的入队的结点,存储将要入队乘客的信息strcpy(q-name,name);q-next=NULL;if(pi.Q.front=NULL) pi.Q.front=pi.Q.rear=q; pi.k+; /pi.k用来记录排队人数elsepi.Q.rear-next=q;pi.Q.rear=q; pi.k+; 已为您登记,请耐心等候!4.退票功能的算法设计(tuipiao( )函数实现的源代码)int tuip

    17、iao(PlaneLink *p,int N) int i; Customer *R,*S;char number10,Name15; 请输入您的航班号与姓名:cinnumberName; if(strcmp(pi.number,number)=0&pi.first!if(strcmp(pi.first-Name,Name)=0)pi.tick=pi.tick+pi.first-ticket;pi.first=pi.first- 您已成功退票!nnelse R=pi.first; S=pi.first-while(S!if(strcmp(S-pi.tick=pi.tick+S-R-next=S-cout S=S


    注意事项

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

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

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

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


    收起
    展开