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

    数据结构课程设计飞机订票系统分解.docx

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

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

    数据结构课程设计飞机订票系统分解.docx

    1、数据结构课程设计 飞机订票系统分解摘 要随着时代的进步社会分工的不断细化,各个行业联系的不断密切,人们出行越来越多,出行的方式也是百花齐放,作为空中重要的交通工具,飞机航空系统也在不断地得到优化,其中重要的一项就是航空飞机订票系统,因此好的订票系统关系着人们的日常出行方便与否,设计并编制出符合人们需要的航空订票系统是一项繁重而艰巨的任务。本文 Microsoft Visual C 6.0 作为程序代码的实现软件,进行飞机订票系统的数据结构课程设计。首先,根据课程设计内容进行需求分析,确定主要的功能模块,。然后进行数据结构、各功能模块算法以及它们之间的调用关系的概要设计,做出各信息模块的数据结构

    2、表,并给出所用的结构体和结点类型。在此基础上,进行各功能模块的详细算法设计,做出各算法的流程图。最后,对系统进行测试,分为合法数据测试和非法数据测试,并对测试结果截图保存。本系统包含录入航班信息、订票、退票、查询航班信息、查询订票信息、修改航班信息和退出系统 7 个基本功能,经测试后健壮性良好。关键词 飞机订票系统;数据结构;C 语言;单链表i目 录1问题背景 .12问题分析 .13需求分析 .23.1用户需求分析 .23.2功能需求分析 .23.3系统需求分析 .34逻辑设计 .34.1数据结构 .34.2各功能模块间函数调用关系 .54.3函数说明 .55详细设计 .75.1录入航班信息

    3、.75.2顾客订票模块 .85.3顾客退票模块 .85.4查询航班模块 .95.5查询订单模块 .95.6修改航班模块 .96程序调试与测试 .116.1合法数据测试结果 .116.2非法数据测试结果 .137结果分析 .157.1输入 .157.2输出 .15总结 .16参考文献 .16ii1 问题背景订票系统是一种新兴的现代商务方式,近几年来得到了迅速发展,显现了巨大的现代商业价值。有理由相信,订票系统将逐渐方便盛会生活,也将成为数字化社会的一种重要体现。它改变了传统的买卖双方面堆满的交流方式,也打破了旧有工作经营模式,它通过网络使航空公司面对整个世界,为用户提供每周 7 天,每天 24

    4、小时的全天候服务。网上订票的规模正在逐年迅速增长,它带来的商机是巨大而深远的。订票系统研究的主攻方向是通过公共计算机通信网络进行网上订票活动,突破传统商务在时间、地域上的限制,成为方便、快捷、安全可靠的新兴电子化商务活动模式。是网上订票活动更安全、可靠、快速、明确和方便。对航空公司来说,航空订票管理系统既能扩大服务范围,扩大公司影响,减少营业费用,又对稳固航空公司的客源有着重要的辅助作用;站在旅客的角度,航空公司提供的这种服务提供了更多的方便,节省了很多时间。建设航空订票管理系统是体现和提高航空公司领导业绩的一条捷径。2 问题分析通过此系统可以实现如下功能:录入:可以录入航班情况(数据可以存储

    5、在一个数据文件中,数据结构、具体数据自定)查询:可以查询某个航线的情况(如,输入航班号,查询起降时间,起飞抵达城市,航班票价,票价折扣,确定航班是否满仓);可以输入起飞抵达城市,查询飞机航班情况;订票:(订票情况可以存在一个数据文件中,结构自己设定)可以订票,如果该航班已经无票,可以提供相关可选择航班;退票: 可退票,退票后修改相关数据文件;客户资料有姓名,证件号,订票数量及航班情况,订单要有编号。修改航班信息:当航班信息改变可以修改航班数据文件13 需求分析3.1 用户需求分析用户使用此程序所要完成的工作主要为:录入和查询所有航线信息、查看已订票客户信息、查询航线、办理订票业务、办理退票业务

    6、。通过此系统可以方便的进行上述工作。每条航线所涉及的信息有:终点站名、航班号、飞行时间、票价、乘员定额、余票量。已订票的客户名单信息包括姓名、订票量、舱位等级(1,2 或 3)。等候替补的客户名单信息包括姓名、所需票量。查询航线功能可以根据旅客提出的终点站名输出航班号、飞行时间、票价、乘员定额、余票量。订票业务功能根据客户提出的要求(航班号、订票数额)查询该航班票额情况,若尚有余票,则为客户办理订票手续,输出座位号;若已满员或余票额少于定票额,则需重新询问客户要求。若需要,可登记排队候补购票。退票业务功能根据客户提供的情况(航班号、姓名)为客户办理退票手续,然后查询该航班是否有人排队候补,首先

    7、询问排在第一的客户,若所退票额能满足他的要求,则为他办理订票手续,否则依次询问其他排队候补的客户。3.2 功能需求分析1. 功能模块说明:(1) 将航班的基本信息录入到系统中。(2) 根据航班号或者根据起飞地点、降落地点查询所需航班信息。(3) 输入姓名和所要订航班的航班号订票。(4) 输入姓名和所订航班的航班号办理退票。(5) 输入航班号,修改该航班的起飞和降落时间以修改航班的起降时间。(6) 退出的同时将信息写入文件。2. 订票系统功能图2订票系统录办办查查航退入理理询询班出航订退航订信系班票票班单息统信业业信信修息务务息息改图 3.1 订票系统结构图3.3 系统需求分析开发环境:PC 机

    8、,Windows 7 系统运行软件:Microsoft Visual C 6.04 逻辑设计4.1 数据结构1 航班的信息:航班的情况存储结构采用单链表,每个元素表示一个航班的情况,包括航班号、起飞时间、降落时间、起飞城市、抵达城市、航班票价、票价折扣、确定航班是否满仓和空座数九个数据项:表 3.1 航班信息的数据结构表数据项数据类型航班号字符串(char)起飞时间字符串 (char)降落时间字符串 (char)起飞城市字符串 (char)抵达城市字符串 (char)航班是否满仓整型 (int)空座数整型 (int)票价浮点数 (float)票价折扣浮点数 (float)typedef str

    9、uct passengernode /定义客户资料结点 char name20; /姓名 char ID_num20; /证件号 char flight_num10; /航班号 int order_num; /订单号 int ticket_num; /订票数量 struct passengernode *next; /指向下一个结点 passengernode; 3 客户链表:每个数据元素包括头指针和尾指针两个数据项: 每个结点包括两个指针域: C 语言描述如下: typedef struct passengerList passengernode *head; passengernode *

    10、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):从存储航班信息的文

    11、件导入航班信息到航班链表中。 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_

    12、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 ticke

    13、t_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_nu

    14、m):按照要退票的顾客的姓名和证件号查找该顾客结点,进行删除操作。 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

    15、(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):按客户姓名和证件号查询订单信息。 void modify_flight(flightnode *&h,passengerList *&PL

    16、ist):修改航班信息,包括添加航班信息,删除航班信息,修改航班起飞抵达时间。 void delete_flight(flightnode *&h,passengerList *&PList):按照某个航班号删除航班结点。 5 详细设计5.1 录入航班信息 在主函数中输入“1”,调用 void add_flight(flightnode *&h)函数,此函数将航班指针*p指向已存在航班链表*h 的头结点,利用 for(;p-next!=NULL;p=p-next)使*p 指向航线链表的最后一个结点,然后让用户输入航班信息,然后调用 void insert_flight(flightnode *

    17、&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)函数,用 malloc 函数申请一个航班结点,并用指针*q 指向,将航班信息赋到新申请的结点中,p-next=q;p=p-next;该操作将该结点插入航班链表中。流程图如下 5.2 顾客订票模块在主函数中输入“2”,调用 int book(flightnode *&h,passengerList *&PList)函数完成

    18、客户的订票。用航班指针*p 指向已存在航班链表*h 的头结点的下一个结点,请客户输入起飞抵达城市,分别存于 start_place 和 end_place 中。调用 int place_check(flightnode *l,char *start_place,char *end_place)函数,如果函数返回“1”则请客户输入要订的航班号,如果输入的航班号不存在,输出提示信息, 如果航班存在则提示客户输入订的票数、客户的姓名和证件号,调用 void insert_passengerList(flightnode *&h,passengerList *&PList,char *name,cha

    19、r *ID_num,char *flight_num,int ticket_num)函数,定义航班指针*p=h-next,使用 for 循环匹配 flight_num和 p-flight_num,找到后,执行 p-left=p-left-ticket_num,修改相应航班的空座数。用malloc 函数申请一个客户结点,并用指针*q 指向,将客户信息和航班号赋到新申请的结点中,PList-rear-next=q;PList-rear=q;该操作将该结点插入客户链表中。 如果该航班已满仓或该航班的空座数不够,输出可供选择的航班,让客户选择,之后调用 void insert_passengerLis

    20、t(flightnode *&h,passengerList *&PList,char *name,char *ID_num,char *flight_num,int ticket_num)函数将客户结点插入客户链表中. 5.3 顾客退票模块 在主函数中输入“3”,调用 void cancel(passengerList *&PList,flightnode *&h)函数完成客户的退票。提示客户输入客户的姓名和证件号以及要退的航班号,此函数再调用 int delete_passenger(passengerList *&PList,flightnode *&h,char *name,char

    21、*ID_num,char *flight_num)函数,用客户结点指针*pr 等于已存在客户链表结点 Plist 的头指针,相当于将*pr 指向客户链表的头结点,用客户结点指针*p 指向 pr 的下一个结点。使用 while 循环寻找匹配姓名、证件号、航班号的客户结点,找到后定义航班指针*f=h-next,使用 for 循环找到匹配航班号的航班结点,执行 f-left=f-left+p-ticket_num,修改退票后相应航班结点的空座数,之后执行 pr-next=p-next;free(p);删除要退票的客户订单信息。如果没有找到匹配的客户结点,输出提示信息.5.4 查询航班模块 在主函数中

    22、输入“4”,调用 void flight_check(flightnode *h)函数选择使用哪一种查询方式进行查询。提示客户输入查询方式,如客户输入“1”,则调用 int flight_num_check(flightnode *l,char *flight_num)函数按航班号对航班进行查询,提示客户输入航班号,存于 flight_num 中;如客户输入“2”,则调用 int place_check(flightnode *l,char *start_place,char *end_place)函数按起飞抵达城市对航班进行查询,提示客户输入起飞抵达城市,分别存于 start_place 和

    23、 end_place 中;如客户输入“3”,则调用 void check_all_flight(flightnode *l)函数浏览全部航班信息。 在 int flight_num_check(flightnode *l,char *flight_num)函数中,定义航班指针*p=h,使用 for 循环匹配 flight_num 和 p-flight_num,找到匹配的航班节点后,输出该航班的所有信息。 在 int place_check(flightnode *l,char *start_place,char *end_place)函数中,定义航班指针*p=h,使用 for 循环寻找匹配 s

    24、tart_place 和 start_place 的结点,找到匹配的航班结点后,输出该航班的所有信息。 在 void check_all_flight(flightnode *l)函数中,定义航班指针*p=h,使用 for 循环输出所有航班信息。 5.5 查询订单模块在主函数中输入“5”,调用 void passenger_check(passengerList *PList)函数选择使用哪一种查询方式进行查询。提示客户输入查询方式,如客户输入“1”,则调用 int ID_name_check(passengerList *PList,char *name,char *ID_num)函数按客户

    25、的姓名和证件号对订单进行查询,提示客户输入姓名和证件号,分别存于 name 和 ID_num 中;如客户输入“2”,则调用 int order_num_check(passengerList *PList,int order_num)函数按订单号对订单进行查询,提示客户输入订单号,存于 order_num 中;如客户输入“3”,则调用 void check_all_passenger(passengerList *PList)函数浏览全部订单信 在 int ID_name_check(passengerList *PList,char *name,char *ID_num)函数中,定义客户指针*p= PList-head-next,使用 for 循环寻找匹配 name 和


    注意事项

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

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




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

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

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


    收起
    展开