java课程设计航空订票管理系统设计

合集下载

(完整版)java航空订票系统毕业设计论文

(完整版)java航空订票系统毕业设计论文

本科毕业论文java航空订票系统学院:计算机与信息工程学院专业: 05计科双学位学号:姓名:周楷指导教师:李建荣职称:····论文提交日期:二ОО八年四月摘要当前中国民航市场扩大迅速,随着生活水平的提高,越来越多的人选择飞机出行,对航空公司的服务要求的越来越高,为了适应快速发展的需求,管理大量数据,有效地稳定的管理航空公司,我们要为某航空公司开发一套国内机票售票系统,要求能通过分布在全国各主要城市的该航空公司的营业网点为顾客提供航班查询,购买机票以及退票的服务。

该系统的工作流程如下:当顾客到达营业网点后向航空公司营业员提供出发地,目的地和出发日期,营业员根据以上信息,操作软件,连接航空公司的服务器,查询满足条件的航班,然后根据顾客的要求选择某个航班,输入乘客信息,以及舱位信息,然后执行出票操作。

该系统在营业网点内能够完成营业员登录,查询航班,出票等功能。

在航空公司内部能够完成添加或删除航班,添加或删除营业网点,添加或删除营业员等功能。

除此之外,该系统还要求能统计每个营业网点的业务量,以及每位营业员的工作量,并将这些信息保存在服务器端,并能在服务器端随时查询。

关键词:民航管理系统分层部署AbstractThe current Chinese commercial aviation expansion of market is rapid, along with the living standard enhancement, more and more many people chooses the airplane journey, to airline's service request more and more order to adapt the fast development demand, the management mass datas, the stable management airline, we must develop a set of domestic airplane ticket booking system effectively for some airline, the request can through distribute provide the scheduled flight inquiry in the national each main city this airline's business mesh point for the customer, the service which the purchase airplane ticket as well as returns a ticket.This system work flow is as follows: When the customer arrives business mesh point backward airline shop employees to provide embarks above, the destination and embarks the date, the shop employee according to the information, operates the software, the connection airline's server, the inquiry satisfies the condition the scheduled flight, then chooses some scheduled flight according to customer's request, inputs the passenger information, as well as the seat on a ship information, then the execution shows a ticket the operation.This system can complete the shop employee in business mesh point to register, the inquiry scheduled flight, shows a ticket and so on the functions.Can complete the increase or the deletion scheduled flight in the airline interior, the increase or the deletion business mesh point, the increase ordeletes functions and so on shop employee.In addition, this system also requests to be able to count each business mesh point the business volume, as well as each shop employee's work load, and these information preservation in the server end, and can inquire as necessary in the server end.Key words :The commercial aviation the management system management system the lamination deployment目录1.引言1.1民航发展概况1.2 技术选择1.3 开发工具1.2.1CS与BS1.2.2java技术1.3 技术选择2.需求分析:2.1软件分层与部署:2.2系统功能模块:2.3系统活动图:2.3用例图:2.3.1客户端用例:2.3.2服务器端用例:3.概要设计:3.1业务模型:3.2数据库设计3.2.1飞机机型表(AIRPLANE_MODEL): 3.2.2航班计划表(FLIGHT_SCHEDULER): 3.2.3航班表(FLIGHT):3.2.4营业网点表(BRANCH):3.2.5出票记录表(TICKET_ORDER):3.3DAO接口设计3.3.1FlightDAO:3.3.2BranchDAO:3.3.3TicketOrderDAO:3.4主要工作流程:3.5详细时序图4.详细设计4.1流程详细分析4.2用表格显示表单4.3构件技术等,使 BS更加成熟.4.软件重用不同CS 程序可以不可避免的整体性考虑, 构件的重用性不如在BS要求下的构件的重用性好.BS 对的多重结构,要求构件相对独立的功能. 能够相对较好的重用.就入买来的餐桌可以再利用,而不是做在墙上的石头桌子5.系统维护不同系统维护是软件生存周期中,开销大,重要CS 程序由于整体性, 必须整体考察, 处理出现的问题以及系统升级. 升级难. 可能是再做一个全新的系统BS 构件组成,方面构件个别的更换,实现系统的无缝升级. 系统维护开销减到最小.用户从网上自己下载安装就可以实现升级.6.处理问题不同CS 程序可以处理用户面固定, 并且在相同区域, 安全要求高需求, 与操作系统相关. 应该都是相同的系统BS 建立在广域网上, 面向不同的用户群, 分散地域, 这是CS无法作到的. 与操作系统平台关系最小.7.用户接口不同CS 多是建立的Window平台上,表现方法有限,对程序员普遍要求较高BS 建立在浏览器上, 有更加丰富和生动的表现方式与用户交流. 并且大部分难度减低,减低开发成本.8.信息流不同CS 程序一般是典型的中央集权的机械式处理, 交互性相对低BS 信息流向可变化, B-B B-C B-G等信息、流向的变化, 更象交易中心1.2.2Java技术Java是由Sun Microsystems公司于1995年5月推出的Java程序设计语言(以下简称Java语言)和Java平台的总称。

软件工程课程设计机票预定系统

软件工程课程设计机票预定系统

软件工程课程设计机票预定系统1. 系统简介机票预定系统是一款基于网络的应用程序,旨在帮助用户方便、快捷地预订机票。

该系统根据用户输入的信息,自动搜索相应的航班信息并进行比较,计算最优的价格方案。

用户可以在系统中查询航班信息、选择座位、进行支付等操作。

2. 项目需求(1)用户管理:实现用户注册、登录、信息修改等功能。

(2)航班信息管理:实现航班信息的录入、修改、查询、删除等功能。

(3)机票预订功能:实现用户选择航班、选座、支付等功能。

(4)管理员管理:实现管理员登录、审核机票信息、统计数据等功能。

(5)安全性:确保用户信息和交易安全。

3. 项目架构基于Java EE技术,使用Struts2框架、Spring框架和Hibernate框架实现。

(1)Struts2框架负责控制器部分,接受用户请求并处理。

(2)Spring框架负责业务逻辑部分,完成业务逻辑的处理及事务管理。

(3)Hibernate框架负责数据访问部分,完成持久化操作。

4. 系统设计(1)用户管理用户登录:用户输入用户名和密码,服务器验证用户信息,验证通过则跳转至主页面;验证失败则提示用户重新登录。

用户注册:用户输入用户名、密码和邮箱地址,服务器验证用户信息重复性,通过验证后储存用户信息。

用户信息修改:用户登录后可修改个人密码和邮箱地址。

(2)航班信息管理航班信息录入:管理员可以录入航班信息,包括航班号、出发地、目的地、起飞时间、降落时间、航班状态和票价等。

航班信息查询:用户可以在主页面上查询航班信息,也可以根据条件查询。

(3)机票预订功能机票预订:用户选择航班、座位和数量后进行支付。

机票支付:用户可以通过银行卡、支付宝等方式进行支付。

(4)管理员管理管理员登录:管理员输入用户名、密码进行登录。

机票信息审核:管理员负责审核和更新机票信息,并进行统计。

5. 系统测试(1)功能测试:对各项功能进行测试,确保每个功能都符合设计要求。

(2)兼容性测试:对不同型号和版本的浏览器进行测试,确保用户在使用该系统时不会出现兼容性问题。

java课程设计机票预订系统设计与实现

java课程设计机票预订系统设计与实现

目录一、设计题目 (1)二、设计目的 (1)三、设计分析 (1)3.1 可行性分析 (1)3.2 需求分析 (2)系统需求 (2)功能需求 (3)四、整体设计 (4)4.1 系统功能设计 (4)4.2 系统功能模块简介 (4)五、数据库设计 (5)5.1 见解构造设计 (5)5.2 逻辑构造设计 (7)六、详尽设计 (9)6.1 要点业务流程描绘 (9)航空售票管理 (9)管理员管理流程 (9)6.2 系统界面设计 (10)主功能界面 (10)其余功能界面 (11)6.3 模块代码实现 (13)航空订票查问模块 (13)航空售票管理模块 (14)七、系统测试 (16)7.1 软件测试的目标 (16)7.2 详尽测试 (16)八、总结 (17)九、参照文件 (18)一、设计题目机票预定系统设计与实现二、设计目的经过课程设计,培育综合运用本门课程及其余课程的基础知识去解决某一实诘问题的实质领域,加深对该课程的理解主要培育以下能力:查阅资料:采集与本设计相关的资料的能力。

方案的选择:建立既考虑技术上的先进性,又考虑经济上的合理性,并注意提升分析和解决问题的实质能力,快速正确的进行工程计算的能力,计算机应用能力;用简短的文字,清楚的图标来表达自己的设计思想能力。

三、设计分析3.1 可行性分析跟着我国市场经济的快速发展和信息化水平的不停提升,怎样利用先进的管理手段,提升航空公司售票管理系统的水平,是此刻社会所面对的一个课题。

提升公司的管理水平,必然全方向地提升公司的管理意识。

只有高标准、高质量的管理才能知足航空公司的发展需求。

面对信息时代的挑战,利用高科技手段来提升航空公司售票管理系统无疑是一条卓有见效的门路。

在某种意义上,信息与科技在公司管理与现代化建设中展现出愈来愈重要的地位。

航空公司售票管理系统方面的信息化与科学化,已成为现代化生活水平步入高台阶的重要标记利用计算机实现航空信息管理势在必行。

对于航空公司来说,利用计算机支持管理部门高效率达成航空信息管理的平常势务,是适应现代航空公司制度要求、推进航空公司由劳动型管理走向科学化、规范化的必需条件;而航空信息管理是一项琐碎、复杂而又必然十分仔细正确的工作,航线信息的管理,客户信息的管理,票务信息的管理,绝对的不同样意犯错,假如实行手工操作,需手工填制大批的表格,这就会耗资工作人员大批的时间和精力,并且安全度也不理想,利用计算机进行航空公司信息工作的管理,不只好够保证各项信息正确无误、快速输出,同时计算机拥有手工管理所没法比较的长处,比方:检索快速、查找方便、靠谱性高、储蓄量大、保密性好、寿命长、成本低等。

Java课程设计飞机航班管理系统

Java课程设计飞机航班管理系统

一.引言1.1项目的名称飞机航班信息管理系统1.2项目背景和目标飞机航班信息管理系统主要能够查询飞机的航班情况,飞行线路,票价,折扣等等情况,并能够在数据库中更新维护飞机航班的信息,对飞机航班数据库进行管理,如航班的增加,删除和修改等。

我们的目标就是为该系统提供后台连接数据库程序设计以及前台用户界面设计。

1.3项目的可行性研究设计此系统需要java面向对象编程基础,数据库应用知识以及功能分析。

根据目前所开设的课程,学生已经具备这样的知识,有能力综合java编程知识和数据库应用知识做出一个这样的飞机航班信息管理系统。

二、需求分析2.1系统概述此系统提供给系统管理员和用户。

系统管理员登陆后可以对飞机航班信息进行管理,如:添加飞机航班信息,删除飞机航班信息,修改飞机航班属性。

用户登陆后能进行飞机航班信息查询,订票以及退订。

2.2系统运行环境Java运行在eclipse软件上,数据库用mysql数据库2.3功能需求描述用户选择相关的服务项目可以查看相关航班基本信息,并且可以根据自己需求选择相应服务,系统的信息更新时,相关的信息经过相应处理后,会存入到飞机航班数据库中的航班信息记录表中;系统管理员根据航空公司实际情况可以更新航班信息,并通过修改信息处理后被保存到飞机航班表中。

三、系统设计3.1开发与设计的总体思想飞机航班信息管理系统主要分为用户和系统管理员2类,因此也将该系统分为2个相应的大的功能模块。

用户可以通过服务项目选择查询相关航班情况,进行订票,退订等服务项目。

系统会将数据库中相应信息反馈给顾客。

系统管理员负责管系统信息的及时更新,可以根据航空公司航班的具体的情况更新数据库。

3.2系统模块结构图3.3数据库结构设计为了支持此飞机航班信息管理系统,创建数据库airplane manage,在这个数据库里包含三个表:flight information表,passenger表,managerlogin表,和passengerlogin 表,它们的截图如下:在flight information(飞机航班信息)表中,有8个属性列,分别为id(序列),stime(飞机起飞时间),etime(飞机到达时间),sadd(飞机起始点),eadd(飞机终点),znum (总票数),snum(剩余票数)。

Java课程设计报告-----飞机航班管理系统

Java课程设计报告-----飞机航班管理系统

.引言1.1 项目的名称飞机航班信息管理系统1.2 项目背景和目标飞机航班信息管理系统主要能够查询飞机的航班情况,飞行线路,票价,折扣等等情况,并能够在数据库中更新维护飞机航班的信息,对飞机航班数据库进行管理,如航班的增加,删除和修改等。

我们的目标就是为该系统提供后台连接数据库程序设计以及前台用户界面设计。

1.3 项目的可行性研究设计此系统需要java面向对象编程基础,数据库应用知识以及功能分析。

根据目前所开设的课程,学生已经具备这样的知识,有能力综合java 编程知识和数据库应用知识做出一个这样的飞机航班信息管理系统。

需求分析2. 1系统概述此系统提供给系统管理员和用户。

系统管理员登陆后可以对飞机航班信息进行管理,如:添加飞机航班信息,删除飞机航班信息,修改飞机航班属性。

用户登陆后能进行飞机航班信息查询,订票以及退订。

2. 2系统运行环境Java运行在eclipse软件上,数据库用mysql数据库2. 3功能需求描述用户选择相关的服务项目可以查看相关航班基本信息,并且可以根据自己需求选择相应服务,系统的信息更新时,相关的信息经过相应处理后,会存入到飞机航班数据库中的航班信息记录表中;系统管理员根据航空公司实际情况可以更新航班信息,并通过修改信息处理后被保存到飞机航班表中。

三、系统设计3.1开发与设计的总体思想飞机航班信息管理系统主要分为用户和系统管理员2类,因此也将该系统分为2个相应的大的功能模块。

用户可以通过服务项目选择查询相关航班情况,进行订票,退订等服务项目。

系统会将数据库中相应信息反馈给顾客。

系统管理员负责管系统信息的及时更新,可以根据航空公司航班的具体的情况更新数据库3.2系统模块结构图3. 3数据库结构设计为了支持此飞机航班信息管理系统,创建数据库airpla ne man age,在这个数据库里包含三个表:flight information 表,passenger 表,managerlogin 表,禾口passengerlogin 表,它们的截图如下:▼ airplane manage►flight information1 亠■■■■.»■■■■•>■■■ IBUJ ■■■■.UIBIIUHI►j^mdnogeilogirii►pn 洱unq&ikpiri►informat»on_schemak mys 甲►怡琳在flight in formation (飞机航班信息)表中,有8个属性列,分别为id (序列),stime (飞机起飞时间),etime (飞机到达时间),sadd (飞机起始点),eadd (飞机终点),znum (总票数),snum (剩余票数)。

航空订票系统课程设计

航空订票系统课程设计

航空订票系统课程设计一、课程目标知识目标: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课时:实践项目指导与展示。

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

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

基于Java和数据库系统设计的航空售票系统随着人们出行频率的增加,航空售票系统的重要性也越来越受到关注。

基于Java和数据库系统设计的航空售票系统可以满足用户乘机预订、机票查询、航班管理等需求,为用户提供更加便捷和高效的服务。

一、系统架构设计基于Java语言,我们可以采用MVC(Model-View-Controller)模式设计系统架构,将系统分为数据业务逻辑层(Model),界面层(View)和控制层(Controller)。

1.数据业务逻辑层(Model)数据业务逻辑层主要负责处理与数据库相关的操作,包括数据存储、更新、查询、删除等,为系统提供了基础数据支持。

在该层中,我们可以定义一些Java类,用于操作数据库。

可以使用JDBC等技术,连接数据库,并通过SQL语句实现数据库操作。

数据业务逻辑层还可以包含一些业务逻辑处理类,用于实现一些复杂的业务逻辑处理。

2.界面层(View)界面层主要负责用户界面的设计和展示。

在该层中,我们可以使用Swing或者javafx 等技术,实现界面设计。

在设计界面时,需要充分考虑用户的使用习惯和行为模式,提供友好的用户界面和良好的用户交互体验。

同时,也需要对用户输入的数据进行验证,确保输入数据的合法性,避免出现错误情况。

3.控制层(Controller)控制层主要负责协调界面层和数据业务逻辑层之间的交互行为,控制用户界面的展示和数据的操作。

该层中包含一些操作类,用于控制用户的行为,处理用户输入的数据,实现不同的业务逻辑。

二、数据模型设计在设计航空售票系统的数据模型时,需要考虑数据的实体和关系。

航空售票系统的数据实体包括航班、乘客、机场、座位、订单等。

1.航班航班是系统中最重要的实体之一,包括航班号、出发时间、起飞机场、到达机场、舱位等信息。

在数据库中,我们可以通过航班号来唯一标识一条航班信息。

2.乘客乘客是一种重要的数据实体,包括乘客姓名、证件号码、联系方式等信息。

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

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

基于Java和数据库系统设计的航空售票系统航空售票系统是一个复杂的软件系统,涉及到用户预订机票、航班信息管理、座位管理、票务管理、支付系统等多个模块。

本文将着重介绍基于Java和数据库系统设计的航空售票系统的整体架构和关键功能模块。

一、系统架构1.1 系统整体架构航空售票系统的整体架构可以分为三层:表示层、业务逻辑层和数据访问层。

- 表示层:负责与用户交互,包括用户界面展示、用户输入接收和响应等。

通常采用Web或移动应用作为表示层。

- 业务逻辑层:处理用户的请求,进行业务逻辑的处理,包括航班查询、订票、支付等。

- 数据访问层:负责与数据库进行交互,包括数据的读取、更新和删除等操作。

1.2 技术选型基于Java的航空售票系统可以采用Spring框架作为整体框架,通过Spring MVC实现表示层的功能,Spring IOC实现业务逻辑层的功能,MyBatis或Hibernate实现数据访问层的功能。

Java语言本身具有平台无关性和较好的跨平台兼容性,能够满足航空售票系统在不同平台上的部署需求。

二、系统功能模块2.1 用户模块用户模块包括用户注册、登录、个人信息管理等功能。

注册时需要验证用户输入的信息,并将用户信息存储到数据库中;登录时需要验证用户的身份信息,确保用户登录后能够进行相关操作;个人信息管理包括用户的个人资料和订单信息的展示和管理等。

2.2 航班查询模块航班查询模块允许用户根据出发地、目的地、日期等条件查询符合条件的航班信息。

系统需要从数据库中读取航班信息,并将符合条件的航班信息展示给用户。

2.3 订票模块订票模块允许用户选择符合条件的航班进行订票操作。

用户需要输入乘客信息、选择座位以及支付方式等。

系统需要对用户输入的信息进行验证,确保订单的合法性;在用户订票成功后,需要更新数据库中的座位信息和订单信息。

2.4 支付模块支付模块是航空售票系统中非常重要的一个模块。

用户在订票成功后需要进行支付操作,系统需要与第三方支付平台进行交互,完成支付流程。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《面向对象程序设计》课程设计报告题目: xx 专业: xx 班级: x 姓名: xx 指导教师: x成绩:xxxx 年 x 月x 日xx目录1 设计内容及要求 (1)1.1 设计任务与要求 (1)1.2硬件可靠性 (1)1.3系统运行的稳定性 (1)1.4系统功能齐全、开放性好 (1)2 需求分析 (2)2.1 数据的输入 (2)2.2 数据的修改 (2)2.3 数据的删除 (2)2.4 数据的查询 (2)3 概要设计 (3)3.1系统用例图 (3)3.2用例描述 (3)3.3 基本描述 (4)3.4 功能 (4)3.5 算法 (5)3.5 流程逻辑 (6)4系统数据结构设计 (11)4.1 逻辑结构设计要点 (11)4.2 物理结构设计要点 (11)4.3 数据结构与程序的关系 (12)4.4 数据库分析 (12)4.5 程序系统的组织结构 (14)6 系统运行效果与操作 (16)参考文献: (36)1 设计内容及要求1.1 设计任务与要求对航空公司来说,航空订票管理系统既能扩大服务范围,扩大公司影响,减少营业费用,又对稳固航空公司的客源有着重要的辅助作用;站在旅客的角度,航空公司提供的这种服务提供了更多的方便,节省了很多时间。

建设航空订票管理系统是体现和提高航空公司领导业绩的一条捷径,此外还具有重要意义:1、改善航空公司服务质量;2、创造和提升航空公司的品牌优势;3、优化航空公司的服务流程;4、提升信息化的水平;1.2硬件可靠性数据库服务器:数据库服务器用于存放用户及航班信息等资料,配一台专用服务器,安装数据库SQL server2000。

1.3系统运行的稳定性系统支持操作系统如下:Windows vista、Windows XP(服务器版本)(推荐)或Windows 2000,系统运行稳定可靠,可以保证365天*24小时的不间断运行,并安装杀毒软件,防止病毒的干扰,保证系统的运行稳定。

SQL Server数据库服务器版, 可以存储管理大量数据信息1.4系统功能齐全、开放性好订票,退票,查询,管理等业务,全部使用软件来控制,因此今后功能变动、业务改动很灵活。

2 需求分析2.1 数据的输入管理员根据需要来输入航班、订票人、乘客等信息的具体数据,但必须保证其正确性和准确性。

2.2 数据的修改管理员根据需要对指定的数据进行修改,由于记录繁多,因此用户首先要输入一定的查询条件,缩小记录范围,然后再从该范围中找到指定的记录进行修改,保证修改的内容的正确性和准确性后可更新数据库的数据。

2.3 数据的删除管理员根据需要对指定的数据进行删除,由于记录繁多,因此用户首先要输入一定的查询条件,缩小记录范围,然后再从该范围中找到制定的记录进行删除,保证将要删除的内容的正确性和准确性后可删除掉数据库中的数据。

2.4 数据的查询管理员根据需要查询数据库中的所有数据,输入一定的查询条件,然后可按照输入的查询依据查询新数据库的数据。

3 概要设计3.1系统用例图图 1 系统用例图3.2用例描述(1)航班查询查看航班信息基本查询,从下拉列表中选择航班或起点或终点信息综合查询,手动输入航班的基本信息(2)订票输入航班信息显示航班信息,以及打折后的票价信息,询问信息是否(3)退票输入将退票的序号显示票的具体信息,并询问是否退票退票成功,更新顾客数据库(4)管理登陆进入管理界面选择添加、更新、删除航班,或查看航班具体信息等业务添加输入添加航班的具体信息更新航班数据库更新输入所要更改航班的具体信息更新航班数据库删除选择所要删除的航班更新航班数据库查看航班具体信息显示数据库中所有航班的具体信息3.3 基本描述(1)服务器端程序:本套航空订票系统软件的服务器端应用程序,使用java编写前台控制软件,管理员通过使用该软件来进行对数据库中的数据进行管理。

(2)后台数据库:本套航空订票系统软件的后台数据库使用Microsoft SQL Server 2000来搭建后台数据库服务器,用来存放所有的数据。

3.4 功能(1)服务器端的主要功能订票信息的查询功能:1)查询航班信息包括航班号、地点等信息。

2)查询及票价格包括起始地、抵达地、、机票价格等信息。

3)查询订票人的详细信息:精确查询:输入订票人身份证号码查询订票人详细信息。

模糊查询:输入订票人的姓名(或订票人的姓或是年龄或是性别)查询出一系列相关的信息,然后可从小范围内找到订票人的详细信息。

4)查询乘客的详细信息:输入乘客的身份证号码查询乘客的详细信息。

1)填写订票人的详细信息其中包括:姓名、身份证号码、联系电话、地址等信息。

2)填写订票的详细信息,其中包括:航班编号、订票时间、订票数量等信息。

录入信息功能1)取票功能:根据输入的订票人身份证号验证订票人身份后,输入详细的乘客信息并进行保存。

2)直接购票:直接输入乘客详细信息并保存(不通过订票人)。

3)录入航班信息:录入航班的相关信息。

4)订票人取消订票:保存订票人取消订票信息。

④修改功能1)修改乘客信息:将查找到的乘客信息,进行修改,然后进行保存。

2)修改订票人信息:将查找到的订票人的信息进行修改然后进行保存。

3)修改航班信息:将查找到的航班信息进行修改后保存。

⑤删除功能1)删除乘客信息:将查找到的乘客信息,进行删除。

2)删除订票人信息:将查找到的订票人的信息进行删除。

3)删除航班信息:将查找到的航班信息进行删除。

3.5 算法1)将管理员输入的数据,按字段保存到数据库中。

2)将数据库中的数据,按字段提取到用户界面中。

3)必要的去除重复项的算法。

4)按条件修改、删除数据中的数据。

5)保持表间数据的一致性。

3.5 流程逻辑(1)服务器端各模块的流程图查询模块流程图图 2 服务器查询模块添加模块流程图图 3 服务器添加模块修改模块流程图图 4 服务器修改模块删除模块流程图开始运行是否继续运行程序初始选择要删除的内容是判断数据是否符合规定删除数据结束删除功能图 5 服务器删除模块(2)客户端各模块的流程图查询模块的流程图图 6 客户端查询模块订票模块的流程图开始运行是否继续运行程序初始输入相应的订票人的信息将数据添加到数据库判断数据是否符合规定结束添加功能不符合是符合图7 客户端添加模块4系统数据结构设计4.1 逻辑结构设计要点按照需求分析设计数据库中的字段,建立一个逻辑上的数据库的结构。

4.2 物理结构设计要点在数据库软件(SQL Server2000)中建立数据库,并要保证数据库最低要符合第二范式。

4.3 数据结构与程序的关系(1)静态数值需求支持并行操作的用户。

处理多条记录数据。

表或文件的最小为2048字节,最大无限制。

(2)精度需求在进行提取数据库数据时,要求数据记录定位准确,在向数据库中添加数据时,要求输入数据准确。

主要的精度适应系统要求,不接受违规操作。

(3)时间特性需求响应时间应在人的感觉和视觉事件范围内;更新处理时间,随着应用软件的版本升级,以及网络的定期维护更新。

(4) 灵活性当需求发生某些变化时,管理应用软件操作方式、数据结构、运行环境基本不会发生变化,变化只是将对应的数据库文件内的记录改变,或将过滤条件改变即可。

(5) 数据管理能力需求本应用软件可管理多条记录,本应用软件基本约用1,300千字节空间,所有文件均放置在数据库中调用,查询数据、文件、记录时,通过库文件名直接进行操作或通过存储过程来完成操作。

4.4 数据库分析(1)数据表建立需将数据库设计成关系模式最低符合第二范式的标准。

按照需求分析,确定系统的实体。

根据实体分析的结果,在数据库中应建立如下数据表:adtor(管理员表)Flight(航班信息表)destine(客户信息表)④user(用户信息表)(2)数据库设计说明destine(订票人信息表)在该信息表中包含以下字段:destine_id(订票人身份证号码)、flight_no(航班号)、destine_count(订票数量)、destine_date(定票日期)、destine_status(订票状态)、destine _id (订票人身份证号码)、destine_phone(订票人联系电话)、destine_address(订票人地址)、destine_sex(订票人性别)、destine_age(订票人年龄)等字段。

flight(航班信息表)在该信息表中包含以下字段:flight_no(航班号)、begin_from(起飞地点)、end_address(降落地点)、begin_time(起飞时间)、end_time(降落时间) ticket_price(机票价格)等字段。

(3)数据库ER图图8 数据库ER图4.5 程序系统的组织结构(1)系统组织结构图服务器端的组织结构图图9 系统层次结构图6 系统运行效果与操作图10 主操作界面代码如下:package flight;import java.awt.GridLayout;import javax.swing.*;import java.awt.event.*;public class Register extends JFrame implements ActionListener{ JTextField user;JPasswordField psw1,psw2;JLabel a,b,c;JButton ok,no;public Register(){a=new JLabel("订票");a.setBounds(70,70,60,25);b=new JLabel("管理");b.setBounds(77,130,60,25);c=new JLabel("退出");c.setBounds(60,190,60,25);user=new JTextField(20);user.setBounds(130,70,180,25);psw1=new JPasswordField(20);psw1.setBounds(130,130,180,25);psw2=new JPasswordField(20);psw2.setBounds(130,190,180,25);add(a);add(user);add(b);add(psw1);add(c);add(psw2);setLayout(null);setBounds(100,200,500,350);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);setResizable(false);setVisible(true);}public void actionPerformed(ActionEvent e){String a,b,c;if (e.getSource() == ok) {a=user.getText();b=psw1.getText();c=psw2.getText();dispose(); //关闭窗口System.exit(0); //退出程序}}图11 用户登录界面代码如下:public class AdminLogin extends JFrame implements ActionListener{database datalink;JTextField input1;JPasswordField input2;JLabel prompt1;JLabel prompt2;JButton ok;public AdminLogin() {super("管理员登陆");setSize(400, 100);Dimension size = Toolkit.getDefaultToolkit().getScreenSize();setLocation((size.width - getWidth()) / 2,(size.height - getHeight()) / 2);setLayout(new FlowLayout());prompt1 = new JLabel(" 账号:");prompt2 = new JLabel(" 密码:");input1 = new JTextField(8);input2 = new JPasswordField(8);ok = new JButton("确定");ok.setSize(50, 100);ok.addActionListener(this);add(prompt1);add(input1);add(prompt2);add(input2);add(ok);datalink=new database();setVisible(true);}public void actionPerformed(ActionEvent e){if(e.getSource()==ok){if(input1.getText().length()==0||input2.getText().length()==0){JOptionPane.showMessageDialog(this,"请输入用户名或密码!","提示错误",JOptionPane.ERROR_MESSAGE);}else {try{boolean b=true;Connection con=datalink.getCon();Statement stm=datalink.getStm();ResultSet rs=stm.executeQuery("SELECT * FROM admin_info");if(rootPaneCheckingEnabled){while(rs.next()){String us=input1.getText();String ps=input2.getText();if(us.equals(rs.getString("admtor"))&&ps.equals(rs.getString("admpsw" ))){new Manager();this.dispose();b=false;}InetAddress address =InetAddress.getLocalHost();String IP_name = address.getHostAddress();Calendar E=Calendar.getInstance();int year = E.get(Calendar.YEAR);int month =E.get(Calendar.MONTH)+1;int day = E.get(Calendar.DAY_OF_MONTH);int hour = E.get(Calendar.HOUR_OF_DAY);FileWriter out;out = new FileWriter("D:\\Adminfile.txt");out = new FileWriter("D:\\Adminfile.txt");out.write("登陆用户:"+input1.getText()+" 密码:"+ps+" 登陆时间"+year+"-"+month+"-"+day+" "+hour+" IP:"+IP_name);out.close();}if(b){JOptionPane.showMessageDialog(this,"请输入正确的用户名或密码!","提示错误",JOptionPane.ERROR_MESSAGE);}//con.close();}}catch (IOException ex) {Logger.getLogger(Login.class.getName()).log(Level.SEVERE, null, ex); } catch (SQLException ex) {Logger.getLogger(AdminLogin.class.getName()).log(Level.SEVERE, null, ex);}}}}public static void main(String[] args) {new AdminLogin();}}图12 按班次查询航班图13 按终始站查询图12和图13代码如下:public class FTable extends AbstractTableModel{private Object[][] data;private String[] head = { "航班号","航班公司", "始发站", "终点站" ,"最大乘客数","现有乘客数","起飞时间","普通舱","商务舱"};public FTable(List<ticktInfo> list){data = new Object[list.size()][];for(int i = 0;i < list.size();i++){ticktInfo f = list.get(i);data[i]=newObject[]{f.getFlightID(),f.getCompany(),f.getSstation(),f.getEstation (),getStartTime(),f.getMax(),f.getCurrent(),f.getPutongcang(),f.getShang wucang()};}}public int getColumnCount(){return head.length;}public int getRowCount(){return data.length;}public String getColumnName(int col){return head[col];}public Object getValueAt(int row,int col){return data[row][col];}public Class getColumnClass(int c){return getValueAt(0,c).getClass();}}图14 添加航班代码如下:public class AddF extends JFrame implements ActionListener{String[] title = {"航班号","航班公司","起飞地点","到达地点","起飞时间","最大乘客数","现有乘客数","普通舱 ","商务舱"};JTextField txt1 = new JTextField(20);JTextField txt2 = new JTextField(20);JTextField txt3 = new JTextField(20);JTextField txt4 = new JTextField(20);JTextField txt5 = new JTextField(20);JTextField txt6 = new JTextField(10);JTextField txt7 = new JTextField(10);JTextField txt8 = new JTextField(10);JTextField txt9 = new JTextField(10);JButton OK = new JButton("保存");JButton Cancel = new JButton("取消");ticktInfo flight;ArrayList plst=null;boolean success;public AddF(){Dimension size = Toolkit.getDefaultToolkit().getScreenSize(); setLocation((size.width - getWidth()) / 3,(size.height - getHeight()) / 3);Container con = getContentPane();con.setLayout(new GridLayout(9,1));JPanel p[] = new JPanel[9];for (int i=0;i<9;i++){p[i] = new JPanel(new FlowLayout(FlowLayout.LEFT));p[i].add(new JLabel(title[i]+":"));}p[0].add(txt1);p[1].add(txt2);p[2].add(txt3);p[3].add(txt4);p[4].add(txt5);p[5].add(txt6);p[6].add(txt7);p[7].add(txt8);p[8].add(txt9);for (int i=0;i<9;i++){con.add(p[i]);}JPanel bottom = new JPanel();bottom.add(OK);bottom.add(Cancel);con.add(bottom);OK.addActionListener(this);Cancel.addActionListener(this);setTitle("航班信息添加窗口");setSize(800,500);setVisible(true);}public void actionPerformed(ActionEvent e) { if(e.getSource()==OK){String a=txt1.getText();String b=txt2.getText();String c=txt3.getText();String d=txt4.getText();String e1=txt5.getText();String f=txt6.getText();String g=txt7.getText();String h=txt8.getText();String j=txt9.getText();Solution.AddFlight(a, b, c, d, e1, f, g, h, j);dispose();}else if(e.getSource()==Cancel){dispose();}}public static void main(String[] args) {new AddF();}}图15 删除航班代码如下:public class DeletF extends JFrame implements ActionListener{String[] title = {"航班号","航班公司","起飞地点","到达地点","起飞时间","最大乘客数","现有乘客数","普通舱 ","商务舱"};JTextField txt1 = new JTextField(20);JTextField txt2 = new JTextField(20);JTextField txt3 = new JTextField(20);JTextField txt4 = new JTextField(20);JTextField txt5 = new JTextField(20);JTextField txt6 = new JTextField(10);JTextField txt7 = new JTextField(10);JTextField txt8 = new JTextField(10);JTextField txt9 = new JTextField(10);JButton OK = new JButton("保存");JButton Cancel = new JButton("取消");ticktInfo flight;ArrayList plst=null;boolean success;public AddF(){Dimension size = Toolkit.getDefaultToolkit().getScreenSize(); setLocation((size.width - getWidth()) ;Container con = getContentPane();con.setLayout(new GridLayout(9,1));JPanel p[] = new JPanel[9];for (int i=0;i<9;i++){p[i] = new JPanel(new FlowLayout(FlowLayout.LEFT));p[i].delete(new JLabel(title[i]+":"));}p[0].delete(txt1);p[1].delete(txt2);p[2].delete(txt3);p[3].delete(txt4);p[4].delelte(txt5);p[5].delete(txt6);for (int i=0;i<6;i++){con.add(p[i]);}JPanel bottom = new JPanel();bottom.delete(OK);bottom.delete(Cancel);con.delete(bottom);OK.deleteActionListener(this);Cancel.deleteActionListener(this);setTitle("航班信息删除窗口:”);setVisible(true);setSize(800,500);}public void actionPerformed(ActionEvent e) {if(e.getSource()==OK){String a=txt1.getText();String b=txt2.getText();String c=txt3.getText();String d=txt4.getText();String e1=txt5.getText();String f=txt6.getText();String g=txt7.getText();String h=txt8.getText();String j=txt9.getText();Solution.AddFlight(a, b, c, d, e1, f, g, h, j); dispose();}else if(e.getSource()==Cancel){dispose();}}public static void main(String[] args) {new deleteF();}}图16 乘客购票信息图17 购票成功代码如下:class ClientInfo extends JFrame implements ActionListener{String title[] = {"航班号","起点","终点","起飞日期","姓名","身份证","联系电话","邮箱","座位号","购买票数"};JTextField txtFid = new JTextField(10);JTextField txtStart = new JTextField(10);JTextField txtEnd = new JTextField(10);JTextField txtTime = new JTextField(10);JTextField txtName = new JTextField(10);JTextField txtID = new JTextField(20);JTextField txtTelNum = new JTextField(20);JTextField txtEmail = new JTextField(20);JTextField txtSeatNum = new JTextField(10);JTextField txtCount = new JTextField(10);JButton btnOK = new JButton("确定");JButton btnCancel = new JButton("取消");public ClientInfo() {Container con = getContentPane();con.setLayout(new GridLayout(11,1));JPanel p[] = new JPanel[10];for (int i=0;i<10;i++){p[i] = new JPanel(new FlowLayout(FlowLayout.LEFT));p[i].add(new JLabel(title[i]+":"));}p[0].add(txtFid);p[1].add(txtStart);p[2].add(txtEnd);p[3].add(txtTime);p[4].add(txtName);p[5].add(txtID);p[6].add(txtTelNum);p[7].add(txtEmail);p[8].add(txtSeatNum);p[9].add(txtCount);for (int i=0;i<10;i++){con.add(p[i]);}JPanel bottom = new JPanel();bottom.add(btnOK);bottom.add(btnCancel);con.add(bottom);btnOK.addActionListener(this);btnCancel.addActionListener(this);Dimension size = Toolkit.getDefaultToolkit().getScreenSize();setLocation((size.width - getWidth()) ;setTitle("乘客订票信息填写窗口");setSize(450,600);setVisible(true);}public void actionPerformed(ActionEvent e) {if(e.getSource()==btnOK){try{String a = txtName.getText();String b = txtID.getText();String c = txtTelNum.getText();String d = txtEmail.getText();String e1 = txtSeatNum.getText();String f = txtFid.getText();String g = txtStart.getText();String h = txtEnd.getText();String i = txtTime.getText();Solution.AddClientInfo(a, b, c, d, e1, f, g, h, i); database link=new database();Connection con=link.getCon();Statement stm=link.getStm();String sql="select max,current from flight_info where flightID="+"'"+txtFid.getText().trim()+"'"+"";try{int max=0,cur=0;int udrem=0;ResultSet rs=stm.executeQuery(sql);String s1=txtFid.getText().trim();int ct=Integer.parseInt(txtCount.getText().trim());while(rs.next()){max=rs.getInt("max");cur=rs.getInt("current");}if(cur>0){if(cur-ct>0){udrem=cur-ct;String str1="update flight_info set max="+"'"+max+"'"+",current="+"'"+udrem+"'"+"whereflightID="+"'"+s1+"'"+"";stm.executeUpdate(str1);JOptionPane.showConfirmDialog(this,"订票成功","购票提示",JOptionPane.YES_NO_OPTION);dispose();}else{udrem=cur-ct;JOptionPane.showConfirmDialog(this,"剩余票数为:"+String.valueOf(udrem)+"张","购票提示",JOptionPane.YES_NO_OPTION);}}else{JOptionPane.showConfirmDialog( this,"票已售完","提示错误",JOptionPane.YES_NO_OPTION);}con.close();dispose();}catch(Exception ex){JOptionPane.showConfirmDialog(this,"订票失败","购票提示",JOptionPane.YES_NO_OPTION);}}catch(Exception ex){}}else if(e.getSource()==btnCancel){dispose();}}public static void main(String[] args) {new ClientInfo();}}图18 退出系统代码如下:public class Login extends JFrame implements ActionListener{JTextField user;JPasswordField psw;JLabel a,b;public Login(String s) {super(s);cno.addActionListener(this);cno.setBounds(230,180,60,30);add(a);add(user);add(b);add(psw);add(cfg);add(cno);setLayout(null);setBounds(200,200,430,280);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);setResizable(false);setVisible(true);}public void actionPerformed(ActionEvent e){if(e.getSource()==cno){new Register();this.dispose();}}public static void main(String args[]){new Login("用户退出");}参考文献:[1]《信息系统分析与设计》,陈禹主编,杨善林梁昌勇左美云副主编高等教育出版社,2005.[2]《信息系统开发方法教程》,陈佳主编,清华大学出版社,1999 .[3]《信息系统设计原理与应用》,刘鲁,北京航空航天大学出版社,1995.[4]《企业管理信息系统开发的理论和方法》,葛世伦,代逸生,清华出版社,1996年(中文著作).[5]《java案例开发集锦(第二版)》,袁然,郑自国,来为国,电子工业出版社,2008年[6] 闫建红. 基于UML的机票预定系统的开发研究[J]. 太原师范学院学报(自然科学版), 2005,(03).。

相关文档
最新文档