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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

数据结构课程设计报告文档格式.docx

1、可以建立一个主链表,存储航班信息,利用是十字链表建立两个队列,分别为订票客户和候补订票客户。其难点在于易用性,初步设计时的框架设计必须有前瞻性。另外就是整个系统的逻辑需要在写代码之前就需要非常的清晰。否则对于代码的修改将是一个大的工程1.2 任务意义飞机场每天人流量巨大,有着不同素质的人群,需要简单而迅速的订购飞机的票务、退票、查询航班等等不同的需求,对于一个航空客运订票系统的设计者来说,更需要全方位的考虑到各种客户的需求。从而根据市场的需求设计出最完善、便捷的系统,对于我们每一个志于成为一个程序员的同学来说都是一个挑战。2 设数据结构设计及用法说明程序总的存储结构,中间纵列,为各个航班的基本

2、信息,用一链表存储,其中一个节点为一个航班,其中包括终点站名、航班号、飞机号、飞行时间(星期几)、乘员定额、余票量、已经订票的客户名单(包括姓名、订票量)、等候替补的客户名单(包括姓名、所需票量)等等。横向是各个航班的订票情况,即从该指定的航班中用链表的形式横向存储已经订票了的客户信息和药等候替补的客户的信息,其中包括客户姓名和相应的需票量。如图2-1图2-1 数据存储结构图相应的存储结构代码为:typedef struct TimeNode /航班飞行时间 int Year,Month,Day; char *Week;Time;typedef struct AlreadyBookNode/已

3、经订票的客户名单-链表 char *Name;/姓名 int NeedTicketNumber;/订票量 AlreadyBookNode *next;AlreadyBook;typedef struct WaitingBookNode/等候替补的客户名单-链队 WaitingBookNode *next;WaitingBook;/链队数据节点类型定义typedef struct WaitingBook *front; WaitingBook *rear;WaitingBookLink;/链队类型定义typedef struct TicketSystemNode/航空客运订票信息-链表 char

4、 *Destination;/终点站名 char *FlightNumber;/航班号 char *AircraftNumber;/飞机号 int MemberQuota;/乘员定额 int Remain;/剩余票量 Time DepartureTime;/飞行日期 AlreadyBook *BookedGuest;/已定票名单 WaitingBookLink *WaitingGuest;/等候替补客户名单 TicketSystemNode *next;Ticket;3 详细设计和编码3.1初始化初始化函数的流程图,对双链表进行定义并对链表中数据域置空,创建头结点,对链表中的链表和链表队列进行

5、初始化,为信息的储存创建基础。如图3-1图3-1 初始化函数流程图3.2浏览客户信息浏览客户信息的流程图,通过调用Dingpiao()函数主要是对刻录录入的信息进行查询。如图3-2图3-2浏览客户信息流程图3.3客户订票信息客户订票信息的流程图,通过调用Tuipiao()函数记录客户的姓名,终点站,订票数量,看是否能达到客户的要求从而进行订票。如图3-3图3-3客户订票信息流程图4 实验结果4.1菜单函数的功能测试系统运行后就会自动显示主菜单,选项包括:1、录入,2、查询,3、订票,4、退票,5、退出。当用户选择相应的代号就进入相应的功能模块。如图4-1图4-1 主菜单函数功能检测4.2录入函

6、数的功能测试 录入航班的基本信息包括航班的数目和每一航班的终点站,航班号,飞机号,飞行日期,余票量和客户的人数姓名,订票量。如图4-2图4-2 主菜单录入功能检测4.3查询函数的功能测试通过终点站名和航班号两种方式进行查询所需查询的航班.如图4-3图4-3 主菜单查询功能检测4.4订票函数的功能测试在主菜单中选择客户订票输入客户的终点站名,姓名和订票数目。如图4-4图4-4 主菜单订票功能检测4.5退票函数的功能测试在主菜单中选择客户订票输入客户的姓名,飞行日期,飞机航班号实现退票。如图4-5图4-5 主菜单退票功能检测5 体会本程序基本上能安全的运行,具备的功能符合题目的要求。用了十字交叉链

7、表操作,是此程序的最大优点。程序写的还算简练,结构清晰,各个模块的分工和功能明确。在整个设计多的时间来完善整个程序。致谢谢谢同学,谢谢老师,谢谢战友,谢谢他们对我的帮助。参考文献1数据结构教程/李春堡等编著.北京:清华大学出版社,2009.32数据结构教程(第3版)上机实验指导/李春堡等编著.北京:源代码#includeiostream.hstdlib.hmalloc.hstring.hstruct flight_course char terminus30, flight30,plane30,flydate10; /从左往右依次为终点站、航班号、飞机号、飞行日期 int passenger,

8、remain_vote; /从左往右依次为乘员定额、余票量 struct yidingkehu /已经订票的客户名单,包括姓名、订票量 char names520; int order_vote5; passenger1; struct houbukehu /等候替补的客户名单,包括姓名、所需票量 int need_vote5; passenger2; typedef flight_course ElemType;typedef struct DNode ElemType data; int length; struct DNode *prior; struct DNode *next;DLi

9、nkList; /双链表类型定义void CreateList(DLinkList *&L) /初始化航班表 DLinkList *s; int n,m,i,j; L=(DLinkList *)malloc(sizeof(DLinkList); /创建头结点 L-prior=L-next=NULL; coutn;请输入各航班情况: for(i=0;ii+) s=(DLinkList *)malloc(sizeof(DLinkList);/创建新结点 couts-data.terminus;航班号:data.flight;飞机号:data.plane;飞行日期(星期):data.flydate;

10、余票量:data.remain_vote;请输入已定客户数:m; s-data.passenger=0; for(j=0;jj+) coutdata.passenger1.namesj;订票量:data.passenger1.order_votej; s-data.passenger+=s- 乘员定额:data.passengernext; /将*s插在原开始结点之前,头结点之后 if(L-next!=NULL) L-next-prior=s; L-next=s;prior=L; length=n;void LocateElem(DLinkList *L) /按终点站名进行查询 DLinkLi

11、st *p=L- /p指向第1个数据结点 char terminus130;请输入查找航班的终点站名:terminus1; while(p!=NULL&strcmp(terminus1,p-data.terminus)!=0) p=p- if(p=NULL)不存在该航班! else 该航班的信息如下:p-data.flightdata.planedata.flydatedata.remain_votedata.flight)!=0) 终点站名:data.terminusdata.terminus,terminus2)!=0) /根据终点站查找订票航班 if(p-order_vote1) /余票

12、量不够时,询问顾客是否排队候补余票量不够,是否排队候补(是:Y,否:N)? if(m=Y) while(p-data.passenger2.namesj0!=0) /判断候补乘客数组一维元素是否为空 j+; strcpy(p-data.passenger2.namesj,name1); p-data.passenger2.need_votej=order_vote1-p-data.remain_vote=0; else while(p-data.passenger1.namesj0!=0) /判断已定票乘客数组一维元素是否为空 j+; strcpy(p-data.passenger1.name

13、sj,name1); p-data.passenger1.order_votej=order_vote1;data.remain_vote-=order_vote1;void Tuipiao(DLinkList *&L) /退票函数 char name220,flydate110,flight130; int i=0,j;请输入退票客户信息:name2;flydate1;飞机航班号:flight1;data.flight,flight1)!=0) /查找退票航班 while(strcmp(p-data.passenger1.namesi,name2) /查找具体的退票乘客信息 i+; for(

14、;!data.passenger1.namesi+10;i+) /在该航班的已定票字符串数组中删除此乘客data.passenger1.namesi,p-data.passenger1.namesi+1);data.passenger1.order_votei=p-data.passenger1.order_votei+1;data.passenger2.names0) /判断候票乘客数组是否为空data.remain_votedata.passenger2.need_votej;data.passenger1.namesi+j,p-data.passenger2.namesj);data.p

15、assenger1.order_votei+j=p-data.remain_vote-=p-void main() DLinkList *L; int n; char m;/ CreateList(L); do*航空客运订票系统* ._. | _ | | I 1、录 入I | | I 2、查询航班I | | I 3、客户订票I | | I 4、客户退票I | | I 5、退出程序I | | I_I | !_! ._. ._|_|_. |: _ | | CD-ROM |_!Please enter the function number(15): system(cls); while(n5)Please enter the function number again: switch(n) case 1:CreateList(L);break; case 2: cout if(m=A LocateElem(L); else GetElem(L); break; case 3:Dingpiao(L); case 4:Tuipiao(L) ; default:exit(0); while(n!=0);数据结构课程设计成绩评定成绩评定: (百分制)指导教师签字: 检查时间:

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1