下载此文档

课程设计-航空客运订票系统.doc


文档分类:办公文档 | 页数:约55页 举报非法文档有奖
1/55
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/55 下载此文档
文档列表 文档介绍
该【课程设计-航空客运订票系统 】是由【夜紫儿】上传分享,文档一共【55】页,该文档可以免费在线阅读,需要了解更多关于【课程设计-航空客运订票系统 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。数据结构课程设计设计题目:航空客运订票系统课程名称数据结构学院计算机专业班级学号姓名联系方式指导教师20年月日航空客运订票系统航空客运订票系统【需求分析】随着社会的发展,科技不断地创新,航空业也不断地发展。随着航空客运业务与乘客量不断地增多,航空客运业务的办理也越来越繁重。航空客运订票业务活动包括查询航线、客票预定和办理退票等。为了使业务办理能够自动化,减轻工作人员劳动强度,提高工作效率,需设计一个航空客运订票系统,以使上述业务可以借助计算机来完成。【设计概要】航空客运订票系统采用单链表的数据结构形式存储各项信息。用一个带头结点的单链表存储航线,每一个单链表的结点(头结点除外)存储每一条航线的信息(如:起点站名、终点站名、航班号、飞机号、飞行周日、乘客定额、剩余票数、该航班已订票和等待替补乘客等信息)。而每个航班已订票的乘客和等待替补的乘客是用一条不带头结点的单链表存储该航班的每一位乘客的信息,每个结点分别存储每一位乘客的名字、所订的航班号和所订的票数。同时建立外存文件(Flight、Customer和Replace)分别用来保存航线、订票乘客和候补乘客的信息,每次程序启动时则把文件里存储的信息读到内存里,而每次程序结束时则可以把内存的所有信息保存到外存的三个文件里,这样可以使所有信息都可以实现记忆的功能。存储结构图如下所示:※存储结构示意图-1-航空客运订票系统航空客运订票系统的主要功能有:查询系统(主要包括航班、客户的查询)、订票办理、退票办理、乘客管理(主要是实现对乘客的删除功能)、航线管理(包括航线的添加与删除)和保存航线、乘客的所有信息。操作及功能如下图所示:按航班号查询航班航线查询按航线查询按飞行周日查询订票乘客查询查询系统候补乘客查询订票办理统航退票办理空删除单个航班的所有订票乘客客运订乘客管理删除单个航班的所有候补乘客票系删除某航班的单个订票乘客添加航线航线管理删除航线保存退出※操作及功能示意图【详细设计】一、数据定义:1、订票乘客结点的定义:数据域有charName[10]和intAmount分别用来存储订票乘客的名字和订票数;指针域*Next指向下一个订票乘客结点。2、替补乘客结点的定义:数据域有charName[10]和intAmount分别有来存储替补乘客的名字和所需的票数;指针域*Next指向下一个候补乘客结点。3、航班结点的定义:数据域有charFlight_NO[10]用来存储航班号(注:航班号是-2-航空客运订票系统主关键字,即唯一的)、charLocalName[10]用来存储起点站名、charDes_Name[10]用来存储终点站名、charPlane_NO[10]用来存储飞机号、intWeek_Day用来存储该航班的飞行周日、intCustomer_Amount用来存储乘客定额(即该航班最大的载客量)和intFree_Amount用来存储该航班的余票数量;指针域有*CustName和*ReplName分别指向该航班订票乘客的名单和该航班等候替补的名单。4、外部存储文件的定义:Flight文件存储航班的起点站名、终点站名、航班号、飞机号、飞行周日、乘客定额和余票数量;Customer文件存储订票乘客所订的航班号、姓名和订票的数量;Replace文件存储候补乘客所订的飞机号、姓名和所需的票数。二、操作及功能设计:(详细设计,请参阅附表二:源代码)1、查询系统:航班查询(按航班号、按终点站和按飞行周日查询)、乘客查询(订票乘客和候补乘客查询)。2、订票办理3、退票办理4、乘客管理:删除某航班的全部订票乘客、删除某航班的全部或个别候补乘客。5、航线管理:添加和删除航线6、保存退出:将航线信息、订票乘客信息和候补乘客信息保存到Flight、Customer和Replace文件里。【设计总结】航空客运订票系统采用分层分模块的程序设计方法。本系统分三层编写程序代码:第一层程序代码主要是用来作底层操作(即对存储链表的操作),所以每一个函数(方法)都是实现一个功能。第二层是服务层的程序代码编写,主要对用户输入数据的合法性的检测,当用户输入数据合法时,向第一层发出请求,作用户数据与系统数据传送工具,以及处理一些事务(例如:当有客户退订票时,系统会自动修改该航班的余票量;当有客户退票时,如有候补客户满足要求时,则弹出提示等)。第三层主要是面向操作界面的程序代码编写。总的来说,采用分层分模块的程序设计方法,对整个程序的功能实现更加清晰,而且也易于功能的扩展。通过本次课程设计,让我深深地体会到程序员的工作是多么的枯燥乏味,但同时也深深地体会到调试程序成功时的喜悦。哪怕是小小的成功,我都觉得非比寻常。-3-航空客运订票系统附表一:【使用说明】本程序一开始运行时就自动从外存的Flight、Customer和Replace三个文件的信息装载到内存里,并弹出欢迎界面,按Enter键就可以进入航空客运订票系统的主菜单操作界面。一、查询系统1、按航线查询?按航班号查询输入航班号,返回并显示该航班的相关信息(航班号、起始站、终点站、飞机号、飞行周日、额定乘客、剩余票数)。(注:由于航班号唯一,所以只返回单个记录。)?按航线查询输入起点站名和终点站名,按最近起飞的航班的次序返回并显示符合输入的起点站和终点站的航班的相关信息(航班号、起始站、终点站、飞机号、飞行周日、额定乘客、剩余票数)。?按飞行周日查询输入飞行周日(即星期几)、起点站和终点站,按指定飞行周日的次序返回并显示符合输入的起点站和终点站的航班的相关信息(航班号、起始站、终点站、飞机号、飞行周日、额定乘客、剩余票数)。2、订票乘客查询输入已订票乘客的姓名,返回并显示该订票乘客相关的订票信息(姓名、订票数、航班号、飞机号、起始站、终点站、飞行周日)。3、候补乘客查询输入候补乘客的姓名,返回并显示该候补乘客相关的订票信息(姓名、所需票数、航班号、飞机号、起始站、终点站、飞行周日)。二、订票办理在订票办理前应先查询所要搭乘航班的航班号,在订票办理时,输入乘客所要搭乘的航班的航班号,系统会返回显示该航班号的相关信息,确认要订票该航班后,再输入要订票的乘客的姓名和订票数量。如果余票不足,则订票办理不成功,系统会提示:是否转为候补乘客。三、退票办理首先输入退票乘客要求退票航班的航班号,系统会返回并显示该航班的所有订票乘客名单,进一步确认后,输入要退票乘客的姓名方可退票。在乘客成功退票后,系统会自动检测候补乘客名单,按先后次序返回并提示:“某某航班有足够的余票,请尽快通知某某候补乘客前来办理订票~”。四、乘客管理-4-航空客运订票系统1、删除某航班的全部订票乘客输入要求:航班号操作结果:删除该航班号的全部订票乘客(注:操作前请确保该航班存在和该航班没有候补乘客)2、删除某航班的全部候补乘客输入要求:航班号操作结果:删除该航班号的全部候补乘客(注:操作前请确保该航班存在)3、删除某航班的个别候补乘客输入要求:航班号和候补乘客的姓名操作结果:删除该航班指定的候补乘客(注:操作前请确保该航班和该航班的候补乘客存在)五、航线管理1、添加航线输入要求:起点站名、终点站名、航班号、飞机号、飞行周日和乘客定额操作结果:添加一条新航线(注:确保输入的航班号的唯一性)2、删除航线输入要求:航班号操作结果:删除当前存在且航班号为输入的航班号的航班(注:在操作前请确保该航班没有订票乘客和候补乘客)六、保存退出由于本航空客运系统在启动运行时,相关的数据都是从外存调到内存里。所以在每次操作完后,应选择“保存退出”,这样可以保存已改动的数据,避免数据的丢失,否则系统无法保存已改动的数据,造成数据丢失。-5-航空客运订票系统附表二:【源代码】#include<>#include<>#include<>#include<>#include<>#include<>#RUE1#defineFALSE0#defineOK1#defineERROR0#defineIBFEASIBLE-1#defineOVERFLOW-2typedefintStatus;typedefstructCustomer/*已订票乘客信息*/{charName[10];/*姓名*/intAmount;/*定票数*/structCustomer*Next;}Customer,*PCustomer;//---------------------------------------------typedefstructReplace/*侯补乘客信息*/{charName[10];/*姓名*/intAmount;/*定票数*/structReplace*Next;}Replace,*PReplace;//---------------------------------------------typedefstructFlight/*航线信息*/{charDes_Name[10];/*终点站名*/charFlight_NO[10];/*航班号*/charPlane_NO[10];/*飞机号*/charLocalName[10];/*起点站名*/intWeek_Day;/*飞行周日*/intCustomer_Amount;/*乘员定额*/intFree_Amount;/*剩余票数*/Customer*CustName;/*该航班的已定票乘客名单*/-6-航空客运订票系统Replace*ReplName;/*该航班的候补乘客名单*/structFlight*Next;/*指示下一航线结点*/}Flight,*PFlight;//-------------------------------------------------PFlightFHead;//定义航班指针,指向第一个航班,公用FILE*fp;//定义文件指针//--------------------------------------------------(PFlightfl,ame[],intamount);//Fl是指向客户要求的航班voidCreateReplace(PFlightfl,charRName[],intamount);voidCreateFlight(charDName[],charLocalName[],charFName[],charPName[],intWDay,intCAmount,intFAmount);//添加航班结点,用于添加航班voidLocDesWayQuery(intweekday,charLocalName[],charDesName[]);//按飞行周日地,航班查询StatusFlightNOQuery(charFlightNO[]);//按航班号,航班查询intGetDayOfYear();//返回年intGetDayOfMonth();//返回月intGetDay();//返回日intGetDayOfWeek();//返回当前星期voidDesQuery(charLocalName[],charDesName[],intdayweek);//按目的地,航班查询PFlightReturnPrePFlight(charFlightNO[]);//返回前一航班的指针voidDeleteCustomer(PFlightpfl,charCustName[]);voidDeleteReplace(PFlightpfl,charReplName[]);

课程设计-航空客运订票系统 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数55
  • 收藏数0 收藏
  • 顶次数0
  • 上传人夜紫儿
  • 文件大小142 KB
  • 时间2024-03-26