航空公司订票系统设计
- 格式:doc
- 大小:196.50 KB
- 文档页数:21
一绪论11.1 课题背景及现状 (1)1.2 开发工具介绍 (1)二需求分析 (2)(一)航空售票系统的数据需求(二)数据字典(三) 主要数据流图三概要设计 (6)四逻辑设计 (7)五详细设计 (7)(一)基本查询语句(二) 程序流图中某些加工实现采用IPO图的方式描述(三)数据库的逻辑结构设计六测试结果 (12)七小结 (17)参考文献 (18)附录(主要源代码) (19)一绪论1.1 课题背景及现状随着旅游业的逐渐的成熟发达,航空客运量大幅度的提高,国内国际的旅游航班的增加,这些都对航空的信息管理系统提出了更高的要求,所以要不断的完善更新航空售票系统,提高航空售票系统的工作效率。
航空公司为方便旅客,需开发一个订票系统。
系统的操作者是有登录密码和用户名的售票员。
系统要实现的基本功能是航班的调整,售票,订票,取票,退票,乘客信息的管理,乘客购票的统计;而系统在以后扩展时还可以实现的功能有:对机组工作人员的管理,预定机票的送票情况管理等。
此系统的开发由我们分模块完成,而我所负责的模块是实现系统的航班调整,售票,订票,退票,取票,航班查询功能。
举一个旅客订票的例子:预定机票的旅客信息,包括姓名、性别、地址、证件号、目的地,输入机票预定系统的客户端程序,系统经过查询航空公司内的航班数据服务器后,为旅客安排航班,印出取票通知。
旅客在飞机起飞前一天凭取票通知和帐单交款后取票,系统校对无误后即印出机票给旅客。
要求系统能有效、快速、安全、可靠和无误的完成上述操作。
并要求客户机的界面要简单明了,易于操作,服务器程序利于维护。
航空售票系统是典型的信息管理系统,其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。
对于前者要求建立起数据一致性和完整性强、数据安全性好的库。
而对于后者则要求应用程序功能完备,易使用等特点1.2 开发工具介绍本次课程设计应用的开发工具主要是用java语言和SQL Server 2005 。
北京工业大学耿丹学院"五福航空"订票系统的设计与实现班级:计算机科学与技术09级2班学号:090201203姓名:牟森软件设计说明Version 1.0Revision目录1.引言 (3)1.1目的 (3)1.2范围 (3)1.3 定义、缩写词以及简写 (3)2.参考文献 (3)3. 分解说明 (3)3.1 模块分解 (3)4. 依赖关系说明 (4)4.1 模块间的依赖关系 (4)4.2数据依赖关系 (4)5. 接口说明 (4)5.1 模块接口 (4)6. 详细设计 (5)6.1 模块详细设计 (5)6.2 数据详细设计 (7)1.引言1.1目的本文档描述了五福航空公司订票系统的功能要求和非功能要求,文档阅读对象为本软件项目的订票客户和软件开发人员以及软件测试人员。
1.2范围本软件是五福航空公司定制航空订票系统。
本软件可以实现网络订票、柜台订票预约排号及安全保护几个总体功能。
在1.0版本中只实现网络订票,在后续版本中将继续完善软件功能并升级软件总体功能。
网络订票功能属于实时功能,订票成功后数据保存到数据库,再由数据库返回至在线客服平台,以供用户进行实时查阅、退订功能。
1.3定义、缩写词以及简写2.参考文献无3.分解说明3.1模块分解3.1.1 服务器管理员模块服务器管理员模块:售票信息的数据导入、售票报表统计、MAC地址验证、硬件信息验证、用户管理、下载、售后服务、订单提交。
3.1.2 注册用户模块注册用户模块:系统登陆、用户识别、管理、预定、查询、订票信息数据导出。
3.1.3 普通用户模块普通用户模块:软件安装、注册。
3.1.4 短信模块短信模块:把已订票信息发送给用户。
各模块的详细功能如图一所示:图一4.依赖关系说明4.1模块间的依赖关系本软件的服务器管理模块是作为基础模块存在的,服务器管理员模块、注册用户模块和短信模块都基于此模块,服务器管理模块是独立存在模块,注册用户模块依赖于服务器管理模块,短信模块依赖于注册用户模块和服务器模块,且短信模块只有在订票成功后才由服务器发送给指定手机。
飞机订票系统策划书3篇篇一飞机订票系统策划书一、引言二、系统目标1. 提供在线机票预订功能,方便用户随时随地预订机票。
2. 整合机票信息,提供实时的航班查询、预订和票价比较功能。
3. 支持多种支付方式,确保安全、便捷的支付流程。
4. 提供用户管理功能,方便用户查询订单、修改个人信息等。
5. 具备数据分析和报表功能,帮助航空公司进行市场分析和决策。
三、系统功能模块1. 用户界面模块机票搜索和预订:用户可以通过输入出发地、目的地、出发日期等信息搜索机票,并进行预订。
个人中心:用户可以查询订单、修改个人信息、管理常用联系人等。
客服中心:提供在线客服和常见问题解答,方便用户咨询。
2. 后台管理模块航班管理:航空公司可以管理航班信息、舱位设置、票价调整等。
订单管理:管理员可以查询、处理订单,报表。
用户管理:管理员可以管理用户信息,设置用户权限。
数据分析:系统可以分析用户行为、预订趋势等数据,为航空公司提供决策支持。
3. 支付模块支持多种支付方式,如在线支付、银行转账、信用卡支付等。
与第三方支付平台集成,确保支付安全可靠。
提供支付记录查询功能,方便用户查询支付状态。
4. 数据整合模块与航空公司的票务系统进行数据对接,实时获取航班信息和票价。
整合其他数据源,提供更多的机票信息和推荐。
四、技术选型1. 前端技术:采用 HTML、CSS、JavaScript 等技术,构建用户界面。
2. 后端技术:选择适合的编程语言和框架,如 Python、Django 等。
3. 数据库:使用关系型数据库如 MySQL 或 NoSQL 数据库如 MongoDB 存储数据。
4. 支付接口:与第三方支付平台进行集成。
五、项目时间表1. 需求分析与设计:[时间区间 1]2. 系统开发:[时间区间 2]3. 测试与修复:[时间区间 3]4. 上线与维护:[时间区间 4]六、预算1. 人力成本:[具体金额]2. 技术设备采购:[具体金额]3. 软件开发费用:[具体金额]4. 测试与维护费用:[具体金额]5. 其他费用:[具体金额]总预算:[具体金额]七、风险评估与应对措施1. 技术风险:关注技术发展趋势,及时解决技术难题。
《信息系统分析与设计》课程报告题目航空订票系统(详细设计说明书)院系电子工程专业信息工程(系统方向)学生姓名学号指导教师目录一、引言1. 编写目的2.项目背景3.定义4. 参考资料二、任务概述1.目标:完成一个航空订票信息系统的需求分析2.运行环境3.条件与限制三、总体设计1.处理流程2.总体结构与外部模块设计3. 功能分配四、接口设计1.外部接口,硬件接口、软件接口、用户界面2.内部接口五、数据结构设计1.逻辑结构设计2.物理结构设计六.运行设计1.运行模块组合2.运行控制3.运行时间七.出错处理设计1.出错输出信息2.出错处理对策八.安全保密设计九.维护设计摘要:航空订票信息系统开发的目的在于方便客户,其中包括系统总体设计、输入输出设计、代码设计、数据库设计等。
关键字:系统开发项目简介、数据流程图、数据结构图、ER图。
一:引言1.编写目的:航空公司开发航空订票信息系统以为了旅客旅行方便,提高工作效率,提高服务质量,增加经济效益,加快公司发展步伐。
2.项目背景:名称:航空订票信息系统本项目的提出者:开发者:用户:所有有需要的航空旅客实现软件的单位:本项目与其他软件或其他系统的关系:WINDOWS所有的系统3. 定义在我们进行正式软件设计之前,要先了解一些概念:(1)模块化:模块是数据说明、可执行语句等程序对象的集合,模块可以单独被命名而且可通过名字来访问,例如,过程、函数、子程序、宏等都可以作为模块;(2)抽象与逐步求精:软件工程过程的每一步都是对软件解法的的抽象层次的一次精化。
逐步求精与抽象是紧密相关的。
(3)模块独立性:模块独立性是指系统软件中每个模块只涉及软件的具体自功能,而和软件系统的其他的模块接口是简单的。
(4)耦合:是对一个软件结构内各个模块之间互连程度的度量。
耦合强弱取决与模块间接口的复杂程度,调用模块的方式,以及通过接口的信息。
4.参考资料:管理信息系统(美) G.B戴维斯哈尔滨工业大学出版社 1985/1物流信息系统赵刚四川大学人民出版社 2002/9物流信息管理尹涛东北财经大学出版社2005/1编程逻辑与结构化程序设计(美)Harold J.Rood 中国水利水电出版社 2004/3信息处理与数据库刘玉梅邱基文人民教育出版社 1988/3数据库技术与应用-Access2000篇郭力平人民邮电出版社2002/8文档对象模型-处理结构化文档(美)马里尼清华大学出版社 2003二、任务概述1.目标:完成一个航空订票信息系统的需求分析2.运行环境:Windowsxp+Access3.条件与限制:查找相关资料、有一定的数据库知识、会画数据流程图、掌握数据字典的相关知识并会灵活运用。
航空订票系统课程设计一、课程目标知识目标:1. 让学生理解航空订票系统的基本概念,掌握其功能模块和工作原理。
2. 使学生掌握数据库查询、数据传递和数据处理的基本方法。
3. 帮助学生了解航空公司的运营策略和机票定价机制。
技能目标:1. 培养学生运用所学知识设计简单的航空订票系统,具备实际操作能力。
2. 培养学生分析问题、解决问题的能力,学会在实际项目中运用数据库技术。
3. 提高学生的团队协作能力,学会在项目中分工合作,共同完成任务。
情感态度价值观目标:1. 激发学生对计算机科学的兴趣,培养其主动学习的热情。
2. 培养学生的责任心,使其认识到严谨、细致的工作态度在项目实施中的重要性。
3. 增强学生的自信心,使其相信通过努力可以掌握复杂的计算机技术。
本课程针对高年级学生,结合航空订票系统课程特点,注重理论与实践相结合,旨在提高学生的实际操作能力和解决问题的能力。
课程目标具体、可衡量,以便学生和教师能够清晰地了解课程的预期成果,并为后续的教学设计和评估提供依据。
二、教学内容1. 航空订票系统概述:介绍航空订票系统的基本概念、发展历程和功能模块,结合课本第二章内容,让学生对航空订票系统有整体的认识。
2. 数据库查询与处理:讲解数据库的基本原理,以课本第四章内容为基础,教授SQL查询语句、数据传递和数据处理方法,为设计航空订票系统奠定基础。
3. 航空公司运营策略与机票定价机制:分析航空公司的运营策略,结合课本第五章内容,介绍机票定价机制,帮助学生了解行业背景。
4. 航空订票系统设计:根据课本第六章内容,详细讲解航空订票系统的设计方法,包括系统架构、模块划分、功能实现等,指导学生进行实际操作。
5. 实践项目:组织学生分组进行航空订票系统设计实践,结合前述章节内容,完成以下任务:a. 设计并实现一个简单的航空订票系统;b. 编写系统需求分析、设计说明书;c. 进行系统测试,确保系统功能的正确性和稳定性。
6. 教学进度安排:共安排10个课时,具体如下:a. 第1-2课时:航空订票系统概述;b. 第3-4课时:数据库查询与处理;c. 第5-6课时:航空公司运营策略与机票定价机制;d. 第7-8课时:航空订票系统设计;e. 第9-10课时:实践项目指导与展示。
UML 建模设计航订票系统卫飞姓名:班1528级:学号:2一、背景1.1 背景概述随着知识经济的到来,人类已经逐步进入信息化社会,信息增长的速度越来越快,人们希望利用先进的管理理论方法手段来得到并处理越来越多的信息,以提高工作效率和管理水平。
由于信息资源对人们生活的重要性,不断提高信息的收集,传输,加以利用等活动,日益成为人们社会生活的重要组成部分。
网上机票预订管理系统的产生和发展正好满足人们的这种需求1.2 主要组成及功能1、新用户注册,新用户可以注册,注册时输入用户名可以查询用户可不可用,可用就可以注册,注册时可以判断用户输入的密码和验证密码是否相同,相同才给以注册,如果满意可以点注册,注册成功后用户可以选择不用在回到登陆界面,可以直接陆到用户主界面,以后就可以用这个用户登录了,如果不满意,点取消,所有信息清空,重新输入。
2、验证登陆名密码,正确进入主菜单,根据登录时所选的登录方式(客户、管理员)的不同分别对用户设定不同的访问权限(如果是输入的客户用户名和密码正确,选择以客户方式登陆则主界面里面的管理员界面不能用,如果输入的是管理员的相应用户密码正确,以管理员的方式登陆则管理员界面可用)不正确则清空登录框,最多可以输入三次,三次不正确系统会自动关闭3. 我的航班界面。
你可以点击你想查询的有关机票的信息的按钮(舱位信息查询,客机信息查询,航线查询,客户类型信息查询)获得相关信息的表,根据表的内容,你可以在下面的下拉框中选择你要定的票信息,点确定后在下面会显示你的机票的相关内容,如果满意可以点击订票,把相关信息添加到机票数据库表中,如果不满意,可以点重置,所有信息清空,再重新选择。
4. 退票功能。
用户可以根据用户信息表中的我的机票信息查询,找出机票号,在输入到机票号查询里,点击查询获得你的机票信息以及价格显示,点击退票则在数据库机票信息表中删除本条信息二、使用Rose 绘制图分别有:用例图、类图、包图、顺序图、协作图、状态图、活动图、组件图、部署图情景:机票预订系统是某航空公司推出的一款网上选票系统。
航空订票系统设计报告一绪论 1 课题背景及现状............................................................... ......1 开发工具介绍................................................................. ........1 二需求分析............................................................... ........................2 航空售票系统的数据需求数据字典(三) 主要数据流图三概要设计............................................................... ........................6 四逻辑设计............................................................... ........................7 五详细设计............................................................... ........................7 基本查询语句(二) 程序流图中某些加工实现采用IPO 图的方式描述数据库的逻辑结构设计六测试结果............................................................... ......................12 七小结............................................................... (17)(三) 主要数据流图如下:(1)功能模块设计4 主要层次结构图:旅客航班查询各项业务管理界面乘机资料人明细管理售票管理票务管理购送票管理定单信息管理退出点击乘客机组人员送票情况订票情况关闭该界面回到登陆界面客户购票统计航航班增加班删除航班修改查询业务订票业务退票业务售票业务取票业务机场航班查询 5 三概要设计航空订票系统E-R图如下:性别证件号电话旅客类型年龄姓名地址旅客 1 1 订票购买票价 1 n 1 型号姓名订票旅客 1 航班飞机证件号机型舱位n 目的地航班座位飞行航班类型舱位航班号起飞时间 1 座位飞机型号订票日期取票日期航班起飞时间航班号剩余票数目的地票价出发地起飞日期到达时间 6 四逻辑设计根据E-R图和相关要求,把ER模型图转换为关系表,进行数据模型转换,系统用到五个基本表:旅客表;购买表;航班表;飞行表;飞机表将E-R图转换成关系模型,关系的主码用横线标识:旅客购买(旅客证件号,航班,票价) 航班(航班,出发地,目的地,起飞时间,抵达时间,航班类型,剩余票数,票价,起飞日期) 飞行(航班,型号,航程,中转站) 飞机(型号,舱位,座位,航班) 五.详细设计基本查询语句订票业务: 每次当有旅客需要订票时,首先需要对机场的航班情况进行查询,当有符合旅客的航班的机票剩余时旅客可以订票,并记录下旅客的相关信息,用到的SQL 语句为:insert into passenger(姓名,证件号,年龄,性别,旅客类型,地址,电话);然后旅客的订票信息存入数据库,并分配相应的航班和取票信息;退票业务:当有旅客退票时,需要根据录入旅客相关的信息将数据库peopleorder表中相应的记录删除,所用SQL语句为:delete from peopleorder where 姓名=’旅客姓名’,证件号=’旅客证件号码’,状态= ‘买票’; 航班增加/删除/修改业务:当航空公司需要对机场航班情况进行调整时,如增加/删除/修改操作,通过以下SQL语句实现:增加:insert into flight values (‘航班号’,’出发地’,’目的地’,’起飞时间’,’抵达时间’,’航班类型’,’剩余票数’,’票价’,’起飞日期’) 删除:delete from flight where 航班号=’航班号码’; 修改:update flight set [任意属性列]=[修改值] where航班号=’航班号码’; 7 二) 程序流图中某些加工实现采用IPO图的方式描述:“收集旅客信息数据算法”IPO表系统:航空售票作者:孙启欢模块:收集数据算日期: 编号:被调用:取调用:数据模块输入:姓名、性输出:格式化之后别的数据处理:格式化后的各种数据= 格式化局部数据元素:注释:本加工仅采集数据,未进行实质性的数据变换8 (“收集航班信息数据算法”IPO表系统:航空售票作者:孙启欢模块:收集数据算日期:编号:被调用:取调用:数据模块输入:航班,出输出:格式化之后发地,目的地,的数据起飞时间,抵达时间,剩余票数,票价,起飞日期,处理:格式化后的各种数据= 格式化局部数据元素:注释:本加工仅采集数据,未进行实质性的数据变换9 “订票/售票/取票/退票相关数据算法”IPO表系统:航空售票作者:孙启欢模块:审核数据算日期:法编号:被调用:审调用:核数据模块输入:旅客的相输出:订单信息,关信息,飞机/航机票信息班的相关信息处理:订单信息=旅客信息+所购买航班信息+取票信息机票信息=旅客购买航班的详细信息局部数据元素:10 数据库的逻辑结构设计旅客购买(旅客证件号,航班,票价) 航班(航班,出发地,目的地,起飞时间,抵达时间,航班类型,剩余票数,票价,起飞日期) 飞行(航班,型号,航程,中转站) 11 飞机(型号,舱位,座位,航班) 七测试结果在航空售票系统的开发过程中,我完成的模块是需要系统实现如下功能:航班的调整,订票/售票,退票,取票,航班查询测试过程中有如下主要代表性功能界面主要功能界面如下:12 订票客户资料界面订单号创立成功13航班退票系统主界面点击退票当订单号不存在时14 点击查询可知道该订单号的详细信息管理主界面15 航班管理系统管理员可以更新数据库八小结数据库课程设计任务渐渐远去,通过这次课程设计积累的信心与斗志,我开始写这篇文章,为自己的足迹留下哪怕是微不足道但是对自己弥足珍贵的痕迹。
数据结构与算法设计课程设计【设计题目】航空公司订票系统【问题描述】编写一个航空公司订票大厅的一个订票系统,可以在系统中录入并修改各个航班的具体情况,帮助乘客准确的查询各航班的最新信息(包括航班号、航班的起始时间和地点、票价)和各项业务的及时办理(包括订票、退票等)。
该系统用可以用C++的类编写。
【软件功能】1.输入航班信息并保存到磁盘2.浏览航班信息3.修改航班信息并保存到磁盘4.查找航班5.删除航班信息6.订票7.退票【算法思想】1先定义一个乘客基本信息的类包含乘客的、证件号、订票数量及所乘的航班号(注:每个航班有固定的人数限制,若满额则提示其他可供选择的航班。
2建立一个功能类,包括对航班信息和乘客订票信息的录入及修改的函数,其中订票信息采用单链表的顺序存储方式存储。
另外还包括对信息的查询和修改的功能函数,乘客退票的函数。
并将最终的改动结果通过i/O流写入磁盘文件保存。
3编写主函数,对编写的航班系统进行全面测试,对用户界面采用人性化的菜单方式。
【类的设计】定义一个航班的类class plane{friend class customer;//友元类public:void input(); //插入航班信息void print(); //打印航班信息void save(); //保存航班信息void read(); //读取航班信息void search(); //查找航班信息void Delete(); //删除航班信息void book(); //订票void back(); //退票void xiugai(); //修改航班信息private:int num;//航班号char start_place[20];//起点站char arrive_place[20];//终点站char time[10];//起降时间int count;//机票数量}];定义一个顾客信息的类class customer{friend class plane;//友元类protected:I nt id;//号char name[10];//int customer_num;//订票数量public:void read1();//读取数据void save1();//保存数据};【存储结构设计】采用顺序存储结构,利用动态申请空间实现信息的存储。
【模块划分及调用关系】定义了两个类class plane和class customer,分别实现顾客及航班的信息操作。
在两个类的后面分别定义了类中的各个函数。
另外在主函数中分别调用函数,实现各个功能。
【模块流程图】1.主函数main()2.void search()//查询函数3.void book()//订票函数4.void back()//退票函数不存在该用户存在【界面设计】采用人性化的菜单提示语,让用户很容易的操作;【用户手册】用户只需要在vc环境下就可以操作,具体步骤可见菜单提示就可以顺利操作。
另外,再加入、删除、修改航班信息时必须以管理员的身份进去,所以必须要有密码,在这里初始密码事:xinxi0701.您的使用!!1、程序上机调试报告【语法错误及其排除】两个类的公有函数中,在循环嵌套调用时总是受阻,不能执行。
所以我把两个类都定义为相互的有元类。
这样问题就解决了。
【算法错误及其排除】在订票与退票函数中,要核对用户信息如、ID等,开始是自己定义一个函数进行字符间的比较,在调用时总是出现语法错误,最后想到可以用一个函数库中的函数strcmp(char,char).把问题简单化,而且语法错误也解决了。
2、程序测试结果输入您的姓名、ID、要退票数提示:退票成功进入退票系统【测试数据】说明:测试数据都是输入数据,见输出结果。
【输出结果】【程序性能评价】该程序可以查询航班的信息、修改信息,查询顾客的信息,订票、退票等,界面采用人性化的提示,可以让用户很容易的操作。
另外在修改信息、添加航班信息时必须要以管理员的身份进入即必须要有密码才能进入。
保证了系统的安全。
【性能改进方向】该系统在操作中要是不按照菜单的有关提示操作,而进行非法操作,可能会导致系统的死循环。
在这点该系统还有待改进。
【收获及体会】事实总比想象的难,刚开始编写这个程序的时候思路比较清晰。
可是编写的时候遇到了很多难题,譬如将顾客的信息及航班的信息保存到文件中,不知道用那种方式更简便,最后仔细思考,阅读课本资料,选择了用流的形式输出到文件中,感觉用起来特别方便简洁。
完成了程序的编写后又对该程序进行了大量的修改,调试,使程序更加简明,并添加了不少提示用户操作的语句,使用户使用该系统时更加方便。
对自己的这个程序还是比较满意的,可以说已经超出了自己当初的设想。
从编写这个程序的过程中不但发现了许多自己没学明白的地方,而且锻炼了自己的耐心。
刚调试时有很多错误,我逐个仔细的修改、排除,最终成功的完成了调试。
进过这次实习,我更加深刻的体会到,作任何事情要仔细,要静下心来认真思考,只要努力了,必定会有回报。
3、源程序代码#include<iostream.h>#include<string.h>#include<stdio.h>#include<iomanip.h>#include<stdlib.h>#define N 1000 //宏定义class customer;//申明顾客信息类//---------定义航班信息类----------------class plane{friend class customer;//有元类public:void insert(); //加入航班信息void print(); //输出航班信息void save(); //保存航班信息void read(); //读取航班信息void search(); //查找航班信息void Delete(); //删除航班信息void book(); //订票void back(); //退票void xiugai(); //修改航班信息private:int num;//航班号char start[10];//起点站char arrive[10];//终点站char time[20];//起降时间int plane_num;//机票数量}s[N];//------定义顾客信息类---------------------------class customer{friend class plane;//有元类protected:int id;//号char name[20];//int pshu;//用户订票数量public:void read1();//读取数据void save1();//保存数据}yh[N];int i,j;//全局变量int m=0,y=0;//宏定义一个输出#define PRINT s[i].num<<setw(13)<<s[i].start<<setw(13)<<s[i].arrive<<setw(13)<<s[i].time<<setw(13)<<s[i].pl ane_num<<endl //定义输出格式//-------------主函数------------void main(){plane abc;//定义一个航班类的对象int j;do{cout<<" 管理员密码:xinxi0701 "<<endl;cout<<" "<<endl;cout<<" -----------欢迎进入航空订票菜单------------"<<endl; //主界面cout<<"|============================================|"<<endl;cout<<" | 1.新增航班|"<<endl;cout<<" | 2.浏览航班信息|"<<endl;cout<<" | 3.修改航班信息|"<<endl;cout<<" | 4.查找航班信息|"<<endl;cout<<" | 5.删除航班|"<<endl;cout<<" | 6.订票|"<<endl;cout<<" | 7.退票|"<<endl;cout<<" | 0.退出|"<<endl;cout<<" |=====================================|"<<endl;cout<<"请选择(0~7):";cin>>j;switch(j){case 1:abc. insert();//调用插入函数break;case 2:abc.print();//调用打印函数break;case 3:abc.xiugai();//调用修改函数break;case 4:abc.search();//调用查找函数break;case 5:abc.Delete(); //调用删除函数break;case 6:abc.book();//调用订票函数break;case 7:abc.back();//调用退票函数break;case 0:;break;}}while(j!=0); //判断结束cout<<"使用,再见!\n";}//--------------主函数结束---------------//定义类中各个函数void plane::insert()//打印函数{char f[]="xinxi701"; //设置密码char y;cout<<"请输入密码:";cin>>f; //读取密码if(strcmp(f,"xinxi0701")==0){cout<<"--------------------------------------------------------------------------\n";for(i=0;i<N;i++){cout<<"航班号出发地点到达地点起降时间满载人数"<<endl;cout<<"|-------------------------------------------------|"<<endl;cin>>s[i].num>>s[i].start>>s[i].arrive>>s[i].time>>s[i].plane_num;cout<<"|-------------------------------------------------|"<<endl;m++;cout<<"第"<<m<<"个信息已经输入,是否继续(y/n)?";cin>>y;cout<<endl;if(y=='y')continue;else{save();//将结构体信息存盘cout<<"刚刚存盘的信息是:"<<endl;print();//输出输入的航班信息break;}}}elsecout<<"密码错误,您不能使用此项功能,强制推出!!!"<<endl;}void plane::save()//保存函数{FILE *fp,*fp1;//定义文件指针if((fp=fopen("chen.txt","wb"))==NULL)//打开文件并判断是否出错{cout<<"创建文件失败!"<<endl;//出错提示getchar();return;}if((fp1=fopen("hao.txt","wb"))==NULL)//打开文件并判断是否出错{cout<<"创建文件失败!"<<endl;//出错提示getchar();return;}for(i=0;i<m;i++)if(fwrite(&s[i],sizeof(class plane),1,fp)==0)//向文件写入数据,并判断是否出错cout<<"向文件输入数据失败!"<<endl;fprintf(fp1,"%d",m);fclose(fp);//关闭文件fclose(fp1);//关闭文件}//-------------------------------------------void plane::read()//从文件读取信息{FILE *fp,*fp1;//定义文件指针if((fp=fopen("chen.txt","rb"))==NULL)//打开文件,并判断是否出错{cout<<"出现错误,请检查文件是否存在!!";//出错提示getchar();}if((fp1=fopen("hao.txt","rb"))==NULL)//打开文件并判断是否出错{cout<<"创建文件失败!\n\n";//出错提示getchar();return;}fscanf(fp1,"%d",&m);fclose(fp1);//关闭文件for(i=0;i<m;i++){fread(&s[i],sizeof(plane),1,fp);//从文件中读取信息}fclose(fp);//关闭文件}//-----------------------------------void plane::print()//输出函数{char w[10];read();//调用读取文件函数cout<<"航班号起始站终点站时间机票数\n";for(i=0;i<m;i++){cout<<PRINT;//打印信息}cout<<"******************************************** "<<endl;cout<<"///请按任意键返回主菜单///"<<endl;cin>>w;//控制返回主菜单}//-----------------------------------------void plane::search()//查询函数{char name1[10];char name2[12];char ii[10];int n,no;do{cout<<" 欢迎进入查询菜单"<<endl;//查询方式菜单cout<<" "<<endl;cout<<" 1.按航班号查找\n\n"" 2.按终点站查找\n\n"" 3.按航线查找\n\n"" 0.返回"<<endl;cout<<"请选择(0~3):";cin>>n;if(n==0)break;switch(n){case 1:cout<<"请输入航班号:";cin>>no;//航班号break;case 2:cout<<"请输入终点站名称:";cin>>name2;//读取终点站break;case 3:cout<<"请输入起始站名称:\n";cin>>name1;//读取起始站cout<<"请输入终点站名称:\n";cin>>name2;//终点站break;}read();//调用读取函数for(i=0;i<m;i++){if(strcmp(s[i].arrive,name1)==0||strcmp(s[i].arrive,name2)==0)//按终点站起始站判断输出条件{cout<<"\n查找航班信息成功!"<<endl;cout<<"航班号起始站终点站时间机票数"<<endl;cout<<PRINT;//打印信息break;}if(s[i].num==no)//按航班号判断输出条件{cout<<"\n查找航班信息成功!\n";cout<<"航班号起始站终点站时间机票数"<<endl;cout<<PRINT;//打印信息break;}}no=0;//将航班号赋值为0if(i>m)cout<<"该航班不存在,是否继续查找(y/n)?";cin>>ii;}while(strcmp(ii,"y")==0);//判断结束}//------------------------------------void plane::Delete()//删除函数{char name1[10];char name2[12];char ii[12];char f[]="xinxi701";//设置密码int no,n;cout<<"请输入密码:";cin>>f;//读取密码if(strcmp(f,"xinxi0701")==0) //判断密码是否正确{do{cout<<" 欢迎进入删除菜单"<<endl;//删除方式菜单cout<<" "<<endl;cout<<" *1.按航班号删除\n\n"" *2.按航线删除\n\n"" *0.返回"<<endl;cout<<"请选择(0~2)";cin>>n;//读取删除方式if(n==0)break; //跳出循环switch(n){case 1:cout<<"请输入航班号:";cin>>no;//读取航班号read();//调用读取函数break;//跳出循环case 2:cout<<"请输入起始站名称:";cin>>name1;//读取起始站cout<<"请输入终点站名称:";cin>>name2;//读取终点站read();//调用读取函数break;//跳出循环}for(i=0;i<m;i++){if(s[i].num==no||strcmp(s[i].start,name1)==0&&strcmp(s[i].arrive,name2)==0)//判断输入信息是否存在{s[i]=s[m-1];m--;}}cout<<"没有该信息,是否继续删除(y/n):";cin>>ii; //读取是否继续信息save(); //调用读取函数if(!strcmp(ii,"y")) //判断是否继续删除cout<<"请按任意键返回删除菜单!!";break;}while(n!=1&&n!=2&&n!=3&&n!=4&&n!=0); //判断结束}elsecout<<"密码错误,不能使用此项功能,强行退出!!\n\n";}//------------------------------------------------void plane::book()//订票函数{customer abc;int n;char a[12];do{cout<<"各位用户你好!请你先选择您要乘的航班"<<endl;search();abc.save1();abc.read1();y=y+1;cout<<" 欢迎进入订票系统!!!!"<<endl;cout<<"请输入你的ID号:";cin>>yh[y].id;cout<<"请输入你的:";cin>>yh[y].name ;cout<<"请输入您要订的机票数:";fai: cin>>n;//读取所订机票数if(n<=0)goto fai;yh[y].pshu=n;s[i].plane_num=s[i].plane_num-n;abc.save1();save();//调用保存函数cout<<"订票成功!\n\n";break;cout<<"是否继续(y/n)?";//判断是否继续订票cin>>a;}while(!strcmp(a,"y"));//判断结束}//-------------------------------------void plane::back()//退票函数{customer abc;int n;char a[12];do{cout<<"各位用户你好!请你先选择您要退的航班"<<endl;search();cout<<"请输入你的ID:"<<endl;cin>>abc.id;cout<<"请输入你的:"<<endl;cin>> ;cout<<"请输入您要退的机票数目:"<<endl;cin>>n;//输入所退票数if(n<0) //判断票数是否有效{cout<<"请输入有效的机票数!"<<endl;cin>>n;}abc.read1();for(i=0;i<y;i++){if((yh[i].id=abc.id)==0&&strcmp(yh[i].name,)==0)//按终点站起始站判断输出条件{cout<<"该顾客存在!"<<endl;cout<<"号订票数"<<endl;cout<<yh[i].id<<setw(8)<<yh[i].name<<setw(8)<<yh[i].pshu<<endl;//打印信息break;}}for(;i<y;i++){yh[i].id=yh[i+1].id;strcpy(yh[i].name,yh[i+1].name);yh[i].pshu=yh[i+1].pshu;}abc.save1();s[i].plane_num=s[i].plane_num+n;save(); //调用保存cout<<"退票成功!\n\n";cout<<"是否继续(y/n)?";//判断是否继续退票cin>>a;}while(!strcmp(a,"y"));//判断并跳出循环getchar();}//---------------------------------void plane::xiugai() //修改信息函数{class xiu //定义一个类{public:int no;char name1[12];char name2[12];char time[12];int plane_num;}x[1];char j[10];char f[]="xinxi701";//设置密码int n;cout<<"请输入密码:";cin>>f;//读取密码if(strcmp(f,"xinxi0701")==0)//判断是否出错{read();//调用读取do{cout<< " 欢迎进入修改系统"<<endl;cout<< " *1,按航班号修改"<<endl;cout<< " *2,按航线修改"<<endl;cout<<"请选择(1~2)";cin>>n;//读取修改方式switch(n){case 1:cout<<"请输入航班号:";cin>>x[0].no;//读取航班号break;case 2:cout<<"请输入起始站:";cin>>x[0].name1;//读取起始站cout<<"请输入终点站:";cin>>x[0].name2;//读取终点站break;}for(i=0;i<m;i++){if(strcmp(s[i].arrive,x[0].name1)==0&&strcmp(s[i].arrive,x[0].name2)==0)//判断输出条件{cout<<"航班号起始站终点站时间机票数\n";cout<<PRINT;break;}if(s[i].num==x[0].no)//判断输出条件{cout<<"航班号起始站终点站时间机票数\n";cout<<PRINT;break;}}x[0].no=0; //将结构体中的号为零cout<<"请输入新航班号起始站终点站时间机票数"<<endl;cin>>x[0].no>>x[0].name1>>x[0].name2>>x[0].time>>x[0].plane_num;s[i].num=x[0].no;//替换航班号strcpy(s[i].start,x[0].name1);//替换其始站strcpy(s[i].arrive,x[0].name2);//替换终点站strcpy(s[i].time,x[0].time);//替换时间s[i].plane_num=x[0].plane_num;//替换机票数save();//调用保存cout<<"是否继续(y/n)?";cin>>j;}while(strcmp(j,"y")==0); //判断结束}elsecout<<"密码错误,不能使用此项功能,强行退出!!\n\n";}//--------------------------------------------void customer::read1(){FILE *ff,*ff1;//定义文件指针if((ff=fopen("xinx.txt","rb"))==NULL)//打开文件,并判断是否出错{cout<<"出现错误,请检查文件是否存在.";//打印出错提示getchar();}if((ff1=fopen("shu.txt","rb"))==NULL)//打开文件并判断是否出错{cout<<"创建文件失败!"<<endl;//打印出错提示getchar();return;}fscanf(ff1,"%d",&y);fclose(ff1);//关闭文件for(j=0;j<y;j++){fread(&yh[j],sizeof(customer),1,ff);//从文件中读取信息}fclose(ff);//关闭文件}//----------------------------------------void customer::save1()//保存函数{FILE *ff,*ff1;//定义文件指针if((ff=fopen("xinx.txt","wb"))==NULL)//打开文件并判断是否出错{cout<<"创建文件失败!"<<endl;//出错提示getchar();return;}if((ff1=fopen("shu.txt","wb"))==NULL)//打开文件并判断是否出错{cout<<"创建文件失败!"<<endl;//打印出错提示getchar();return;}for(j=0;j<m;j++)if(fwrite(&yh[j],sizeof(class customer),1,ff)==0)//向文件写入数据,并判断是否出错cout<<"向文件输入数据失败!\n\n";fprintf(ff1,"%d",y);fclose(ff);//关闭文件fclose(ff1);//关闭文件}。