飞机订票系统
5-飞机订票系统详细设计说明书

5-飞机订票系统详细设计说明书文档编号:版本号:v1.0详细设计说明书项目名称飞机订票系统项目负责人何柳青本文档编写者何柳青项目开发者计算机081第二组2010年12月4日1.引言1.1编写目的本文档将对《飞机订票系统》的程序进行详细解析,是程序员编写代码的基础。
本文档的读者是设计人员和程序员。
1.2背景开发软件名称:飞机票订系统。
(1)项目任务提出者:中国民航及中国国际旅游开发公司。
(2)项目开发者:何柳靑,陆银琳,李欣纯,单国英,阿依古丽(3)项目与其他软件,系统的关系:该系统采用现代流行WINDOWS操作界面。
是标准的WIN32应用程序,可运行在WIN95 \WIN98 \WinMe \WIN2000 \WINXP \WIN7 \WINNT 等系统平台上的多任务应用程序。
1.3参考资料《软件工程导论》清华大学出版社张海藩编著《实用软件工程》清华大学出版社郑人杰等编著《数据库系统概论(第三版)》高等教育出版社萨师煊王珊等编著《实用软件文档写作》清华大学出版社肖刚等编著《软件工程》第3版人民邮电出版社张海藩等编著2.程序系统的结构本程序每个子系统所包含的单元文件名称及其程序层次结构如表所示,对于特别简单的程序模块,其程序层次结构非常简单,在此从略,仅给出较为复杂的程序层次结构。
2.1运行环境(1) 设备硬件最低要求:内存512MB,硬盘50MB以上(2) 支持软件操作系统:WIN95\WIN98\WinMe\WIN2000\WINXP\WIN7\WINNT等2.2 系统组织结构此飞机订票系统共分为两大模块:后台管理员模块和前台票务员模块。
后台管理员模块功能为航班信息调整,包括增加新航班、删除航班、修改航班信息;前台票务员模块功能为乘客信息管理,订票管理,航班信息查询。
飞机订票系统登录验证乘客信息管理航班信息查询航班信息管理后台管理员验证乘客票务信息修改前台票务员验证乘客基本信息修改按航班号查询按目的地查询按时间查询增加新航班乘客订票修改原有航班订票管理改签删除航班退票乘客基本信息录入图1.飞机订票系统程序层次结构后台管理员管理员登录航班信息管理身份验证增加新航班修改原有航班信息删除航班图2.后台管理员模块程序层次图前台票务员票务员验证乘客信息管理航班查询乘客票务信息修改身份验证乘客基本信息修改按航班号查询按目的地查询按时间查询乘客订票订票管理改签退票乘客基本信息录入图3.前台票务员模块程序层次图3、程序设计说明本说明以航班查询模块中“按目的地查询”功能,航班信息管理模块以及乘客信息管理模块为例进行说明。
飞机订票系统测试报告

飞机订票系统测试报告1. 引言本文档旨在介绍飞机订票系统的测试过程和结果。
飞机订票系统是一款用于用户预订航班机票的在线平台。
通过测试,我们旨在确保系统的功能正常、性能稳定,并且用户能够顺利完成预订流程。
2. 测试环境为了对系统进行全面的测试,我们搭建了以下测试环境:•操作系统:Windows 10•浏览器:Google Chrome,Mozilla Firefox•设备:台式电脑,笔记本电脑,手机(Android,iOS)•网络环境:LAN,WLAN,4G网络3. 测试目标我们的测试目标主要包括以下几个方面:•功能测试:确保系统的各项功能正常运作,包括用户注册、登录、查询航班信息、预订机票等。
•兼容性测试:在不同的操作系统、浏览器和设备上测试系统的兼容性,确保用户可以在不同的环境中正常使用系统。
•性能测试:通过模拟多用户同时访问、查询航班和预订机票,测试系统的性能稳定性和响应速度。
•安全性测试:检查系统的安全性,防止潜在的数据泄露和非法访问。
4. 测试步骤为了对系统进行全面的测试,我们按照以下步骤进行测试:4.1 用户注册和登录功能测试1.打开系统主页,点击注册按钮进入注册页面。
2.输入有效的用户名、密码和邮箱地址,点击注册按钮完成注册。
3.使用注册的用户名和密码,尝试登录系统。
4.验证登录是否成功,检查是否能够正常浏览个人信息页面。
4.2 航班查询功能测试1.登录系统后,点击航班查询按钮进入查询页面。
2.输入有效的出发地、目的地和日期,点击查询按钮进行航班搜索。
3.检查系统是否能够正确地显示符合条件的航班信息。
4.选择一条航班信息,尝试获取详细信息。
4.3 机票预订功能测试1.在航班查询结果页面,选择一条符合条件的航班信息。
2.输入乘客信息和联系方式,点击预订按钮进行机票预订。
3.检查系统是否成功生成订单,并显示预订成功的提示信息。
4.登录用户的邮箱,确认是否收到预订成功的邮件通知。
4.4 兼容性测试在不同的操作系统、浏览器和设备上测试系统的兼容性,包括:•操作系统:Windows,macOS,Linux•浏览器:Google Chrome,Mozilla Firefox,Safari•设备:台式电脑,笔记本电脑,手机(Android,iOS)4.5 性能测试1.使用性能测试工具,模拟多用户同时访问系统。
机票预订系统(详细设计说明书

1.1 编写目的 (2)1.2背景 (2)1。
3定义 (2)1.4 参考资料 (3)...................................................................................................................................................................................................3 。
1 程序描述 (4)3.2功能 (5)3 。
3 性能 (5)3。
4 输人项 (5)3.5 输出项 (6)3 。
6 算法 (6)3。
7 流程逻辑 (7)3.8接口 (8)3.9 存储分配 (9)3 。
10 注释设计 (9)3.11 限制条件 (9)3.12 测试计划 (9)3.13 尚未解决的问题 (9)...........................................................................................4 。
1 程序描述 (9)4.2功能 (10)4.3 性能 (10)4 。
4 输人项 (10)4 。
5 输出项 (10)4.6算法 (11)4.7 流程逻辑 (11)4.8 接口 (12)4.9 存储分配 (13)4 。
10 注释设计 (13)4 。
11 限制条件 (13)4 。
12 测试计划 (13)4 。
13 尚未解决的问题 (13)在本机票预定系统项目的前一阶段,也就是概要设计阶段中,已经将系统用户对本系统的子模块功能做了详细的阐述,这些模块功能具体设计将在本报告中详尽得以叙述及阐明.本阶段已在系统的概要设计的基础上,对机票预定系统做详细设计。
主要解决了实现该系统程序模块具体设计问题。
包括确定算法,数据结构,模块接口的使用,数据库的动态操作以及界面设计等。
航空订票系统分析需求报告

航空订票系统分析需求报告1252355 1.编写目的及背景1.1编写目的1.本文档旨在从技术、经济、操作等方面综合研究分析机票预订系统的需求和各模块需要实现的具体要求,尽可能多地考虑在往后研发进程中可能出现的问题,为往后的概要设计和详细设计打基础2.便于用户、系统分析人员和程序员对需求进行理解和交流,初步判定目标软件可否知足其原来的期望,并可作为系统分析员设计软件的大体起点;3.确立可测试标准,用于软件开发完成后测试产品。
4.预期的读者和阅读建议:项目领导,项目组成员:须将本文档的全数内容理解清楚。
测试人员:主要阅读本文中详细的需求部份。
客户:需明确所有的需求分析是不是符合自己提出的要求。
1.2背景说明:1.软件系统名称:航空机票预订系统。
2.任务提出者:XX航空公司3.用户:XX航空公司,各大订票点4.实现:XX航空公司计算中心1.3概念结构化语言:将加上的控制结构就成了结构化语言。
数据库:依照数据结构来组织、存储和管理数据的仓库。
旅客信息:旅客提出订票要求时输入的信息,包括姓名、性别、工作单位、身份证号码(护照号码)、旅行时间、旅行始发地和目的地,航班舱位要求等。
取票通知:旅客取票凭证。
账单:旅客取票和交易的凭证。
机票:旅客登机凭证。
2任务概述2.1目标1.|开发用意:为方便旅客订票,提高工作效率,在技术、经济可行的条件下开发目标软件。
2.应用目标:接收预定机票的旅客信息(姓名、性别、工作单位、身份证号码(护照号码)、旅行时间、旅行始发地和目的地,航班舱位要求等)。
为旅客安排航班。
当旅客交付了预订金后,系统打印出取票通知和帐单给旅客。
旅客在飞机起飞前一天凭取票通知和帐单交款取票,系统查对无误即打印出机票给旅客。
能够及时对于航班售票情况进行统计。
3.作用范围:xx航空公司所有订票点。
4.目标软件作为航空公司内部管理系统的一部份,与其他软件的关系如下:航空公司管理系统订票管航班员工管设备管管理2.2用户的特点1.利用本软件人员要求有必然计算机基础的人员,系统管理员要求有计算机的专业知识,所有人员都要通过本公司培训.2.管理人员也需经一般培训.3.系统管理员,审计员将进行专业培训,以保证他们将熟练管理本系统.4.目标软件的预期利用频度:二十四小时不按期利用。
飞机订票系统策划书3篇

飞机订票系统策划书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. 技术风险:关注技术发展趋势,及时解决技术难题。
飞机订票系统

飞机订票系统学生姓名:兰海军指导老师:易禹摘要本系统主要是为了方便用户飞机订票,能使用户方便快捷的了解各航线信息。
本系统设置了航线创建功能、浏览航班信息和查询航线信息功能、订票退票功能及查看剩余票数功能。
在该系统当中,系统开发平台是Windows XP,程序设计设计语言采用Visual C++,数据库采用Microsoft Access,程序运行平台为Windows XP。
程序通过调试运行,初步实现了设计目标,并且经过适当完善后,将可以在应用中解决实际问题。
关键词 Access;Visual C++;飞机订票目录1问题描述与分析...................................... 2 2数据结构设计描述 .................................... 3 3软件结构设计(系统功能模块图) ....................... 3 4算法设计思想 ....................................... 3 5调试分析 ........................................... 6 6总结 .............................................. 12 7参考文献 .......................................... 13 8附录(源程序清单) (14)飞机订票系统第 2 页共 30 页1问题描述与分析飞机订票系统要求可以实现如下功能:可以录入航班情况,可以查询某个航线的情况,如输入飞机到达城市,查询飞机航班情况;可以订票、退票。
从问题的描述分析,该飞机定票系统必须具备以下几个功能模块:1) 航线创建功能模块:包括终点站名、航班号、分机号、飞行日期、乘员定额、及余票量,准载人数等信息.。
2) 浏览航班信息功能模块:查看创建的所有航线信息。
飞机订票系统 课程设计 doc

飞机订票系统课程设计1. 引言飞机订票系统是一种为用户提供在线预订航班、选择座位以及支付机票的系统。
该系统可以方便用户进行航班查询、订票和退票等操作,提供了更便捷的服务,节省了用户的时间和精力。
本文档将详细介绍飞机订票系统的功能需求、系统设计以及实现细节,旨在为系统的开发提供一份可行的设计方案。
2. 需求分析2.1 功能需求系统需要提供以下功能: 1. 用户注册和登录:用户可以通过注册和登录功能完成对个人信息的维护。
2. 航班查询:用户可以根据出发日期、出发地、目的地等条件查询航班信息。
3. 机票预订:用户可以选择心仪的航班并进行预订,选择座位和支付机票费用等操作。
4. 机票退订:用户可以在一定时间范围内申请退票,并按照规定的退票政策进行退款。
5. 个人中心:用户可以在个人中心查看已购买的机票信息、修改个人信息和密码等个人操作。
6. 管理员功能:管理员可以对航班信息进行维护,包括添加、修改和删除航班信息。
2.2 性能需求系统需要满足以下性能需求: 1. 快速响应:系统需要能够在用户请求时迅速响应并返回结果,以提供良好的用户体验。
2. 高并发处理:系统需要能够同时处理多个用户的请求,以应对高并发访问的需求。
3. 数据安全性:系统需要采取有效措施确保用户个人信息的安全性,防止数据泄露和篡改。
3. 系统设计3.1 系统架构该系统采用客户端-服务器架构,客户端负责与用户进行交互,服务器负责处理用户请求并返回相应的结果。
客户端和服务器之间通过网络进行通信。
3.2 数据库设计系统的主要数据存储在数据库中,包括用户信息、航班信息和订单信息等。
数据库设计需满足以下几个方面的需求: 1. 用户信息表:包括用户ID、用户名、密码、邮箱等字段。
2. 航班信息表:包括航班ID、出发日期、起飞时间、出发地、目的地、航班号等字段。
3. 订单信息表:包括订单ID、用户ID、航班ID、座位号、订票时间、支付状态等字段。
3.3 界面设计系统需要提供一系列界面供用户进行操作。
飞机订票系统程序设计_课程设计

将航班地剩余票数加上去以显示即时航班信息.
模块分工:
进入系统菜单、输出航班信息、订票信息由刘妍负责
输入航班信息、保存航班信息、读取航班信息由龚媛负责
查询航班信息、退票信息、修改信息部分由郭勇艳负责
3、详细设计
系统程序结构(流程图)
謀荞抟箧飆鐸怼类蒋薔。
录入信息系统流程图
printf ("\t\t ~本系统由、、编写完成~ \n\n")。
printf ("\t\t ~(*^__^*)~ \n\n")。
printf ("\t\t\t用户登录\n\n")。
for(k=0。k!=3。) //打开文件并判断綾镝鯛駕櫬鹕踪韦辚糴。
{
printf("\t\t\t\t用户名:")。//打印用户名驅踬髏彦浃绥譎饴憂锦。
printf("请在0-6中选择以回车键结束:\n")。
scanf("%d",&j)。
switch(j)
{
case 1: input()。//调用输入模块
break。
case 2:print()。//调用打印模块
break。
case 3:correct()。//调用修改模块
break。
case 4:search()。//调用查询模块
do
{
printf(" 1.录入航班信息\n")。籟丛妈羥为贍偾蛏练淨。
printf(" 2.浏览航班信息\n")。預頌圣鉉儐歲龈讶骅籴。
printf(" 3.修改航班信息\n")。渗釤呛俨匀谔鱉调硯錦。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程设计报告课程设计名称数据结构课程设计专业计算机科学与技术班级学号姓名指导教师成绩2012年2月26日数据结构课程设计——《飞机票票订票管理》目录目录 (ii)第1章软件的需求分析 (3)1.1软件达到的目的 (3)1.2 软件功能说明 (3)1.2.1 功能分析说明图 (3)第2章软件概要设计 (4)2.1 软件模块的总体设计 (4)2.2 软件设计详细内容 (4)2.2.1 采用的主要数据结构类型 (4)2.2.3 主要流程图 (4)第3章设计的详细说明及关键代码分析 (17)3.1 设计的详细说明 (17)3.2 关键代码分析和说明 (17)3.3测试说明 (18)第4章程序运行 (19)4.1程序运行 (19)参考文献................................................................... 总结.......................................................................第1章软件的需求分析1.1软件达到的目的通过此系统可以实现如下功能1)录入:可以录入航班情况(数据可以存储在一个数据文件中,数据结构、具体数据自定)2)查询:可以查询某个航线的情况(如,输入航班号,查询起降时间,起飞抵达城市,航班票价,票价折扣,确定航班是否满仓);可以输入起飞抵达城市,查询飞机航班情况;3)订票:(订票情况可以存在一个数据文件中,结构自己设定)可以订票,如果该航班已经无票,可以提供相关可选择航班;4)退票:可退票,退票后修改相关数据文件;客户资料有姓名,证件号,订票数量及航班情况,订单要有编号。
5)修改航班信息:当航班信息改变可以修改航班数据文件1.2 软件功能说明1.2.1 功能分析说明图该软件功能分析说明图如1-1所示:图1-1第2章软件概要设计2.1软件模块的总体设计编写一个飞机订票系统的程序,使该系统能够实现对航班信息的录入、浏览、排序、查询以及订票、退票的功能。
根据题目要求,首先要制作一个主菜单显示出各个操作的提示可供用户选择,进而一步步地深入操作。
根据主菜单的内容再进一步编制具体操作的函数,各个功能均用专门编制的函数来完成。
这就是看到题目后的最初的思路。
2.2 软件设计详细内容2.2.1 采用的主要数据结构类型头文件包含、全局变量定义和结构体定义源代码:#include<stdio.h> //标准输入、输出头文件#include<string.h> //包含字符串函数处理头文件#include<process.h> //包含access函数的头文件#define N 1000 //定义最多的航班数#define PRINT “%d\t\t%s\t\t%s\t星期%s\t\%d\n”,s[i].nums[i].starts[i]. over,s[i]. time,s[i]. .count //宏定义输出格式struct air //定义结构体数组{int num; //定义航班号char start[20]; //航班起始站char over[20]; //航班终点站char time[10]; //飞行时间int count; //机票数量}s[N];int i,m=0; //定义全局变量,记录下航班信息的数量char ii[10]; //用来选择是否继续的变量2.3(1)menu如图2-1(2)enter 函数流程图如图2-2(3)input如图2-3(4)browse 如图2-4(5)menu1如图(6)如图(7)如图(8)如图如图(11)back 如图2-11(12)save(13)3.1 设计的详细说明程序中各个模块之间的调用方式主要是通过文件的包含和函数的调用实现的,用文件的形式把各个函数分开,再用头文件把它们包含进来,使用主函数进行调用。
3.2 关键代码分析和说明1) 定义系统初始化函数模块功能:设立一个初始化函数来得到航班信息。
具体设计是第一次运行程序时自动生成保存航班信息的文件,并输入初始航班信息,待第二次开始就可以直接读取该文件获得已有的航班信息并可直接使用。
运用了access函数判断文件是否存在。
该函数源代码为:void chushihua() //初始化函数{if(access("hangban.dat",0))build();elseread();}2)定义建立新数据文件的函数系统初始化后,没有寻找到数据文件,则进行新建数据文件,此函数的作用就是进行新建文件数据的录入。
运用到了文件指针的定义FILE *fp,文件的打开fopen和关闭fclose、成块读写函数中的fwrite;运用for循环进行各组数据的输入,用m++记录下输入的航班数量,并运用if语句判断是否输入下一条航班信息,若不继续则返回主界面。
3)定义读取文件内航班信息的函数系统初始化之后,若原始数据文件存在,则进行文件内航班信息的读取,以供接下来程序中的各个函数来使用。
在该函数中同样运用到了文件指针FILE *fp、文件的打开fopen和关闭fclose、成块读写函数中的fread、文件结束检测函数feof同时配合while语句控制文件的读取;m++记录下读取到的航班数量等。
4)定义保存函数因为在飞机订票系统中涉及到飞机的订票和退票业务,还有按航班号的排序功能,所以我就定义了这个保存函数来保存下每次运行系统后对整个订票系统涉及到的资料的修改。
为了简便程序,我就准备将此函数放在整个系统得推出选项中,这样就只在每次退出系统的时候进行一次保存,将此次对文件修改的所有新信息都一次保存下来。
这样就实现了整个系统运行时进行一次读取,推出时一次保存的设计,大大简便了文件的调用和读取。
保存函数运用到的知识点与读取函数大致相同。
此函数的源代码为:有关文件读取、写入和保存的函数定义完了就开始设计与题目要求直接相关的函数了。
5)定义订票业务函数在这个函数中首先调用了search函数查找需要订票的航班。
运用if语句实现订票时的多种情况:订票数输入不正确、飞机票数不足等情况。
订票成功时运用s[i].count=s[i].count-n;将已被订的机票数减去,以显示新的即时航班信息6)定义退票业务函数:与订票函数相类似,只做稍稍修改就行退票成功是用s[i].count=s[i].count+n; 将航班的剩余票数加上去以显示即时航班信息。
7)定义主函数主函数主要就是提供系统的主菜单界面供用户选择。
运行主函数时首先调用chushihua函数判定数据文件是否存在、是否要进行初始航班信息输入;若已存在则进入主界面菜单供用户选择,运用swich语句对用户的不同选择来调用各功能的函数。
并用do…while语句循环实现能够让用户进行多次的选择。
3.3测试说明调试过程中曾经遇到过一些问题,但是也不多,遇到过:订票或退票的时候不能将剩余的票数加上和减去。
后来经过详细的检查与对照课本知识点找出了相应的错误点,经过修改加入票数加减语句,再经过与保存函数的配合后实现了题目要求的功能。
调试成功。
第4章程序运行4.1程序运行进入程序菜单界面如图4-1图4-1查询航班界面如图4-2图4-2订票过程界面如图4-3图4-3飞机售票操作界面如图4-4图4-4退票系统界面如图4-5图4-参考文献1.《数据结构 C语言》严蔚敏清华大学出版社2.《c语言程序设计》谭浩强清华大学出版社3.《数据结构》高教出版社4.《数据结构习题》李春保清华大学出版社5.《数据结构习题》严蔚敏清华大学出版社6.《c语言与数据结构》王立柱清华大学出版社7.《数据结构(C语言篇)习题与解析》李春葆清华大学出版社总结经过此次的课程设计,可以很明确的了解到自己哪些知识点掌握的比较好,哪些知识点运用的还不够熟练。
通过此次课程设计也学会综合运用理论知识来分析和解决实际问题的能力、养成严谨的科学态度和良好的程序设计习惯,实现由知识向智能的初步转化;学会遵循软件开发过程的基本规范,运用结构化程序设计的方法,按照课程设计的题目要求,并与同组成员共同完成设计、编写、调试和测试应用程序及编写文档的任务。
学生:2012年2月25日指导教师签字:年月日源代码#include <stdio.h>#include <string.h>#include <stdlib.h>#define N 1000typedef struct plane{char ID[10]; /*航班代号*/char BePlace[10];/*飞机起飞地点*/char EnPlace[10];/*飞机降落终点*/char data[15];/*飞机起飞时间*/int max;/*飞机最大乘客人数*/int price;/*飞机票价*/int num;/*飞机已售票数*/}PLANE;PLANE ti[N];int n;/*当前的航班数目*/void menu();void menu1();void input(int i){printf("请输入航班代号:\n");scanf("%s",ti[i].ID);printf("请输入起飞地点:\n");scanf("%s",ti[i].BePlace);printf("请输入降落地点:\n");scanf("%s",ti[i].EnPlace);printf("请输入起飞时间:\n");scanf("%s",ti[i].data);printf("请输入航班的最大载客人数:\n");scanf("%d",&ti[i].max);printf("请输入航班的票价:\n");scanf("%d",&ti[i].price);ti[i].num=0;}void enter(){int i;system( "cls" );printf("请输入航班的数目(0-%d)?:",N);scanf("%d",&n); /*要输入的记录个数*/ printf("\n请输入数据\n\n");for(i=0;i<n;i++){printf("\n请输入第 %d 航班记录.\n",i+1);input(i); /*调用输入函数*/ }getchar();menu();}void printf_one(int i) /*显示一个记录的函数*/{printf("%11s %6s %10s %6s %6d %6d %6d",ti[i].ID,ti[i].BeP lace,ti[i].EnPlace,ti[i].data,ti[i].price,ti[i].max,ti[i].num);}void browse(){int i;system( "cls" );puts("\n--------------------------------------------------------------------");printf("\n\t航班代号起飞地点降落地点起飞时间票价最大乘客已售票数\n");for(i=0;i<n;i++){printf_one(i);printf("\n");}getchar();getchar();menu();}void order() /*排序模块(按平均成绩)*/{int i,j;struct plane s;system( "cls" );for(i=0;i<n;i++) /*冒泡法排序*/{for(j=i+1;j<n;j++)if(strcmp(ti[i].data,ti[j].data)>0){s=ti[i];ti[i]=ti[j];ti[j]=s;}}browse();}void search_time(){int i,m=0;struct plane s;system( "cls" );printf("\n\nEnter the time:");scanf("%s",s.data); /*输入出发的时间*/puts("\n--------------------------------------------------------------------");printf("\n\t航班代号起飞地点降落地点起飞时间票价最大乘客已售票数\n");for(i=0;i<n;i++){if(strcmp(s.data,ti[i].data)==0){m++;if((m!=0)&&(m%10==0)) /*目的是分屏显示*/{printf("\n\nPress any key to contiune . . .");getchar();puts("\n\n");}printf_one(i);printf("\n");/*调用显示一个记录的函数*/}}puts("\n--------------------------------------------------------------------");getchar(); /*按任意健*/getchar();menu1();}void serch_end(){int i,m=0;struct plane s;system( "cls" );printf("\n\nEnter the end Place:");scanf("%s",s.EnPlace); /*输入要到达的地方*/puts("\n--------------------------------------------------------------------");printf("\n\t航班代号起飞地点降落地点起飞时间票价最大乘客已售票数\n");for(i=0;i<n;i++){if(strcmp(ti[i].EnPlace,s.EnPlace)==0){m++;if((m!=0)&&(m%10==0)) /*目的是分屏显示*/{printf("\n\nPress any key to contiune . . .");getchar();puts("\n\n");}printf_one(i);printf("\n");/*调用显示一个记录的函数*/}}puts("\n--------------------------------------------------------------------");getchar(); /*按任意健*/getchar();menu1();}void menu1(){int n,w1;do{system( "cls" ); /*清屏*/puts("\t\t\t\t 飞机售票操作!\n\n");puts("\t\t*********************MENU*********************\n\n");puts("\t\t\t\t1.按照时间排序");puts("\t\t\t\t2.按照时间查找航班");puts("\t\t\t\t3.按照地点查找航班");puts("\t\t\t\t4.返回主菜单");puts("\n\n\t\t**********************************************\n");printf("Choice your number(1-4): [ ]\b\b");scanf("%d",&n);if(n<1||n>4) /*对选择的数字作判断*/{w1=1;printf("your choice is not between 1 and 4,Please inputagain:");getchar();getchar();}else w1=0;} while(w1==1);/*选择功能*/switch(n){case 1:order();break;case 2:search_time();break;case 3:serch_end();break;case 4:menu();break;}}int search() /*查找模块*/{int i,k;struct plane s;k=-1;system( "cls" );printf("\n\n请输入要订票的起飞地点:");scanf("%s",s.BePlace); /*输入要到达的地方*/printf("\n\n请输入要订票的降落地点:");scanf("%s",s.EnPlace);printf("\n\n请输入要订票的起飞时间:");scanf("%s",s.data); /*输入出发的时间*/for(i=0;i<n;i++) /*查找要修改的数据*/{if(strcmp(s.BePlace,ti[i].BePlace)==0&&strcmp(s.EnPlace,ti[i].EnP lace)==0&&strcmp(s.data,ti[i].data)==0){k=i; /*找到要修改的记录*/printf_one(k);break; /*调用显示一个记录的函数*/ }}if(k==-1){printf("\n\nNO exist!");return -1;}elsereturn k;}void book(){int i;system( "cls" );printf("欢迎进入售票窗口!\n");i=search();if(i!=-1){if(ti[i].num>=ti[i].max){printf("\n该趟航班票已售完!");}else{ti[i].num++;printf("\n订票成功!\n");}}elseprintf("该航班不存在!\n");getchar();getchar(); /*按任意健*/menu();}void back(){int i,k=-1;struct plane s;system( "cls" );printf("欢迎进入退票窗口!\n");printf("\n\n输入航班代号:");scanf("%s",s.ID); /*输入要到达的地方*/for(i=0;i<n;i++) /*查找要修改的数据*/{if(strcmp(s.ID,ti[i].ID)==0){k=i; /*找到要修改的记录*/printf_one(k);break; /*调用显示一个记录的函数*/ }}if(k==-1){printf("\n\nNO exist!");}else{ti[i].num--;printf("\n退票成功!\n");}getchar(); /*按任意健*/getchar(); /*按任意健*/menu();}void save(){int w=1;FILE *fp;int i;system( "cls" );if((fp=fopen("D:\\我的文档\\桌面\\ticket.txt","wt"))==NULL) /*以输出打开方式,在此前的记录被覆盖*/{printf("\nCannot open file\n");return ;}for(i=0;i<n;i++)if(fwrite(&ti[i],sizeof(struct plane),1,fp)!=1){printf("file write error\n");w=0;}if(w==1){printf("file save ok!\n");}fclose(fp);getchar();getchar();menu();}void load(){FILE *fp;int i,w;w=1;system( "cls" );if((fp=fopen("D:\\我的文档\\桌面\\ticket.txt","rt"))==NULL){printf("\nCan not open file\n");w=0;return;}n=0;for(i=0;!feof(fp);i++){fread(&ti[i],sizeof(struct plane),1,fp);n++;}n=n-1;fclose(fp);if(w==1)printf("Load file ok!");getchar();getchar();menu();}void menu(){int n,w1;do{system( "cls" ); /*清屏*/ /*清屏*/puts("\t\t\t\t 飞机售票管理系统!\n\n");puts("\t\t*********************MENU*********************\n\n");puts("\t\t\t\t1.输入新航班");puts("\t\t\t\t2.查询");puts("\t\t\t\t3.航班操作");puts("\t\t\t\t4.订票");puts("\t\t\t\t5.退票");puts("\t\t\t\t6.保存");puts("\t\t\t\t7.载入");puts("\t\t\t\t8.退出");puts("\n\n\t\t**********************************************\n");printf("Choice your number(1-8): [ ]\b\b");scanf("%d",&n);if(n<1||n>8) /*对选择的数字作判断*/{w1=1;printf("your choice is not between 1 and 8,Please input enter to choice again:");getchar();getchar();}else w1=0;} while(w1==1);/*选择功能*/switch(n){case 1:enter();break; /*输入模块*/case 2:browse();break; /*浏览模块*/case 3:menu1();break; /*查找模块*/case 4:book();break; /*订票模块*/case 5:back();break; /*退票模块*/case 6:save();break; /*保存模块*/case 7:load();break; /*加载模块*/case 8:exit(0);}}void main(){menu();}。