航空客运订票系统的设计与实现

合集下载

航空订票系统设计开题报告

航空订票系统设计开题报告

毕业设计开题报告课题名称:航空订票系统的设计与实现学生姓名:龙慎鹏指导教师:周常所在院系:通信工程学院专业名称:电力通信2017年2月22日毕业设计(论文)开题报告文献综述数据库管理系统是一种操纵和管理数据库的大型软件,用于建立、使用和维护数据库,简称DBMS。

它对数据库进行统一的管理和控制,以保证数据库的安全性和完整性。

用户通过DBMS访问数据库中的数据,数据库管理员也通过dbms进行数据库的维护工作。

它可使多个应用程序和用户用不同的方法在同时或不同时刻去建立,修改和询问数据库。

大部分DBMS提供数据定义语言DDL(Data Definition Language)和数据操作语言DML(Data Manipulation Language),供用户定义数据库的模式结构与权限约束,实现对数据的追加、删除等操作。

数据库管理系统是数据库系统的核心,是管理数据库的软件。

数据库管理系统就是实现把用户意义下抽象的逻辑数据处理,转换成为计算机中具体的物理数据处理的软件。

有了数据库管理系统,用户就可以在抽象意义下处理数据,而不必顾及这些数据在计算机中的布局和物理位置。

所有数据库(除最简单的)中都有复杂的数据关系及其链接。

处理与创建,访问以及维护数据库记录有关的复杂任务的系统软件包叫做数据库管理系统(DBMS)。

DBMS软件包中的程序在数据库与其用户间建立接口。

(这些用户可以是应用程序员,管理员及其他需要信息的人员和各种操作系统程序)DBMS可组织、处理和表示从数据库中选出的数据元。

该功能使决策者能搜索、探查和查询数据库的内容,从而对正规报告中没有的,不再出现的且无法预料的问题做出回答。

这些问题最初可能是模糊的并且(或者)是定义不恰当的,但是人们可以浏览数据库直到获得所需的信息。

简言之,DBMS将“管理”存储的数据项和从公共数据库中汇集所需的数据项用以回答非程序员的询问。

[1][8][9]DBMS由3个主要部分组成:(1)存储子系统,用来存储和检索文件中的数据;(2)建模和操作子系统,提供组织数据以及添加、删除、维护、更新数据的方法;(3)用户和DBMS之间的接口。

基于Java和数据库系统设计的航空售票系统

基于Java和数据库系统设计的航空售票系统

基于Java和数据库系统设计的航空售票系统
航空售票系统是一个基于Java和数据库系统设计的系统,旨在为机票购买和管理提供便捷的服务。

本文将介绍系统的设计目标、功能模块和技术实现。

设计目标:
1. 提供用户注册和登录功能,方便用户查询和购买机票;
2. 提供航班查询功能,用户可以通过输入起始地、目的地和日期来查询符合条件的航班;
3. 提供机票购买功能,用户可以选择符合条件的航班,并进行机票购买;
4. 提供订单管理功能,用户可以查看自己的订单、取消订单或申请退款;
5. 提供系统管理功能,管理员可以管理航班、用户和订单等信息。

技术实现:
1. 前端界面使用Java Swing或JavaFX实现,包括用户登录、航班查询、机票购买和订单管理等页面;
2. 后端使用Java编写,通过与前端交互处理用户请求,包括用户注册、登录验证、航班查询和订单管理等功能;
3. 数据库采用关系型数据库(如MySQL)存储用户信息、航班信息和订单信息等数据;
4. 使用JDBC或ORM框架(如Hibernate)进行数据库访问,实现对数据库的增删改查操作;
5. 使用Java的网络编程实现与支付接口的交互,包括提交订单、支付和退款等操作;
6. 使用加密算法保证用户密码和敏感数据的安全性;
7. 使用版本控制工具(如Git)管理代码的开发和迭代。

基于Java和数据库系统设计的航空售票系统可以方便用户查询和购买机票,并提供订单管理和系统管理功能,实现了用户和管理员的交互操作,并通过技术手段保证数据的安全性。

航空客运订票系统—VC毕业设计(论文)

航空客运订票系统—VC毕业设计(论文)

航空客运订票系统—VC毕业设计(论文) 航空客运订票系统 1 问题描述航空客运订票的业务活动包括:查询航线、客票预订和办理退票等。

试设计一个航空客运订票系统,以使上述业务可以借助计算机来完成。

1.1 每条航线所涉及的信息有:终点站名、航班号、飞机号、飞行周日(星期几)、乘员定额、余票量、已订票的客户名单(包括姓名、订票量、舱位等级1,2或3)以及等候替补的客户名单(包括姓名、所需票量)1.2 作为示意系统,全部数据可以只放在内存中1.3 系统能实现的操作和功能如下:1.3.1 查询航线:根据旅客提出的终点站名输出下列信息:航班号、飞机号、星期几飞行,最近一天航班的日期和余票额1.3.2 承办订票业务:根据客户提出的要求(航班号、订票数额)查询该航班票额情况,若尚有余票,则为客户办理订票手续,输出座位号;若已满员或余票额少于订票额,则需重新询问客户要求。

若需要,可登记排队候补 1.3.3 承办退票业务:根据客户提供的情况(日期、航班),为客户办理退票手续,然后查询该航班是否有人排队候补,首先询问排在第一的客户,若所退票额能满足他的要求,则为他办理订票手续,否则依次询问其他排队候补的客户 2 概要设计2.1 存储结构设计typedef struct Al_Custom //已订票客户{char name[15];//姓名int count;//订票量int level;//舱位等级Al_Custom *next;//下一节点指针}Al_Custom,*Al_CustomLink;typedef struct Wait_Custom//等候替补的客户{char name[15];//姓名int count;//所需票量Wait_Custom *next;//下一节点指针 }Wait_Custom; typedef struct Wait_Queue//等待队列 {Wait_Custom *front;//队列头指针Wait_Custom *rear;//尾指针 }Wait_Queue; typedef struct Flight//航线{char terminus[15];//终点站名char flight_no[10];//航班号char plane_no[10];//飞机号int week;//飞行周日int count;//乘客定额int rest;//余票量Al_CustomLink Al_link;//指向成员名单链表的头指针Wait_Queue wait_queue;//等待替补队列 }Flight;2.2 主要算法设计2.2.1 主程序模块:void main(){初始化;do{接受命令;处理命令;}while(命令!="退出");}2.2.2 查询航线模块——实现查询功能 void findFlight() { 提示输入要查询航线的终点站名;如果存在该航线,则输出该航线信息;否则提示不存在该航线;}2.2.3 承办订票业务模块——实现订票功能 void dingpiao() {提示输入航班号和订票数;若不存在该航班号,则提示不存在该航线;否则{如果有余票,则办理业务;否则提示没有足够的余票,询问是否候补;若是,则排队候补;}}2.2.4 承办退票业务模块——实现退票功能 void tuipiao() {提示输入航班号和飞行周日;确认航班号和飞行周日都存在,并且客户有订票,则 {执行退票;为排队候补的客户办理订票业务;}否则{提示有误}}2.3 测试用例设计2.3.1 航线3条:1001 hp001 shanghai 2 501002 hp002 beijing 5 501003 hp003 guangzhou 7 502.3.2 查询航线:shanghai2.3.3 承办订票业务:航班号1001 数额30 姓名chengangjie 舱位等级22.3.4 承办订票业务:航班号1001 数额23 姓名zhenxi 舱位等级32.3.5 承办退票业务:姓名chengangjie 航班号1001 飞行周日2 2.3.6 查询航线:终点站名:shanghai3 调试分析3.1 本次的设计比较困难,需要实现较多的功能,所以在调试过程中不太顺利,主要是指针的修改。

基于C语言的航空订票系统的设计与实现

基于C语言的航空订票系统的设计与实现

武汉理工大学华夏学院课程设计课程名称数据结构题目基于C语言的航空订票系统的设计与实现 ----订票模块专业软件工程班级软件1111班姓名.成绩指导教师黄启荃2012 年6月18日至2012年6月21日课程设计任务书设计题目:基于C语言的航空订票系统的设计与实现----订票模块设计目的1.学会分析研究数据对象的特性;2.学会数据的组织方法;3.选择合适的数据的逻辑结构和存储结构以及相应操作,把现实世界中的问题转换为计算机内部的表示和处理;4.提高学生的程序设计能力、提高算法设计质量与程序设计素质;设计任务(在规定的时间内完成下列任务)本项目旨在通过一个简化的航空订票系统项目,使学生在完成对C程序设计语言和基本数据结构与算法课程的学习后,综合运用所学到的语法和算法知识,构建一个接近实际应用场景的软件系统,以达到复习和巩固前期课程内容并为后续课程奠定基础的目的。

本系统要求实现订票功能模块,订票功能模块通过航班号普通用户可以在输入自己姓名和身份证号后,完成订票操作。

(订票情况可以存在一个数据文件中,结构自己设定)如果该航班已经无票,可以提供相关可选择航班;具体要完成的任务是:A.编制完成上述问题的C语言程序、进行程序调试并能得出正确的运行结果。

B.写出规范的课程设计说明书;时间安排(第19周—6.18至6.25)第一天布置课程设计任务,讲授VC安装,程序结构、数组、函数、文件;第二天查阅资料,讲授排序,查询算法实现;了解航空售票管理系统的需求;第三天讲授快速排序、最短路径问题、哈希查找的算法实现,准备程序第四天完成订票模块的设计与实现,上机调试程序,教师验收;第五天提交课程设计报告,下午4点前提交课程设计报告及文档至综合楼712。

具体要求课程设计报告按统一通用格式书写,具体内容包括:①设计任务与要求②总体方案与说明③软件主要模块的流程图④源程序清单与注释⑤问题分析与解决方案⑥小结与体会附录:①源程序(必须有简单注释)②使用说明③参考资料指导教师签名:2012 年6月15日教研室主任(或责任教师)签名:2012 年6月16日数据结构课程设计报告1.设计任务与要求1.1设计任务全面熟悉、掌握C语言和数据结构基本知识。

机票订购系统毕业设计

机票订购系统毕业设计

机票订购系统毕业设计机票订购系统毕业设计随着航空业的迅速发展和人们对旅行的需求不断增加,机票订购系统成为了一个非常重要的工具。

本文将探讨机票订购系统的设计与实现,包括系统的功能、技术选型、用户界面设计和安全性等方面。

一、系统功能机票订购系统的主要功能是提供用户方便快捷地订购机票的服务。

用户可以通过系统查询航班信息、选择座位、支付费用并获得电子机票。

同时,系统还应该提供退改签服务、行李托运信息和航班动态等功能,以满足用户的各种需求。

二、技术选型在选择技术方案时,需要考虑系统的可扩展性、性能和安全性。

常见的技术选型包括前端开发框架、后端开发语言和数据库等。

前端可以选择流行的React或Vue.js框架,后端可以使用Java或Python等语言进行开发,数据库可以选择MySQL或MongoDB等。

三、用户界面设计用户界面设计是机票订购系统中非常重要的一部分,它直接影响用户的体验和使用效果。

界面设计应该简洁明了,符合用户的使用习惯。

可以采用响应式设计,使得系统在不同设备上都能够良好地展示。

此外,还可以考虑使用图表和动画等元素来提升用户的交互体验。

四、安全性机票订购系统涉及用户的个人信息和支付信息,因此安全性是非常重要的。

系统应该采用合适的加密算法对用户的敏感信息进行加密存储,并采取防止SQL注入和XSS攻击等措施,确保用户数据的安全性。

同时,系统还应该设置合理的权限管理机制,以保护系统的安全。

五、系统测试在开发完成后,系统需要进行充分的测试,以保证其质量和稳定性。

可以进行单元测试、集成测试和系统测试等,发现并修复潜在的问题。

同时,还可以进行性能测试,以确保系统在高并发情况下的稳定性和响应速度。

六、用户体验优化除了基本功能和安全性外,用户体验也是机票订购系统中需要关注的重要方面。

可以通过用户反馈和数据分析等方式,不断优化系统的用户界面和功能,提升用户的满意度和黏性。

例如,可以提供个性化推荐服务、增加用户评价和分享功能等。

基于C语言的航空订票系统的设计与实现

基于C语言的航空订票系统的设计与实现

基于C语言的航空订票系统的设计与实现航空订票系统是通过计算机技术对航空公司的航班信息和乘客信息进行管理和处理的系统。

本文将介绍基于C语言的航空订票系统的设计与实现。

具体包括系统的需求分析、系统的设计与架构、系统的实现和功能特点等方面。

一、系统的需求分析在设计和实现航空订票系统之前,需要明确系统的需求,包括基本功能和用户需求等。

基本功能包括航班查询、座位预订、票价计算、乘客信息管理等。

用户需求包括操作简便、查询快速、信息准确等。

二、系统的设计与架构1.系统架构设计航空订票系统采用客户端/服务器(Client/Server)架构设计。

客户端负责与用户进行交互,接收用户的输入并向服务器发送请求。

服务器负责处理客户端的请求,访问数据库获取相应的数据并返回给客户端。

2.数据库设计三、系统的实现1.用户界面设计在客户端实现用户界面,提供菜单和命令行交互的方式供用户操作。

菜单包括航班查询、座位预订、票价计算、乘客信息管理等功能选项。

2.功能实现(1)航班查询功能用户输入出发地和目的地,系统从数据库中查询符合条件的航班信息,并显示在用户界面上。

用户可以选择其中一条航班进行预订。

(2)座位预订功能用户选择一条航班后,系统显示该航班的座位信息,并提示用户选择座位号。

用户选择座位后,系统生成一个订单号,并将订单信息保存到数据库中。

(3)票价计算功能用户选择一条航班后,系统显示该航班的票价信息,并提示用户输入乘客人数和票价类型。

系统根据输入的信息计算总票价并显示给用户。

(4)乘客信息管理功能用户可以添加、修改和删除乘客信息。

当用户进行座位预订时,系统要求用户输入乘客信息,可以选择已有的乘客信息或新添加乘客信息。

四、系统的功能特点1.操作简便:用户可以通过菜单方式选择需要的功能,操作简单快捷。

2.查询快速:系统利用数据库索引技术,提高了查询速度,用户可以快速获取所需信息。

3.信息准确:系统通过数据库管理相关信息,并通过数据校验保证数据的准确性。

航空客运订票系统文件操作论文

航空客运订票系统文件操作论文

航空客运订票系统设计与实现学生姓名:周玖怡指导老师:罗奕摘要本系统是采用C++开发的一个管理系统。

本系统要解决的是机场售票中所要解决的问题,包括售票退票子系统,订票子系统,查询子系统,航班信息修改和飞行时刻表等五个方面的功能。

在整个系统中采用文件来存储信息,角色划分为系统管理员、售票员、顾客三种,各自拥有不同的操作权限。

在整个系统设计过程中,严格按照软件工程设计标准来设计系统。

关键词飞机信息;部分匹配检索;文件操作1 引言20世纪,随着全球经济的蓬勃发展,众多经济学家纷纷提出了新的管理理论。

20实际50年代,西蒙提出了管理依赖于信息和决策的思想。

同时期的维纳发表了控制论,他认为管理是一个控制过程。

1958年,盖尔写到:“管理将以较低的成本得到及时准确的信息,做到较好的控制。

” [1]管理信息系统就是我们常说的MIS(Management Information System),在强调管理,强调信息的现代社会中它越来越得到普及。

MIS是一门学科,它跨越了若干个领域,比如管理科学,系统科学,运筹学,统计学以及计算机科学。

在这些科学的基础上,形成信息收集和加工的方法,从而形成一个纵横交织的系统。

所以,在这次机场售票管理系统的设计中,我选择了以C语言来设计这个管理系统。

与其他数据库管理系统相比,C语言具有用户的普遍性,功能的完整性,工具的易用性和规模的可伸缩性等特点[1]。

1.1 相关研究课题的特点近年来,国内外一些学者对中国航空业的竞争力进行了讨论,例如胡鞍钢对比分析了中美航空市场的开放度和国际竞争力。

认为我国空中市场开放程度低下,其国际竞争能力十分薄弱,美国的航空市场开放程度最大,美国的航空运输业国际竞争力最强,这表明空中市场越开放,航空运输业的发展空间越大,航空运输业市场规模越大,国际竞争力就越强。

刘世锦和冯飞在民航业国内外市场的开放和竞争严重不对称的情况下,对竞争的考虑首先是如何提高本国企业的国际市场竞争力。

基于JSP航空订票系统的设计与实现-毕业论文

基于JSP航空订票系统的设计与实现-毕业论文

毕业设计(论文)基于JSP航空订票系统的设计与实现系别:计算机科学与技术系专业(班级):计算机科学与技术(2010级1班)作者(学号):指导教师:完成日期: 2014年5月10日蚌埠学院教务处制目录摘要 (1)Abstract (2)1 概述 (3)1.1 项目简介 (3)1.1.1 项目开发的目的 (3)1.1.2 项目开发的意义 (3)1.1.3 同类软件国内外的现状 (4)2 开发工具及相关技术简介 (5)2.1JSP技术简介 (5)2.2 SQL Server2008简介 (5)2.3Apache Tomcat 6.0简介 (6)2.4MyEclipse的简介 (6)3 可行性分析 (8)3.1经济可行性 (8)3.2法律可行性 (8)3.3技术可行性 (8)4 需求分析 (10)4.1系统功能需求 (10)4.1.1 航班信息浏览功能 (10)4.1.2 航班查询功能 (10)4.1.3 机票预订功能 (10)4.1.4 用户注册和登录功能 (10)4.1.5 密码修改功能 (10)4.1.6 机票购物车功能 (10)4.1.7 后台管理功能 (11)4.2数据库需求分析 (11)4.2.1 实体数据分析 (11)4.2.2 实体关系分析 (11)5 总体设计 (11)5.1数据库的设计 (13)5.1.1 数据库概念设计 (13)5.1.2 数据库表的设计 (14)5.2系统功能模块的设计 (15)5.2.1前台管理模块的总体设计 (16)5.2.2后台管理模块的总体设计 (16)5.3系统架构设计 (16)6详细设计 (16)6.1用户注册 (18)6.2登录 (19)6.2.1 用户登录 (19)6.2.2 管理员登录 (21)6.3前台管理设计 (22)6.3.1 个人信息修改 (22)6.3.2 密码修改 (22)6.3.3 预定机票 (23)6.3.4 查看购物车 (24)6.4后台管理 (24)6.4.1 制定航班 (25)6.4.2 查看航班 (25)6.4.3 安排航班 (26)7 系统测试 (27)结论 (29)致谢 (30)参考文献 (31)基于JSP航空订票系统的设计与实现摘要:把网络订票系统应用在航空领域,不仅能够方便广大乘客的出行,还能够给航空工作人员带来工作便利,提高工作的效率,节省人力资源。

飞机订票系统的设计与实现

飞机订票系统的设计与实现

四 详细设计与系统实现
查询界面
当用户在首页点击查询按钮并登陆成功后将进入Query_flight.jsp界面如图所示, 系统提示用户填写信息,表单通过javascript验证,填写正确信息后点击查询按 钮,查询界面调用JavaBean,即Db_Flight.java中的openConnection()方法连 接数据库,通过request.getParameter()的方法获得用户填写的信息,通过数 据库查询语句得到所需数据,并将数据显示在Query_OK.jsp页面中。
字段说明 管理员编号 (主键)
密码
3
AdministratorName varchar(50) NOT NULL 管理员姓名
三 总体设计
FlightInfo表(航班信息表)
序号
1 2 3 4 5 6 7 8
字段名
字段类型 是否为空 字段说明
FlightID
Char(6) NOT NULL 航班号(主键)
地址
6
ID
varchar(20) NOT NULL
身份证号
7
Tel
varchar(20) NOT NULL
电话
Administrtor表(管理员表,保存管理员相关信息)
序号
1 2
字段名
AdministratorID Password
字段类型 是否为空
varchar(18) NOT NULL varchar(15) NOT NULL
OrderDate Datetime(50) NOT NULL
OrderNum Char(8) NOT NULL
Total
Money(8) NOT NULL
FlightID Char(8) NOT NULL

航空公司机票预订系统设计与实现项目计划书

航空公司机票预订系统设计与实现项目计划书

航空公司机票预订系统设计与实现计划书1.引言1.1系统设计背景随着经济的快速发展,民航事业在不断壮大,人们的消费水平也在迅速提高,旅游正逐渐成为普通老百姓中不可或缺的一部分,搭乘飞机出行的老百姓的数量在呈明显的上升趋势,机票预订系统在各航空公司占据着主导地位。

随着航空公司用户的迅猛增长和人们对便捷性要求的提高,原有的机票预订方式已经无法满足人们的需求,严重制约了航空公司的工作效率,也耽误了用户的宝贵时间,因此,引入高效的机票预订系统,来协助处理机票预订工作是计算机技术高速发展的必然趋势。

机票预订系统的核心功能就是机票预订,本机票预订系统旨在提高航空公司的机票预订服务效率,降低售票服务中错误的发生率,减少信息交流的烦琐过程及其带来的开销。

1.2系统设计概述每个航空公司都必须要解决的问题就是如何提高飞机票售票效率,更好的方便客户,摆脱机械化的管理模式,想要轻松解决这个问题不妨尝试采用机票预订系统使用户在线就能够预订到机票,问题得到解决的同时,还能做到飞机票售出途径多元化,方便乘客购票,提高航空公司的工作效率。

网上机票预订系统属于应用系统,用到机票预订系统的用户有很多,当然,这个系统提供的功能也有很多,如用户注册、用户登陆、查询航班、预订机票、在线退票等,这些都是用户可以完成的,对管理员而言,还可以实现制定航班等功能。

实现在线预订可以为用户提供便捷的订票渠道,使用户能够通过互联网了解航班与航线的详细情况,及时、准确的反映自己的工作情况以及航空公司的经营情况。

比如,及时的处理用户的订票与退票请求,审核用户的订票信息等。

具体而言,管理员登陆本系统之后,可以对管理员以及用户的信息进行添加、修改和删除,除此以外,管理员还可以对一些基础信息进行管理,基础信息主要包括城市信息,航班信息、航空公司信息、航线信息,同时还可以对航班信息进行详细的预览,管理员还可以对订单进行管理,主要包括对用户提交的订票、退票信息进行审核,审核通过的话即进行出票、退票操作,当然也可以查看出票以及退票记录。

航空订票系统基于Android的设计与实现_毕业设计论文

航空订票系统基于Android的设计与实现_毕业设计论文

摘要基于Android的航空订票系统设计与实现_毕业设计论文随着手机移动技术迅速发展,3G通讯技术在手机上的应用已经进入到日常生活的方方面面,手机从过去的单一通话和收发短信功能,发展到现在可进行移动搜索、全球定位导航、手机电视、实时的视频通信、网上支付和对使用者的健康进行监测等其它强大功能。

而且随着科技的进步,手机的发展也越来越快,功能更全更好的手机也随之面世,所以基于安卓系统的应用会逐渐增多,以致形成主流。

在这种情况下,为了适应这种日益增长的需求,正是开发本系统的目的。

因为现在的人出行,并不仅仅是火车、客车,随着经济的发展,人们生活水平提高的十分迅速,所以飞机已逐渐成为现在的主流。

它比火车、客车拥有更加快捷的时效性,减少了旅途的劳累。

但是现在订票的问题也随之而来,需要本人到代售点去买,十分不方便。

为此,本毕业设计在进行充分的需求调研和分析之后,设计并实现基于Android的手机航空订票系统。

该系统采用MyEclipse 工具集成Android的SDK开发,利用Mysql 5.1作为数据库服务器进行数据管理,并使用android模拟器测试。

本系统分为六个大的功能模块:信息查询、订单管理、预订机票、用户账户管理、订阅管理和软件帮助。

其中信息查询分为查询航空公司在每个城市的营业网点、航线、航班的机型等信息.。

在这个项目进行之前,已有部分产品问世,如tolo航空公司已有基于专线网络的柜台系统,但它只是针对公司内部进行信息对接,对各个网点进行汇总,并进行回馈。

对于普通客户来说,还是很遥远的。

还是无法进行订票,只能了解部分信息,无法操作。

人们已经无法仅限于知道信息,还要在知道后,马上就进行实施,毕竟时间就是金钱,这是现在社会的主趋势。

所以基于此,在它的基础上,开发了此软件。

这个客户端软件能够与服务器之间进行通信,数据互传,根据指定的出发时间、地点、人数等信息,向服务器发送请求,并进行出票要求。

服务器在接到这些信息要求后,会根据自身信息库进行对接,得到结果后,会对客户端进行反馈,把出票结果显示出来。

航空票务系统系统的设计

航空票务系统系统的设计

二、系统的设计(一).数据库设计数据库在一个信息管理系统中占有非常重要的地位,数据库设计的目标是建立一个合理、高效的数据模型。

合理的含义是,数据模型要能够满足用户需求,既能够合理地组织用户所需要的数据,又能够支持用户对数据处理的要求。

高效的含义是,数据模型的效益高、数据的完整性好,使于维护,没有数据冲突,能够满足较高的范式要求,同时数据模型还应该便于在DBMS中实现。

设计数据库系统时应该首先充分了解用户各个方面的需求,包括现有的以及将来可能增加的需求。

数据库设计一般包括如下几个步骤:数据库需求分析。

数据库概念结构设计。

数据库逻辑结构设计。

1.数据库需求分析针对一般航空公司管理信息系统的需求,通过对航空公司管理业务过程和数据流程分析,可以确定岀系统中一些实体对象及以及它们之间的关系,这些实体包含各种具体信息,通过相互之间的作用形成数据的流动。

航空电子票务综合管理系统中的业务实体包括航班信息(flightTick),定票客户信息(clientlnfo),每期航空座位信息(seat),这些实体模型的含义如下所述。

(1)flightTick:代表一个航班信息实体:包括航班号(fight)、航空公司(airfirm)、起飞地(start)、到达地(destination)、起飞时间(leaveTime)、到达时间(arriveTime)、儿童票价(childFare),成人票价(adultFare)、座位(seat)等。

(2)clientlnfo:代表一个定票客户信息实体:包括身份证号(id)、用户名(name),出发地(start)、到达地(edu)、出发时间(startime)、返回时间(returntime)、航班号(flight)、联系电话(telephone)、返回航班号(returnflight)、航空公司(airfirm)、机票类型(style)等。

(3)seat:代表一个每期航班座位信息实体:包括航班标识(seatnumber),每期航班已售座位数(bookedSeats)。

飞机订票系统的设计与实现

飞机订票系统的设计与实现
for(i=0;i<n;i++)
{
scanf("%s",t[i].planenumber);/*输入姓名*/
gotoxy(13,6+i);/*光标跳到地址栏*/
scanf("%s",t[i].city1);/*输入起飞城市*/
gotoxy(25,6+i);
scanf("%s",t[i].city2);/*输入降落城市*/
分值
得分
评价内涵
工作
表现
20%
01
学习态度
6
遵守各项纪律,工作刻苦努力,具有良好的科学工作态度。
02
科学实践、调研
7
通过实验、试验、查阅文献、深入生产实践等渠道获取与课程设计有关的材料。
03
课题工作量
7
按期圆满完成规定的任务,工作量饱满。
能力
水平
35%
04
综合运用知识的能力
10
能运用所学知识和技能去发现与解决实际问题,能正确处理实验数据,能对课题进行理论分析,得出有价值的结论。
char city2[20]; /*抵达城市*/
char time1[20]; /*起飞时间*/
char time2[20]; /*降落时间*/
int room; /*舱位数*/
char price[5]; /*票价*/
char discount[5]; /*折扣*/
GUEST guest[25];
4.3航班信息录入函数分析
航班的基本信息,对它们输入后,要存进原文件,采用fwrite函数就可以实现。但是,用该函数存进文件的数据都是以二进制的形式存在的,不是通常所采用的形式,可以改用fprintf函数来实现该功能。不过本程序采用的是fwrite函数。再用户输入完成后,程序会询问是否继续输入,这个功能更具人性化,可以省去返回到主函数在进入这个函数的麻烦!

航空客运订票系统的设计与实现

航空客运订票系统的设计与实现

课程设计说明书之杨若古兰创作课程名称题目航空客运订票零碎的设计与实现院系_电子信息工程学院____班级__计算机科学与技术__先生姓名______________指点教师_____________日期___数据结构课程设计任务书航空客运订票零碎的设计与实现一、简介1.设计目的:1.数据结构课程设计是综合应用数据结构课程中学到的几种典型数据结构,和程序设计说话(C说话),自行实现一个较为完好的利用零碎的设计与开发2.通过课程设计,本人通过零碎分析、零碎设计、编程调试,写实验陈述等环节,进一步把握利用零碎设计的方法和步调,灵活应用并深刻理解典型数据结构在软件开发中的利用 . 3.学会将常识利用于实际的方法,提高分析和解决成绩的能力,添加综合能力.航空空订票零碎:(1)熟练把握链表存储结构及其建立过程和经常使用操纵;(2)熟练把握队列的建立过程和经常使用操纵;(3)学会本人调试程序的方法并把握必定的技巧.2.成绩的描述:航空客运订票的营业包含查询航线和客票预定的信、客票预定和筹划退票等,设计一个程序以使上述任务借助计算机完成.二、数据结构的设计:(1)航班信息:飞机抵达城市、航班号、飞机号、起降时间、航班票价、票价扣头、总地位和剩余地位、以訂票的客户名单.(2)客户信息:客户姓名、证件号、坐位号.三、功能(函数)设计:1.每条航线所涉及的信息有:起点站名、航班号、飞机号、飞行日(礼拜几)、载客量、余票量、票价格,扣头,已订票的客户名单(包含姓名、订票量、舱位等级1,2或3)和等候替补的客户名单(包含姓名、所需票量);2.全部数据可以只放在内存中;3.零碎能实现的操纵和功能如下:a) 查询航线:根据旅客提出的起点站名输出以下信息:航班号、飞机号、礼拜几飞行,比来一天航班的日期和余票额;b) 承办订票营业:根据客户提出的请求(航班号、订票数额)查询该航班票额情况,若尚不足票,则为客户筹划订票手续,输出坐位号;若已满员或余票额少于定票额,则需从头扣问客户请求.若须要,可登记排队候补;c) 退票营业:根据客户提供的情况(日期、航班),为客户筹划退票手续,然后查询该航班是否有人排队候补,首先扣问排在第一的客户,若所退票额能满足他的请求,则为他筹划订票手续,否则顺次扣问其他排队候补的客户.零碎结构图(功能模块图)功能模块说明(1)显示已初始化的全部航线信息(2)浏览已订票客户信息(3)根据客户提出的起点站名,调用find()函数寻觅航线信息,调用list()函数输出航线信息(4)筹划订票营业:根据客户提供的航班号进行查询航线信息,若客户订票额超出乘员定票总额,退出,若客户订票额末超出余票量,订票成功并登记信息,在订票乘员名单域中添加客户信息;如果临时没有票,扣问客户是否要排队等侯,如果是,则在等候队列添加该客户的订票信息.(5)筹划退票营业:调用查询函数,根据客户提供的航线进行搜索根据客户提供的姓名到订票客户名单域进行查询.退票成功后,从头将航线名单域指向订票单链表的头指针.根据队列中从出的客户信息判断是否满足请求,如果满足,则将该客户的信息拔出到乘客信息链表中.(6)退出本零碎四、界面设计:界面简洁易懂,包含1.浏览航线信息;2.浏览已订票客户信息;3.查询航线;4.筹划订票营业;5.筹划退票营业;6.检查剩余票数并排序.五、程序设计:六、运转与测试:1、测试的数据及其结果:(1)通过按键“1”浏览航线信息,结果输出五行事先输入的数据.(2)通过按键“3”查询航线,输入起点站名后,结果输出相干航线信息.(3)通过按键“4”筹划订票营业,顺次输入航班号,订票数量,客户姓名,证件号后,结果输出客户的坐位号,订票成功.(4)通过按键“2”浏览已定票客户信息,输入航班号后,结果显示客户信息.(5)通过按键“5”筹划退票营业,输入航班号,客户名后,结果退票成功.(6)通过按键“6”检查剩余票数并排序,结果精确.(7)通过按键“0”退出零碎,结果精确.2、运转与测试期间碰到的成绩及其解决法子.(1)因本人能力无限,在编写的时候只使用了绝对较为简单的基础说话,代替了绝对较为复杂的说话,降低了运转效力.(2)程序在起初设计的时候,经常出现溢出错误,而且不只一处.为了批改这些溢出错误,耗费了大量的时间,批改解释以后再看源程序,才发现本来只是因为开始的函数定义的数据类型出现了成绩,对函数的定义不清楚,字符的不精确定义形成了后期大量的纠错工作,(3)因为健忘了一些c说话的规范使得在调试过程中一些错误没有发现.例如,调用函数时,数组只须要传递数组名即可;字符‘0’和整形的0是分歧的文明不成以直接对其画等号.(4)测试用例具有必定的广泛性.运转程序时输入了多种分歧字符信息,经过多次点窜结果达到了预期后果.说明程序具有必定的可靠性和波动性.七、设计后的思考:经过此次课程设计,我对调试把握的更加熟练了,改变了过去只调试不晓得如何对照程序说话点窜程序的坏习气,对调试也有了新的认识,认识到了程序说话的规范性和我们在编程时要有严谨的态度,同时在写程序时如果加必定量的正文,既添加了程序的可读性,也能够使本人在读程序时更容易.代码:#include <stdio.h>#include <stdlib.h>#include <string.h>#include <conio.h>#define MAXSIZE 5 typedef struct wat_ros { char name[10];int req_amt;struct wat_ros *next; }qnode,*qptr; typedef struct pqueue { qptr front;qptr rear;}linkqueue;typedef struct ord_ros { char name[10];int ord_amt;int grade;struct ord_ros *next; }linklist;struct airline{ char ter_name[10]; char air_num[10]; char plane_num[10]; char date[7];int tkt_amt;int tkt_sur;int tkt_pri;int tkt_reb;linklist *order;linkqueue wait;}lineinfo;struct airline *start;struct airline air[MAXSIZE]={{"北京","1","A1401","礼拜日",3,1,800,9},{"上海","2","H1102","礼拜一",2,5,600,6},{"洛阳","3","L1003","礼拜五",1,3,100,4},{"杭州","4","H1035","礼拜三",5,4,700,5},{"呼和浩特","5","F1100","礼拜六",6,3,800,5}};void display(struct airline *info){printf("%8s\t%3s\t%s\t%7s\t%7d\t%10d\t%5d\t%3d\n",info->ter_name,info->air_num,info->plane_num,info->date,info->tkt_amt,info->tkt_sur,info->tkt_pri,info->tkt_reb);}void list(){ struct airline *info;int i=0;info=start;printf("起点站\t\t航班号\t飞机号\t飞行日期\t载客量\t余票量\t票价格\t扣头\n");while(i<MAXSIZE){display(info);info++;i++;}printf("\n\n");}void search(){ struct airline *info,*find();char name[10];int i=0;info=start;printf("请输入起点站名:");scanf("%s",name);while(i<MAXSIZE){if(!strcmp(name,info->ter_name)) break;info++;i++;}if(i>=MAXSIZE)printf("对不起,该航线未找到!\n");else{printf("起点站\t\t航班号\t飞机号\t飞行日期\t载客量\t余票量\t票价格\t扣头\n");display(info);}}struct airline *find(){ struct airline *info;char number[10];int i=0;info=start;printf("请输入航班号:");scanf("%s",number);while(i<MAXSIZE){if(!strcmp(number,info->air_num)) return info;info++;i++;}printf("对不起,该航线末找到!\n");return NULL;}void prtlink(){ linklist *p;struct airline *info;info=find();p=info->order;if(p!=NULL){printf("客户姓名订票数额客户证件号\n");while(p){printf("%s\t\t%d\t%d\n",p->name,p->ord_amt,p->grade); p=p->next;}}elseprintf("该航线没有客户信息!!\n");}linklist *insertlink(linklist *head,int amount,char name[],int grade) { linklist *p1,*new1;p1=head;new1=(linklist *)malloc(sizeof(linklist));if(!new1) {printf("\nOut of memory!!\n");return NULL;} strcpy(new1->name,name);new1->ord_amt=amount;new1->grade=grade;new1->next=NULL;if(head==NULL){head=new1;new1->next=NULL;}elsehead=new1;new1->next=p1;return head;}linkqueue appendqueue(linkqueue q,char name[],int amount) { qptr new1;new1=(qptr)malloc(sizeof(qnode));strcpy(new1->name,name);new1->req_amt=amount;new1->next=NULL;if(q.front==NULL)q.front=new1;elseq.rear->next=new1;q.rear=new1;return q;}void order(){ struct airline *info;int amount,grade;char name[10];info=start;if(!(info=find())) return;printf("请输入你订票所须要的数量:");scanf("%d",&amount);if(amount>info->tkt_amt){ printf("\n对不起,您输入的票的数量曾经超出乘员定额!"); return;}if(amount<=info->tkt_sur){int i;printf("请输入您的姓名(订票客户):");scanf("%s",name);printf("请输入%s票的证件号:",name);scanf("%d",&grade);info->order=insertlink(info->order,amount,name,grade);for(i=0;i<amount;i++)printf("%s的坐位号是:%d\n",name,info->tkt_amt-info->tkt_sur+i+1);info->tkt_sur-=amount;printf("\n祝您乘坐高兴!\n");}else{ char r;printf("\n曾经没有更多的票,您须要排队等候吗?(Y/N)");r=getch();printf("%c",r);if(r=='Y'||r=='y'){ printf("\n请输入您的姓名(排队订票客户):");scanf("%s",name);info->wait=appendqueue(info->wait,name,amount);printf("\n注册成功!\n");}else printf("\n欢迎您下次再次订购!\n");}}void return_tkt(){ struct airline *info;qnode *t,*back,*f,*r;int grade;linklist *p1,*p2,*head;char cusname[10];if(!(info=find())) return;head=info->order;p1=head;printf("请输入你的姓名(退票客户):");scanf("%s",cusname);while(p1!=NULL) {if(!strcmp(cusname,p1->name)) break;p2=p1;p1=p1->next;}if(p1==NULL){ printf("对不起,你没有订过票!\n");return;} else{if(p1==head) head=p1->next;else p2->next=p1->next;info->tkt_sur+=p1->ord_amt;grade=p1->grade;printf("%s成功退票!\n",p1->name);free(p1);}info->order=head;f=(info->wait).front;r=(info->wait).rear;t=f;while(t){if(info->tkt_sur=info->wait.front->req_amt){int i;info->wait.front=t->next;printf("%s订票成功!\n",t->name);for(i=0;i<t->req_amt;i++)printf("%s的坐位号是:%d\n",t->name,(info->tkt_sur)-i);info->tkt_sur-=t->req_amt;info->order=insertlink(info->order,t->req_amt,t->name,grade); free(t);break;}back=t;t=t->next;if((info->tkt_sur)>=(t->req_amt)&&t!=NULL){ int i;back->next=t->next;printf("%s订票成功!\n",t->name);for(i=0;i<t->req_amt;i++)printf("<%s>'s seat number is:%d\n",t->name,(info->tkt_sur)-i); info->tkt_sur-=t->req_amt;info->order=insertlink(info->order,t->req_amt,t->name,grade);free(t);break;}if(f==r) break;}}void sort_tkt(){int j;struct airline t,*info,*p,*q;p=info=air;for(p=info;(p+1)->tkt_sur;p++)for(q=p+1;q->tkt_sur;q++){if(p->tkt_sur<q->tkt_sur){t=*p;*p=*q;*q=t;}}printf("起点站\t\t航班号\t飞机号\t飞行日期\t载客量\t余票量\t票价格\t扣头\n");for(j=0;j<MAXSIZE;j++){display(info);info++;}}int menu_select(){ int c;char s[20];printf("\n *航空客运订票零碎*\n");printf("**************************************************************\n");printf(" 1.浏览航线信息 2.浏览已订票客户信息\n");printf(" 3.查询航线 4.筹划订票营业\n"); printf(" 5.筹划退票营业 6.检查剩余票数并排序\n");printf(" 0.退出零碎\n");printf("***************************************************** ***************************\n");do{printf("请选择:");scanf("%s",s);c=atoi(s);}while(c<0||c>7);return c;}void main(){start=air;for(;;){switch(menu_select()){case 1:list();break;case 2:prtlink();break;case 3:search();break;case 4:order();break;case 5:return_tkt();break;case 6:sort_tkt();break;case 0:printf("\n欢迎您的使用,再会!\n");exit(0); }printf("\nPress any key to continue!\n");getch();}}电子信息工程学院数据结构课程设计指点教师评分表。

基于JAVAEE的航空订票系统的方案设计书与实现

基于JAVAEE的航空订票系统的方案设计书与实现

存档编号基于JAVAEE的航空订票系统的设计与实现教案学院数学与计算机科学学院届别 2013届专业学号姓名指导教师完成日期 2013年5月6日目录内容摘要 (4)关键字 (4)Abstract (4)Keywords (5)1前言 (6)1.1背景 (6)1.2航空订票系统的特点 (7)2系统分析 (8)2.1可行性分析 (8)2.2需求分析 (9)2.3软件需求 (9)3概要分析 (11)3.1总体功能分析 (11)3.2系统功能结构图 (12)3.3数据库设计 (15)4详细设计 (17)4.1前台设计 (17)4.2会员模块 (19)4.3管理员模块 (32)5系统测试 (39)6总结 (42)参考文献 (43)内容摘要:随着经济的快速发展,基于互联网上的交易需求量越来越多,网民不仅可以在网上浏览网页,而且可以在网上买东西, 交易,开网店,订票等等。

航空订票系统是航空部门机票管理系统的一部分,其作用是对所有待售机票和已售机票进行有效的管理。

该系统解决了网民买票的不便,帮网民省下好多宝贵的时间,实现网上订票的简单方便。

本系统使用JSP进行网页界面的设计,使用JSP+Servlet设计模式,具有快速、设计灵活、生成的软件界面友好美观等特点。

数据库使用MYSQL,具有较高的完整性,一致性和安全性。

关键字:航空订票 JSP+Servlet Java EEAbstract: With the rapid development of economy, more and more Internet transactions demand based on the Internet, not only can browse webpage on the Internet, but also can buy things, in online transactions, online booking, etc..Air booking system is a part of the ticket management system for the aviation sector, its role isto carry on the effective management of sale of all tickets sold tickets and. The system solves the inconvenience of Internet users buy, help users save alot of valuable time, the realization is simple and convenient online booking.The design of this system use JSP webpage interface, using the JSP+Servlet design pattern, with a friendly software interface appearance characteristics such as fast, flexible design, production. The use of MYSQL database, have high integrity, consistency and safety.Keywords: Air Booking JSP+Servlet Java EE1前言1.1背景21世纪是一个以信息化、数字化和网络化为特征的新时代。

航空旅客信息系统的设计与实现

航空旅客信息系统的设计与实现

航空旅客信息系统的设计与实现航空旅客信息系统是一个十分重要且复杂的系统,它由多个子系统组成,包括机票预订、航班信息管理、旅客信息管理、机场安全管理等。

本文将详细介绍航空旅客信息系统的设计与实现,以确保系统的高效性、安全性和可靠性。

1. 系统需求分析在设计和实现航空旅客信息系统之前,我们首先需要进行系统需求分析。

根据业务需求与功能要求,对系统进行细致的调研和分析,明确系统的基本功能模块和执行流程,包括机票查询与预订、航班信息管理、旅客信息管理、机场安全管理等。

2. 数据库设计一个有效的数据库设计是保证系统正常运行的基础。

我们需要创建多个关系模型,包括旅客信息、航班信息、机票信息、机场信息等。

在数据库设计时,需要考虑数据的完整性约束、索引的设置以及数据表之间的关联关系等。

3. 用户界面设计用户界面设计是用户与系统进行交互的重要环节。

我们需要实现一个直观、友好且易于操作的用户界面,以提高用户体验和系统的易用性。

在设计用户界面时,应该注重界面的美观性、交互性和响应速度,同时遵循用户习惯和界面设计原则。

4. 机票查询与预订模块机票查询与预订模块是航空旅客信息系统的核心功能。

用户可以通过输入出发地、目的地、日期等关键信息查询可用航班,并选择合适的航班进行预订。

系统需要实现即时响应和快速预订的功能,同时确保预订信息的准确性和一致性。

5. 航班信息管理模块航班信息管理模块负责维护航班的时刻表、机型、座位数等信息。

系统应当能够实现航班信息的查询、修改和删除等功能,并提供实时更新和通知功能,以保持航班信息的准确性和有效性。

6. 旅客信息管理模块旅客信息管理模块负责维护旅客的个人信息、预定的机票信息、历史出行记录等。

系统应当提供用户注册、登录、修改个人信息等功能,并保证旅客信息的私密性和安全性。

7. 机场安全管理模块机场安全管理模块负责处理旅客的安全检查、行李托运等工作。

系统应当提供身份验证、安全检查和行李管理等功能,以确保航空旅客的安全和便捷性。

基于c#窗体航空订票管理系统设计与实现

基于c#窗体航空订票管理系统设计与实现

基于c#窗体的航空订票管理系统的设计与实现一.系统分工进入21世纪,人们计算机处理事情的需求有了进一步的要求。

小到商店缴费管理系统的快速运行,大到国家航空航天计算机的管理系统的进一步提升。

我们每时每刻都在追求着计算机处理事情的快速,稳定,运算量大等一系列优点。

由于人们为了方便快捷的生活方式,上网已经成为潮流,这样快速稳定的航空订票系统应运而生。

航空订票系统需要满足一般的查询航线,订票,退票等一系列基本操作,当然我们也可以设置黑名单,以屏蔽违规用户。

当然人人都追求美感,那么系统界面的设计也要符合大众的审美要求。

资料的安全与隐私性也是至关重要的,我们每个人,都不想别人知道自己的一些隐私,对自己资金的安全也格外重视。

所以订票系统对不同的角色赋予不同的权限从而保证用户资料的安全性与隐私性。

三.系统功能(1)游客功能对游客我们系统只为其提供查询航班信息的功能,不可进行订票操作。

当游客点击购票按钮时,将提醒其注册或登录。

(2)用户注册用户只有注册成为我们的会员,才可以进行订票操作。

一旦注册,用户名将不可修改。

注册时不可与数据库中存在的用户名相同,即系统中只能存在唯一一个用户名。

(3)用户中心提供用户对自己的资料的查看与修改的功能。

还可以对自己的密码进行修改,在修改密码时需要输入原始密码进而进行验证。

由于时间问题,对个人钱包功能先暂停使用,默认钱够买票了。

(4)订票功能用户可根据航班时间,和航班号或航班价格进行订票。

订票时系统会提醒确认,订票成功后系统会将用户的信息加入订票信息表。

并改变航班的余票额。

(5)退票功能用户在不需要票的情况下进行退票操作。

退票时必须输入订票时随机生成的订单号,与航班号。

退票成功后,航班自动将余票量加一操作。

(6)本系统还添加了管理员界面。

当管理员进入后,可对用户的信息进行查看,但不能修改,也可将用户加入黑名单,如果用户有订单,则不允许管理员做加入黑名单操作。

当然加入黑名单时,管理员需要说明理由,作为存档。

航空订票管理信息系统的分析设计和实施

航空订票管理信息系统的分析设计和实施
3、输入设计
《民航安全信息系统》
实践环节报告
实践题目航空订票管理信息系统的
分析、设计和实施
专业班级111242A
参加人员赵琦(111242143)
负责内容协调小组分工、完成报告
参加人员廖宇靖(111242111)
负责内容业务流程分析、代码设计
参加人员邓云(111242104)
负责内容数据流程分析、数据字典
参加人员万盼军(111242124)
负责内容输出及输入界面设计
设计日期二〇一四年一月
成绩
航空订票管理信息系统的
分析设计和实施
一、需求分析
目前,国内航空公司的数量和规模都在扩大,国外航空公司也纷纷着陆中国,这些航空公司之间的竞争可谓日益激烈。配备一个安全、高效、灵活、可靠的客户服务中心系统对于航空公司加强客户服务质量,提高客户服务水平,扩展业务途径,维护公众形象,提高工作效率必将发挥重要作用。
4、提升信息化的水平;
二、系统分析
根据对收集到的资料进行分析,以及通过亲身实践以及向有关业务管理人员的访问调查,系统分析结果如下:
1、组织机构
航空订票管理信息系统的组织机构图如图1:
图1航空订票管理信息系统的组织机构图
2、管理职能分析
(1)市场部经理:对于航空订票管理信息系统负有领导责任。
(2)票务科长:对于航空订票信息系统进行直接的管理维护,对市场部经理负责。
八、代码设计
以机票余票查询代码设计为例说明。
由于进行机票余票查询需要有航班号、时间、出发地与目的地信息,余票查询代码采用层次码,设计方案如图6所示:
编码解释如下:
航班号处首先用数字1、2、3···表示各航空公司,接着用01、02、03···表示班机号码;
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

课程设计说明书课程名称题目航空客运订票系统的设计与实现院系_电子信息工程学院____班级__计算机科学与技术__学生姓名______________指导教师_____________日期_ 2011.12.19-2011.12.30__数据结构课程设计任务书指导教师:时间: 2011.12.8航空客运订票系统的设计与实现一、简介1.设计目的:1.数据结构课程设计是综合运用数据结构课程中学到的几种典型数据结构,以及程序设计语言(C语言),自行实现一个较为完整的应用系统的设计与开发2.通过课程设计,自己通过系统分析、系统设计、编程调试,写实验报告等环节,进一步掌握应用系统设计的方法和步骤,灵活运用并深刻理解典型数据结构在软件开发中的应用。

3.学会将知识应用于实际的方法,提高分析和解决问题的能力,增加综合能力。

航空空订票系统:(1)熟练掌握链表存储结构及其建立过程和常用操作;(2)熟练掌握队列的建立过程和常用操作;(3)学会自己调试程序的方法并掌握一定的技巧。

2.问题的描述:航空客运订票的业务包括查询航线和客票预定的信、客票预定和办理退票等,设计一个程序以使上述任务借助计算机完成。

二、数据结构的设计:(1)航班信息:飞机抵达城市、航班号、飞机号、起降时间、航班票价、票价折扣、总位置和剩余位置、以訂票的客户名单。

(2)客户信息:客户姓名、证件号、座位号。

三、功能(函数)设计:1.每条航线所涉及的信息有:终点站名、航班号、飞机号、飞行日(星期几)、载客量、余票量、票价格,折扣,已订票的客户名单(包括姓名、订票量、舱位等级1,2或3)以及等候替补的客户名单(包括姓名、所需票量);2.全部数据可以只放在内存中;3.系统能实现的操作和功能如下:a) 查询航线:根据旅客提出的终点站名输出下列信息:航班号、飞机号、星期几飞行,最近一天航班的日期和余票额;b) 承办订票业务:根据客户提出的要求(航班号、订票数额)查询该航班票额情况,若尚有余票,则为客户办理订票手续,输出座位号;若已满员或余票额少于定票额,则需重新询问客户要求。

若需要,可登记排队候补;c) 退票业务:根据客户提供的情况(日期、航班),为客户办理退票手续,然后查询该航班是否有人排队候补,首先询问排在第一的客户,若所退票额能满足他的要求,则为他办理订票手续,否则依次询问其他排队候补的客户。

系统结构图(功能模块图)功能模块说明(1)显示已初始化的全部航线信息(2)浏览已订票客户信息(3)根据客户提出的终点站名,调用find()函数寻找航线信息,调用list ()函数输出航线信息(4)办理订票业务:根据客户提供的航班号进行查询航线信息,若客户订票额超过乘员定票总额,退出,若客户订票额末超过余票量,订票成功并登记信息,在订票乘员名单域中添加客户信息;如果暂时没有票,询问客户是否要排队等侯,如果是,则在等候队列增加该客户的订票信息。

(5)办理退票业务:调用查询函数,根据客户提供的航线进行搜索根据客户提供的姓名到订票客户名单域进行查询。

退票成功后,重新将航线名单域指向订票单链表的头指针。

根据队列中从出的客户信息判断是否满足要求,如果满足,则将该客户的信息插入到乘客信息链表中。

(6)退出本系统四、界面设计:界面简洁易懂,包括1.浏览航线信息;2.浏览已订票客户信息;3.查询航线;4.办理订票业务;5.办理退票业务;6.查看剩余票数并排序。

五、程序设计:六、运行与测试:1、测试的数据及其结果:(1)通过按键“1”浏览航线信息,结果输出五行事先输入的数据。

(2)通过按键“3”查询航线,输入终点站名后,结果输出相关航线信息。

(3)通过按键“4”办理订票业务,依次输入航班号,订票数量,客户姓名,证件号后,结果输出客户的座位号,订票成功。

(4)通过按键“2”浏览已定票客户信息,输入航班号后,结果显示客户信息。

(5)通过按键“5”办理退票业务,输入航班号,客户名后,结果退票成功。

(6)通过按键“6”查看剩余票数并排序,结果正确。

(7)通过按键“0”退出系统,结果正确。

2、运行与测试期间遇到的问题及其解决办法。

(1)因本人能力有限,在编写的时候只使用了相对较为简单的基础语言,代替了相对较为复杂的语言,降低了运行效率。

(2)程序在起初设计的时候,经常出现溢出错误,而且不只一处。

为了修正这些溢出错误,耗费了大量的时间,修正解释之后再看源程序,才发现原来只是因为开始的函数定义的数据类型出现了问题,对函数的定义不清楚,字符的不正确定义造成了后期大量的纠错工作,(3)由于忘记了一些c语言的规范使得在调试过程中一些错误没有发现。

例如,调用函数时,数组只需要传递数组名即可;字符‘0’和整形的0是不同的文明不可以直接对其画等号。

(4)测试用例具有一定的广泛性。

运行程序时输入了多种不同字符信息,经过多次修改结果达到了预期效果。

说明程序具有一定的可靠性和稳定性。

七、设计后的思考:经过这次课程设计,我对调试掌握的更加熟练了,改变了过去只调试不知道如何对照程序语言修改程序的坏习惯,对调试也有了新的认识,意识到了程序语言的规范性以及我们在编程时要有严谨的态度,同时在写程序时如果加一定量的注释,既增加了程序的可读性,也可以使自己在读程序时更容易。

代码:#include <stdio.h>#include <stdlib.h> #include <string.h> #include <conio.h> #define MAXSIZE 5 typedef struct wat_ros { char name[10];int req_amt;struct wat_ros *next; }qnode,*qptr; typedef struct pqueue { qptr front;qptr rear;}linkqueue;typedef struct ord_ros { char name[10];int ord_amt;int grade;struct ord_ros *next; }linklist;struct airline{ char ter_name[10];char air_num[10];char plane_num[10];char date[7];int tkt_amt;int tkt_sur;int tkt_pri;int tkt_reb;linklist *order;linkqueue wait;}lineinfo;struct airline *start;struct airline air[MAXSIZE]={{"北京","1","A1401","星期日",3,1,800,9},{"上海","2","H1102","星期一",2,5,600,6},{"洛阳","3","L1003","星期五",1,3,100,4},{"杭州","4","H1035","星期三",5,4,700,5},{"呼和浩特","5","F1100","星期六",6,3,800,5}};void display(struct airline *info){printf("%8s\t%3s\t%s\t%7s\t%7d\t%10d\t%5d\t%3d\n",info->ter_name,info->air_num,info->plane_num,info->date,info->tkt_amt,info->tkt_sur,info->tkt_pri,info->tkt_reb);}void list(){ struct airline *info;int i=0;info=start;printf("终点站\t\t航班号\t飞机号\t飞行日期\t载客量\t余票量\t票价格\t折扣\n");while(i<MAXSIZE){display(info);info++;i++;}printf("\n\n");}void search(){ struct airline *info,*find();char name[10];int i=0;info=start;printf("请输入终点站名:");scanf("%s",name);while(i<MAXSIZE)if(!strcmp(name,info->ter_name)) break;info++;i++;}if(i>=MAXSIZE)printf("对不起,该航线未找到!\n");else{printf("终点站\t\t航班号\t飞机号\t飞行日期\t载客量\t余票量\t票价格\t折扣\n");display(info);}}struct airline *find(){ struct airline *info;char number[10];int i=0;info=start;printf("请输入航班号:");scanf("%s",number);while(i<MAXSIZE)if(!strcmp(number,info->air_num)) return info;info++;i++;}printf("对不起,该航线末找到!\n");return NULL;}void prtlink(){ linklist *p;struct airline *info;info=find();p=info->order;if(p!=NULL){printf("客户姓名订票数额客户证件号\n");while(p){printf("%s\t\t%d\t%d\n",p->name,p->ord_amt,p->grade); p=p->next;}}elseprintf("该航线没有客户信息!!\n");linklist *insertlink(linklist *head,int amount,char name[],int grade) { linklist *p1,*new1;p1=head;new1=(linklist *)malloc(sizeof(linklist));if(!new1) {printf("\nOut of memory!!\n");return NULL;}strcpy(new1->name,name);new1->ord_amt=amount;new1->grade=grade;new1->next=NULL;if(head==NULL){head=new1;new1->next=NULL;}elsehead=new1;new1->next=p1;return head;}linkqueue appendqueue(linkqueue q,char name[],int amount) { qptr new1;new1=(qptr)malloc(sizeof(qnode));strcpy(new1->name,name);new1->req_amt=amount;new1->next=NULL;if(q.front==NULL)q.front=new1;elseq.rear->next=new1;q.rear=new1;return q;}void order(){ struct airline *info;int amount,grade;char name[10];info=start;if(!(info=find())) return;printf("请输入你订票所需要的数量:");scanf("%d",&amount);if(amount>info->tkt_amt){ printf("\n对不起,您输入的票的数量已经超过乘员定额!"); return;}if(amount<=info->tkt_sur){int i;printf("请输入您的姓名(订票客户):");scanf("%s",name);printf("请输入%s票的证件号:",name);scanf("%d",&grade);info->order=insertlink(info->order,amount,name,grade);for(i=0;i<amount;i++)printf("%s的座位号是:%d\n",name,info->tkt_amt-info->tkt_sur+i+1); info->tkt_sur-=amount;printf("\n祝您乘坐愉快!\n");}else{ char r;printf("\n已经没有更多的票,您需要排队等候吗?(Y/N)");r=getch();printf("%c",r);if(r=='Y'||r=='y'){ printf("\n请输入您的姓名(排队订票客户):");scanf("%s",name);info->wait=appendqueue(info->wait,name,amount);printf("\n注册成功!\n");}else printf("\n欢迎您下次再次订购!\n");}}void return_tkt(){ struct airline *info;qnode *t,*back,*f,*r;int grade;linklist *p1,*p2,*head;char cusname[10];if(!(info=find())) return;head=info->order;p1=head;printf("请输入你的姓名(退票客户):");scanf("%s",cusname);while(p1!=NULL) {if(!strcmp(cusname,p1->name)) break;p2=p1;p1=p1->next;}if(p1==NULL){ printf("对不起,你没有订过票!\n");return;} else{if(p1==head) head=p1->next;else p2->next=p1->next;info->tkt_sur+=p1->ord_amt;grade=p1->grade;printf("%s成功退票!\n",p1->name);free(p1);}info->order=head;f=(info->wait).front;r=(info->wait).rear;t=f;while(t){if(info->tkt_sur=info->wait.front->req_amt){int i;info->wait.front=t->next;printf("%s订票成功!\n",t->name);for(i=0;i<t->req_amt;i++)printf("%s的座位号是:%d\n",t->name,(info->tkt_sur)-i);info->tkt_sur-=t->req_amt;info->order=insertlink(info->order,t->req_amt,t->name,grade); free(t);break;}back=t;t=t->next;if((info->tkt_sur)>=(t->req_amt)&&t!=NULL){ int i;back->next=t->next;printf("%s订票成功!\n",t->name);for(i=0;i<t->req_amt;i++)printf("<%s>'s seat number is:%d\n",t->name,(info->tkt_sur)-i); info->tkt_sur-=t->req_amt;info->order=insertlink(info->order,t->req_amt,t->name,grade); free(t);break;}if(f==r) break;}}void sort_tkt(){int j;struct airline t,*info,*p,*q;p=info=air;for(p=info;(p+1)->tkt_sur;p++)for(q=p+1;q->tkt_sur;q++){if(p->tkt_sur<q->tkt_sur){t=*p;*p=*q;*q=t;}}printf("终点站\t\t航班号\t飞机号\t飞行日期\t载客量\t余票量\t票价格\t折扣\n");for(j=0;j<MAXSIZE;j++){display(info);info++;}}int menu_select(){ int c;char s[20];printf("\n *航空客运订票系统*\n");printf("**************************************************************\n");printf(" 1.浏览航线信息 2.浏览已订票客户信息\n");printf(" 3.查询航线 4.办理订票业务\n");printf(" 5.办理退票业务 6.查看剩余票数并排序\n");printf(" 0.退出系统\n");printf("************************************************************************ ********\n");do{printf("请选择:");scanf("%s",s);c=atoi(s);}while(c<0||c>7);return c;}void main(){start=air;for(;;){switch(menu_select()){case 1:list();break;case 2:prtlink();break;case 3:search();break;case 4:order();break;case 5:return_tkt();break;case 6:sort_tkt();break;case 0:printf("\n欢迎您的使用,再见!\n");exit(0); }printf("\nPress any key to continue!\n");getch();}}电子信息工程学院数据结构课程设计指导教师评分表。

相关文档
最新文档