航空售票管理系统的介绍

上传人:be****l 文档编号:61637325 上传时间:2022-03-11 格式:DOC 页数:39 大小:151.50KB
收藏 版权申诉 举报 下载
航空售票管理系统的介绍_第1页
第1页 / 共39页
航空售票管理系统的介绍_第2页
第2页 / 共39页
航空售票管理系统的介绍_第3页
第3页 / 共39页
资源描述:

《航空售票管理系统的介绍》由会员分享,可在线阅读,更多相关《航空售票管理系统的介绍(39页珍藏版)》请在装配图网上搜索。

1、 n更多企业学院:中小企业管理全能版183套讲座+89700份资料总经理、高层管理49套讲座+16388份资料中层管理学院46套讲座+6020份资料国学智慧、易经46套讲座人力资源学院56套讲座+27123份资料各阶段员工培训学院77套讲座+ 324份资料员工管理企业学院67套讲座+ 8720份资料工厂生产管理学院52套讲座+ 13920份资料财务管理学院53套讲座+ 17945份资料销售经理学院56套讲座+ 14350份资料销售人员培训学院72套讲座+ 4879份资料n更多企业学院:中小企业管理全能版183套讲座+89700份资料总经理、高层管理49套讲座+16388份资料中层管理学院46套

2、讲座+6020份资料国学智慧、易经46套讲座人力资源学院56套讲座+27123份资料各阶段员工培训学院77套讲座+ 324份资料员工管理企业学院67套讲座+ 8720份资料工厂生产管理学院52套讲座+ 13920份资料财务管理学院53套讲座+ 17945份资料销售经理学院56套讲座+ 14350份资料销售人员培训学院72套讲座+ 4879份资料科技大学本科生C+程序设计课程设计说明书题 目:航空售票管理系统学生:完美主义学 号:专 业:计算科学与技术班 级:计2010-1班指导教师:32 / 39摘要随着科技的发展和人们生活水平的日益提高,人们在不断追求更加快捷的交通方式以满足人们快节奏的生活

3、方式,航空系统在交通系统中已扮演着一个越来越重要的角色。然而,交通的快捷离不开信息的快捷。随着随着计算机的发展和普与,人们的生活方式发生了巨大的改变,计算机在代替和延伸脑力劳动方面发挥着越来越重要的作用。在交通系统中,有大量的数据需要被处理,而这些工作有人来完成几乎是不可能的,而交给计算机处理,就可以很好地满足我们的需求。航空售票管理系统可以根据乘客和管理人员的要求,进行方便快速的查询、购票、退票和管理等工作。本文介绍了简易航空售票管理系统的实现过程。关键词航空售票管理系统 动态数组 类和对象 文件操作 运算符重载 多文件结构成绩评定标准课程设计的验收答辩采取“讲解程序+提问+即时编程”的方式

4、。考核项目评价质量成绩程序功能完全实现,并能通过答辩。(60%)A能完全正确回答提问;B问题回答的基本意思正确;C不能回答或回答错误,抽取程序小的功能即时编程,能完成;D不能回答或回答错误,即时编程无法完成;程序设计符合面向对象的思想和原则,结构合理(15)A程序结构层次分明,提取出各个实体类,类的设计合理;B程序结构层次分明,具有客户类和服务类;C类的设计基本正确;D几乎在一个类或者方法中实现了大部分的逻辑,结构不够清晰;程序的风格(10%)A遵守编码规,有良好的风格; 以下问题每出现一项成绩降一个等级: 1类、方法和变量命名不符合规; 2方法和属性前缺少注释; 3程序没有适当缩进;设计说明

5、书(15%)从以下几方面考核: 1结构完整 2图表正确 3文字通顺 4版面工整目 录 第一章 问题描述1.1该航空售票管理系统必须用C+语言进行设计,要能体现C+语言的特性。1.2该系统至少要能提供下列服务:(1) 录入航班信息,格式为:航班号起始终点起飞时间经济舱票价剩余座位mu216420:3061087可不定时地增加航班数据。(2)浏览航班信息,可显示出所有航班,如果当前系统时间超过了某航班的起飞时间,则显示“此次航班已发出”的提示信息。(3)查询路线:可按航班编号查询,可按起始站,终点站查询(4)订票和退票功能A:查询航班编号或站点。当剩余座位数大于0,并且当前系统时间小于起飞时间时才

6、能售票,售票后自动更新剩余座位数。B:退票时,输入退票的班次,当本班航班未发出时才能退票,退票后自动更新剩余座位数。第二章 问题分析从对问题的描述可以知道,我们需要建立的是具有能对数据录入,追加,浏览,检索和修改功能的软件。由于乘客的数量较大且不固定,因此选择用动态数组来保存乘客的基本信息:航班号、起始站名、终点站名、起飞时间、经济参票价、余票量等等。所以我们建立一个可以动态增长的数组,在必要的时候将数组的容保存到文件中。系统主要实现的操作和功能是:录入航班信息、浏览航班信息、查询航线、订票功能、退票功能。要实现这些功能,首先要使程序能实现查找功能,在查找出到有效信息的前提之下,通过链表的赋值

7、,更新信息和删除退票人信息,满足客户的要求。2.1 阐述你对问题的理解、解决问题的方案说明根据系统功能要求,可以将问题解决分为以下步骤:(1)分析系统中的各个实体之间的关系与其属性和行为;(2)根据问题描述,设计系统的类层次;(3)完成类层次中各个类的描述(包括属性和方法);(4)完成类中各个成.员函数的定义;(5)完成系统的应用模块;(6)功能调试;(7)完成系统总结报告以与系统使用说明书。2.2 系统功能模块的划分该系统总共包含四大功能模块:一、 更新航班信息功能模块该模块为对航班信息的操作,仅向管理员开放使用,普通用户不能使用该功能对航班信息进行操作,故进入该功能需进行身份验证。该模块又

8、被分为五个子功能模块信息库的重建、信息的插入、修改、删除和清空数据。二、 浏览航班信息完成将文件中的航班信息按照要求格式全部输出。三、 查询航班信息可以实现按航班号和按站点的查询并将查询到的信息输出。四、 订票和退票系统该模块根据订票和退票操作的相似性,将这两种操作放在一起。另外,由于各模块函数是直接对文件进行操作,所以各功能模块是相互独立的。第三章 数据模型3.1 相关数据结构的说明本系统用到的容器主要是动态增长的vector ,使用该容器需用头文件#include ,其通过语句vector v_array;申请了一个可以动态增长的数组。该数组的元素类Flight的对象,通过语句Flight

9、 fly; v_array.push_back(fly);可实现数组v_array的增长。该容器用来存放航班类Flight的对象,使用该容器可以可以存放个数不确定的对象,且可以方便地进行访问。3.2 类的设计程序中一共定义了两个类:Flight类和Traffic_system类。在Flight类里定义了私有数据成员m_fnum10表示航班号, m_ftime2表示起飞时间,char m_fstar18表示起始站, m_fdestination18表示终点站, m_fprice表示票价, m_fseat表示票数;定义了共有的成员函数bool SetInfo()用来设置航班信息,friend is

10、tream& operator(istream& in, Flight& cp)用来重载提取运算符,friend ostream& operator(ostream& out, Flight& cp)用来重载插入运算符(istream& in, Flight& cp)中使用了形参in和cp,形参in为引用“ istream&”,与该函数的返回值一样,故可以将该函数的返回值传给该形参,实现“”操作符的连续使用。形参cp为引用“Flight&”,实现了对Flight类对象的输入重载。B) 插入运算符重载函数ostream& operator(ostream& out, Flight& cp)中使用

11、了形参out和cp,其作用与上面类似。C) 函数bool Flight:If_match(char (*p)18, char ta)中使用了形参p 和ta,形参p为指向字符数组的指针,它用来指向一个大小为18的字符数组;形参ta为字符型,其作用是使该函数区分航班号和站点名两种比较。D) 函数int Traffic_system:Search(int invoke = 0)中使用了形参invoke,该形参为int型并设置默认参数0,其作用为区分调用者,以便输出相应的提示信息。第四章 算法描述4.1 解题算法的设计思路介绍首先根据问题描述抽象出一个航班类,封装了航班的数据信息和方法。数据里主要有航

12、班的航班号、起飞时间、站点等信息,方法主要是对该类中数据的值的输入、输出对本班次机票的管理,对时间、站名等的核对,另外为了方便对文件的输出和读取,还以友元的形式重载了提取和插入运算符。由于有航班有多组,为了方便管理各个对象,所以有定义了一个Traffic_system类,将Flight类的对象作为Traffic_system类的数据成员。Traffic_system类中还定义了两个私有的成员函数完成对文件的读写。共有的成员函数主要是Manage(),void Scan(), Search(int invoke = 0)和BookRefund(),用来完成系统的几大功能。4.2 画出程序流程图文

13、件“航空售票管理系统v-1.0.cpp”中主函数流程图main()tab=0 tab=5 tab=4清屏订票和退票break;break; tab=3 tab=2 tab=1 开始输入tab输出菜单浏览管理查询break;break;break;YNYYYYYNNNN结束文件“class/Traffic_system.cpp”中类中Traffic_system中浏览函数void Scan()开始重建i m_sum 删除全部删除全部返回m_su =0 读文件i = 0输出表头YNNY查询函数Search(int invoke = 0)开始读文件输出提示信息输入tabtab=0 返回 -1tab=

14、1 输入str0, str1输入 str0i m_sum NYta=1ta=2v_arrayi.If_match(str, ta) 返回 iYNi+YYNNi=0订票退票函数BookRefund()tab=0 tab=2 tab=1 开始输入tab输出菜单查询break;YYYNN结束订票保存查询break;退票保存第五章 设计总结此课程设计完成了对航线查询、订票、退票等功能的设计操作,并且为了插入和删除方便,运用动态数组做存储结构。此课程设计还包含了清屏功能以与退出功能。对程序在运行时输入错误操作的修改,提供了一定方便条件基本上能安全的运行,具备的功能符合题目的要求。用了文件的操作,是此程序

15、的最大优点。程序写的还算简练,结构清晰,各个模块的分工和功能明确。经过两周的课程设计,我认识到把课堂上老师讲的知识运用到实际操作中的重要性。我这次课程设计的题目是航空订票系统,在开始阶段,根本无从下手,后来通过查阅一些相关资料和老师的耐心讲解,最终成功完成整个程序的设计。通过这次课设我对C+语言中的类的定义、运算符重载等知识有了进一步的理解,对流程图的画法更加熟练,对程序的开发思路有了一定的理解,我想这在以后的学习和工作中都会有帮助的,更使我意识到了学习C+语言的重要性。程序中运用了多文件结构,虽然程序不是太大,但多文件结构的使用是我模仿正规软件的结构来写的,我想这对我以后的提高有帮助。另外,

16、对程序的不断调试,是我的查错能力有了很大的提高。附录程序清单文件航空售票管理系统v-1.0.cpp#include #include using namespace std;#include class/Traffic_system.hint main()Traffic_system civil_aviation;/若文件不存在,则新建文件ofstream newfile( flight information.txt, ios:app );if (!newfile)cerr 文件flight information.txt无法打开!n;exit(2);newfile.close();int

17、tab;while(1)cout 欢迎进入航空售票管理系统 * 主菜单: * * 1更新航班信息(需管理员身份验证) 2浏览航班信息 * * 3查询航班信息 4订票 和 退票 * * 5清 屏 0退 出 系 统 * * 你需要做什么?(选择04) tab;while(!(tab = 1 | tab = 2 | tab = 3 | tab = 4 | tab = 5 | tab = 0)cout tab;switch(tab)case 1:civil_aviation.Manage();break; /航线管理case 2:civil_aviation.Scan();break; /订票办理ca

18、se 3:civil_aviation.Search();break; /退票办理case 4:civil_aviation.BookRefund();break;case 5: system(cls); break;case 0:return 0; /退出系统文件class/Traffic_system.h#include using namespace std;#include flight.h/用于对文件的操作class Traffic_systempublic: Traffic_system() m_sum = 0; void Manage();/管理航班信息void Scan();/

19、浏览int Search(int invoke = 0);/查询功能void BookRefund();/订票和退票private:void Read_file();/读取文件void Save_file();/保存文件private:int m_sum;/记录航班数vector v_array;/航班类数组;文件class/Traffic_system.cpp#include #include using namespace std;#include Traffic_system.h/读取文件void Traffic_system:Read_file()ifstream file( flig

20、ht information.txt);if (!file)cerr v_arraym_sum+;m_sum-;/file.close();/保存文件void Traffic_system:Save_file()ofstream file( flight information.txt , ios:trunc);if (!file)cerr 文件flight information.txt无法打开!n;exit(2);int i = -1;while (+i m_sum)if (!v_arrayi.If_deleted()file v_arrayi;file.close();/管理航班信息vo

21、id Traffic_system:Manage()char password20;/用于存贮密码int times = 3;cout 登录系统需验证密码! endl;/验证密码。三次错误后,就自动退出程序dotimes-;cout password;if(strcmp(password, 000) = 0)/密码是“000”times = -1;break;else if (times 0)cout 密码错误!n 剩余 times 次机会! 0);if(times != -1)cout 对不起!n 您不是管理员! 不能使用此系统! endl;return;system(cls);while

22、(1)int tab;cout n*欢迎使用航班信息管理系统*n 1重新创建信息库tt 2插入信息 *nt*t 3修改信息tt 4删除信息 *nt*t 5删除全部tt 0退出管理 *n 你需要做什么?(选择05) tab;while(!(tab = 1 | tab = 2 | tab = 3 | tab = 4 | tab = 5 | tab = 0)cout tab;switch(tab)case 1:m_sum = 0;Flight fly;cout 请进行信息录入。按“+”结束!n;do v_array.push_back(fly);/while (v_arraym_sum+.SetIn

23、fo(); break;case 2:Read_file();Flight fly;cout 请进行信息录入。按“+”结束!n;do v_array.push_back(fly);/while (v_arraym_sum+.SetInfo(); break; case 3: char fnum118; Read_file(); cout fnum0; int i = 0; for (; i m_sum; i+) if (v_arrayi.If_match(fnum, 1) cout 该航班的原信息为:n n 丨 航 班 号 丨 起 始 站 丨 终 点 站 丨起飞时间丨票价丨余 票丨 n; v_

24、arrayi.Display(); cout 请输入正确信息!n; v_arrayi.SetInfo(); m_sum+;/保持与总航线数不变 break; if (i = m_sum) cout 抱歉!您要修改的信息不存在! endl; return; m_sum+;/ break; case 4: char fnum118; Flight empty;/声明空对象,用于删除 Read_file(); cout fnum0; int i = 0; for (; i m_sum; i+) if (v_arrayi.If_match(fnum, 1) cout 您要删除的航班为:n n 丨 航

25、班 号 丨 起 始 站 丨 终 点 站 丨起飞时间丨票价丨余 票丨 n; v_arrayi.Display(); v_arrayi = empty; m_sum+;/保持与总航线数不变 break; if (i = m_sum) cout 您要删除的信息不存在! endl; return; break; case 5:m_sum = 1; break; case 0:return;cout yn;while(!(yn = Y | yn = y | yn = N | yn = n );if(yn = Y | yn = y)m_sum-;/对应m_sum+Save_file();cout 操作成功

26、! endl;/浏览void Traffic_system:Scan()char c;Read_file();if (m_sum = 0)cout 暂无信息!请等待管理人员更新!;return;cout t航班信息表:n n 丨 航 班 号 丨 起 始 站 丨 终 点 站 丨起飞时间丨票价丨余 票丨 n;for (int i = 0; i m_sum; i+)v_arrayi.Display();cout c;/查询功能int Traffic_system:Search(int invoke)int tab;Read_file();cout 1按航班号查询 2按站点查询 0返回 *n*n请选择

27、(02): tab;while(!(tab = 1 | tab = 2 | tab = 0)cout tab;char str218, ta;if (tab = 0) return -1;else if (tab = 1)cout str0;ta = 1;elsecout str0;cout str1;ta = 2;for (int i = 0; i m_sum; i+)if (v_arrayi.If_match(str, ta)cout 您要查询的结果如下:n n 丨 航 班 号 丨 起 始 站 丨 终 点 站 丨起飞时间丨票价丨余 票丨 endl;v_arrayi.Display();if

28、 (invoke = 0)cout c;return i;cout 抱歉!您查询的航班不存在! endl;return -1;/订票和退票void Traffic_system:BookRefund()while (1)cout *欢迎进入机票服务系统*nn n1订票t2退票t0返回主菜单 *n tab;while(!(tab = 1 | tab = 2 | tab = 0)cout tab;char ta;switch(tab)case 1:cout 请先查找该航班: endl;int i;i = Search(1);if (i != -1 & v_arrayi.Book()cout ta;

29、while(!(ta = Y | ta = y | ta = N | ta = n );if(ta = Y | ta = y)Save_file();cout 订票成功! endl;break;case 2:char str118;Read_file();cout str0;int i = 0;for (; i m_sum; i+)if (v_arrayi.If_takeoff()continue;if (v_arrayi.If_match(str, 1)v_arrayi.Refund();cout ta;while(!(ta = Y | ta = y | ta = N | ta = n );

30、if(ta = Y | ta = y)Save_file();cout 退票成功! endl;break;if (i = m_sum)cout 不存在该航班或该航班已起飞!不能退票。 (istream& in, Flight& cp);/提取运算符重载friend ostream& operator(ostream& out, Flight& cp);/插入运算符重载void Display();/输出航班信息bool Book();/订票void Refund();/退票bool If_takeoff();/判断是否起飞bool If_deleted();/判断是否删除bool If_mat

31、ch(char (*p)18, char ta);/判断航班号或站点名是否一样private:char m_fnum10;/航班号int m_ftime2;/起飞时间char m_fstar18;/起始站char m_fdestination18;/终点站int m_fprice;/票价int m_fseat;/票数;文件class/ flight.cpp#include #include #include #include /time.h in Cusing namespace std;#include #include flight.h/(istream& in, Flight& cp)i

32、n cp.m_fnum cp.m_fstar cp.m_fdestination cp.m_ftime0 cp.m_ftime1 cp.m_fprice cp.m_fseat;return in;ostream& operator(ostream& out, Flight& cp)out cp.m_fnum cp.m_fstar cp.m_fdestination cp.m_ftime0 cp.m_ftime1 cp.m_fprice cp.m_fseat tm_hour * 60 + fmt-tm_min);/判断是否起飞bool Flight:If_takeoff()return (m_f

33、time0 * 60 + m_ftime1 = get_systemtime();/判断是否作废bool Flight:If_deleted()return m_fnum0 = -;/判断航班号或站点名是否一样bool Flight:If_match(char (*p)18, char ta)if (ta = 1) return (!strcmp(m_fnum, p0);else return (!strcmp(m_fstar, p0) & !strcmp(m_fdestination, p1);/设置航班信息bool Flight:SetInfo()cout m_fnum;if (m_fnu

34、m0 = +) return false;cout m_fstar;cout m_fdestination;cout 请输入起飞时间:(格式:03:05);scanf(%d:%d,m_ftime, m_ftime + 1);cout m_fprice;cout m_fseat;return true;/输出航班信息void Flight:Display()if (If_takeoff()cout 丨 setiosflags(ios:left) setw(10) m_fnum 丨 setw(18) m_fstar 丨 setw(18) m_fdestination 丨 本次航班已经起飞! 丨 e

35、ndl;elsecout 丨 setiosflags(ios:left) setw(10) m_fnum 丨 setw(18) m_fstar 丨 setw(18) m_fdestination 丨 setiosflags(ios:right) setw(2) setfill(0) m_ftime0 : setw(2) m_ftime1 setfill( ) 丨 setw(4) m_fprice 丨 setw(5) m_fseat 丨 resetiosflags(ios:right) endl;/订票bool Flight:Book()if (If_takeoff()cout 该航班已经起飞,

36、停止售票! endl;return false;int count;cout count;if (m_fseat count)cout 余票不足! endl;return false;m_fseat -= count;return true;/退票void Flight:Refund()if (If_takeoff()cout 该航班已经起飞,停止退票! endl;return;int count;cout count;m_fseat += count;参考文献1 Bjarne Stroustrup, THE C+ PROGRAMMING LANGUAGE, Higher Education Press Pearson Education,20022 美Walter Savitch著,周靖译,C+面向对象程序设计基础、数据结构与编程思想,清华大学出版社,20043 美Brian Overland著,董梁等译,C+语言命令详解,电子工业,20004 美AI Stevens著,林瑶等译,C+大学自学教程,电子工业,20045刁成嘉主编,面向对象C+程序设计,机械工业,20046瑞新主编,建春,淑娟,连堂等编著,Visual C+面向对象程序设计程,机械工业,20047文宇,松梅编著,C+语言教程,电子科技大学,20048凯主编,付兴宏主审,VC+程序设计,理工大学,2002

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!