数据结构课程设计_航空订票系统(C ).doc

上传人:bao****ty 文档编号:132447445 上传时间:2020-05-16 格式:DOC 页数:19 大小:368.50KB
返回 下载 相关 举报
数据结构课程设计_航空订票系统(C ).doc_第1页
第1页 / 共19页
数据结构课程设计_航空订票系统(C ).doc_第2页
第2页 / 共19页
数据结构课程设计_航空订票系统(C ).doc_第3页
第3页 / 共19页
数据结构课程设计_航空订票系统(C ).doc_第4页
第4页 / 共19页
数据结构课程设计_航空订票系统(C ).doc_第5页
第5页 / 共19页
点击查看更多>>
资源描述

《数据结构课程设计_航空订票系统(C ).doc》由会员分享,可在线阅读,更多相关《数据结构课程设计_航空订票系统(C ).doc(19页珍藏版)》请在金锄头文库上搜索。

1、宜春学院数学与计算机科学学院课程设计报告书课程名称: 数据结构 题目: 航空客运订票系统 学生姓名: 学 号: 专业年级: 信息与计算科学2011级 指导老师: 开题时间:2013-6-24结束时间:2013-7-1目录一、设计题目3二、需求分析3三、概要设计31)抽象数据类型定义描述32) 功能模块设计(如主程序模块设计)43)模块层次调用关系图5四、详细设计5五、调试分析8六 、用户使用说明及测试结果101、录入航班信息(应该是航空公司录入的)102、实现查询功能:103、订票(余票充足)114、订票(余票不足)115、余票不足排队126、退票127、 退出系统13一、设计题目 航空客运订

2、票的业务活动包括;查询航线、客票预订和办理退票等。试设计一个航空客 运订票系统,以使上述业务可以借助计算机来完成。 【基本要求】 (1)每条航线所涉及的信息有:终点站名、航班名、飞机号、飞行周日(星期几)、乘员定 额、余票量、已订票的客户名单(包括姓名、订票量、舱位等级1,2 或3)以及等候替补 的客户名单(包括姓名、所需票量); (2)作为示意系统,全部数据可以只放在内存中; (3)系统能实现的操作和功能如下: 查询航线:根据旅客提出的终点站名输出下列信息:航班号、飞机号、星期几飞行, 最近一天航班的日期和余票额; 承办订票业务:根据客户提出的要求(航班号、订票数额)查询该航班票额情况,若

3、尚有余票,则为客户办理订票手续,输出座位号;若已满员或余票额少于订票额,则 需重新询问客户要求。若需要,可登记排队候补; 承办退票业务:根据客户提供的情况(日期、航班),为客户办理退票手续,然后查 询该航班是否有人排队候补,首先询问排在第一的客户,若所退票额能满足客户的要 求,则为客户办理订票手续,否则依次询问其他排队候补的客户。二、需求分析1)运行环境(软、硬件环境) Winxp 32位 visual C+6.02)输入的形式和输入值的范围 由航空公司输入航线情况并以单链表的形式存储在内存里面3)输出的形式描述 通过客户的输入输出相应的内容4)功能描述 用户通过本系统实现该航空公司的查询、订

4、票(包括候补)、和退票功能5)测试数据 终点站 航班 飞机号 飞行日期 成员定额 余票量 zhengzhouIphone4s1Sunday33beijingNokia2Tuesday22tianjinASUS3Friday44三、概要设计1)抽象数据类型定义描述(对各类的成员及成员函数进行抽象描述,参见书或ppt及实验) 一条航线包括了终点站、航班名、飞机号、飞行周日、成员定额、余票量、订票人员、候补人员等信息,我们可以将航线看成一类,定义为一个类,而订票人员通用的属性是:姓名、订票张数和舱位等级,候补人员通用属性是姓名和订票张数,可以将订票人员和候补人员定义为结构体,航线定义为一个类,类包括

5、了两个结构体。具体定义如下:class transportNode/航线类节点friend class transport;private:char finish10;/目的地char flightname10;/航班名int flightnum;/航班号int day;/飞行日期int limitednum;/乘员限额int remainber;/余票struct booknodepublic:char name10;/乘客姓名int ticketnum;/票数int rate;/舱位等级b40;struct sparenodepublic:char name10;/乘客姓名int tick

6、etnum;/票数 int m;/记录排队等候的顾客的数量s40;transportNode *next;2) 功能模块设计(如主程序模块设计) 主程序中录入航线的信息,然后进入主菜单,再实现其他的功能,类transport 中包括了除去主菜单以外的所有的功能函数class transportpublic:transport();/无參构造函数构造头节点void recort();/记录航班信息void chest();/实现根据输入的目的地查询的功能void book();/实现旅客的订票功能void bounce();/实现退票功能private:transportNode *head;i

7、nt menu();/进入主菜单3)模块层次调用关系图 函数入口,录入航班信息进入主菜单选择1234 1 2 3 4 没有查到订票退票查询 查到 输出 输出回主菜单 退出回主菜单 退出四、详细设计实现概要设计中定义的所有的类的定义及类中成员函数,并对主要的模块写出伪码算法。类和它的私有成员以及成员函数class transportNode/航线类节点friend class transport;private:char finish10;/目的地char flightname10;/航班名int flightnum;/航班号int day;/飞行日期int limitednum;/乘员限额in

8、t remainber;/余票struct booknodepublic:char name10;/乘客姓名int ticketnum;/票数int rate;/舱位等级b40;struct sparenodepublic:char name10;/乘客姓名int ticketnum;/票数 int m;/记录排队等候的顾客的数量s40;transportNode *next;举出订票的成员函数实现:void transport:book()/订票系统transport y;transportNode p;static int i=0;/静态变量存储上次订票信息static int j=0;/

9、静态变量存储上次排队信息static int k=1; p.sj.m=0;int m=0;/计数器,据此判断是否有符合目的地的票char c;transportNode *pre;pre=head-next;char f10;cout*欢迎进入订票系统*endl;coutp.bi.name;coutp.bi.ticketnum;coutp.bi.rate;coutf;while (pre)if(strcmp(f,pre-flightname)=0&pre-remainber=p.bi.ticketnum)cout恭喜!订票成功!endl座位号是:;for(int z=0;zp.bi.ticke

10、tnum;z+)coutk+;coutremainber=pre-remainber-p.bi.ticketnum;i+;m+;coutc;if (c=0)return;else exit(0);if (pre-remainberp.bi.ticketnum)cout对不起!余票不足!endlc;if (c=Y)coutp.sj.name;coutp.sj.ticketnum;cout排队成功!如果有人退票,我们会尽快通知您!endl;j+;p.sj.m+;coutc;if(c=0)return;else exit(0);elsepre=pre-next;if (pre=NULL)cout抱歉

11、!没有对应的航班号o()o ;coutc;if(c=0)return;else exit(0);五、调试分析包括调试过程中遇到的问题及解决的方法、算法的时间空间复杂性分析、经验体会。1、 调试过程中出现了很多错误,刚开始的时候,我将订票人员看作一个类、将候补人员看作一个类,将航线看作一个大类。而我将两个小类放进了大类中,想让小类当作大类的成员。 class transportNode/航线类节点 这是一个类friend class transport;private:char finish10;/目的地char flightname10;/航班名int flightnum;/航班号int day;/飞行日期int limitednum;/乘员限额int remainber;/余票class booknode 这里还有一个public:char name10;/乘客姓名int ticketnum;/票数int rate;/舱位等级;class sparenode 这里也有一个public:

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 其它相关文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号