JAVA航空订票系统.docx
- 文档编号:23556120
- 上传时间:2023-05-18
- 格式:DOCX
- 页数:27
- 大小:3.66MB
JAVA航空订票系统.docx
《JAVA航空订票系统.docx》由会员分享,可在线阅读,更多相关《JAVA航空订票系统.docx(27页珍藏版)》请在冰豆网上搜索。
JAVA航空订票系统
2013暑期java认识实训
航空订票系统
1前言
本航空订票系统是基于java开发的,根据现今航空业的飞速发展,为了缓解航空公司对机票管理的压力而开发的这个订票系统。
1.1编写目的
本需求分析是为了开发‘航空售票系统’而编写,使分析员、程序员、测试员、和最终用户能更好的理解和使用该系统。
本需求分析不仅是整个软件开发的依据,对以后的维护工作也起着指导性作用,同时也是测试计划和用户手册的编写依据。
1.2编写背景
1.软件系统名称:
航空售票系统
2.任务提出者:
3.用户:
XX航空公司,旅客
4.实现:
XX航空公司数据库
5.构建平台:
WindowsXP及以上系统,其数据库mysqlSEVER5.2。
1.3目标
该软件开发是为了提高公司员工的工作效率和更好的对乘客服务。
1、提高日常售票事务处理速度;
2、节省人力资源;
3、人员利用率提高;
4、实现现代化的管理;
5、使乘客更好的了解旅行相关的信息;
6、更有利于乘客的订票和取票。
1.4用户的特点
本系统面向广大的群众,只需要群众能进行基本的操作,能够完成订票过程。
航空公司的管理员能够熟练的操作本系统并且进行基本的管理和维护。
1.5课题研究背景
伴随着人们更多的使用飞机作为交通工具,国内机票票务市场也在快速发展。
及此同时,人们希望机票销售手段也能相应地有所调整,并对如何能经济、方便和及时地购买到自己所需要的机票表现出极大的关注,于是,传统的购票方式开始面临变革。
机票代理窗口购买机票是最传统的方式,但随着人们工作和生活节奏的加快,到代理点购买机票就显得有些耗费时间了,而且机票价格及航班的选择对于消费者来说仍然不是透明的,所有相关信息都是单向传递的缺陷,即购票者只能被动的接受机票代理所提供信息,这种缺陷是导致机票订购市场一些不规范代理现象出现的原因——个别机票代理可以利用订票流程中这种信息单向传递的缺陷,误导消费者,从中渔利,例如优先销售高价机票等等。
因此,每到春节、五一、十一黄金周,总有一些“买机票难,弄清票价难,讨个说法更难”投诉频见报端。
一言以蔽之,就是“消费者想要获得知情权难”。
可见,票务市场已产生诚信危机,对传统机票销售模式的改革已是大势所趋,也由此引发了对民航网上订票系统的研究和开发。
1.6课题研究意义
航空售票系统作为面向广大用户的售票的终端,具有操作简单、流程顺畅、效率高、完善严谨的特点,是根据市场的实际需要,融合机场的实际业务运作特点和管理需要,推出的体现当前行业最先进管理思想的解决方案。
通过实时、透明的航班价格及信息的提供,使用户及机票代理均可获得诸多的益处:
用户可以自己选择航班、时刻、舱位,使航班价格及信息透明化,最大限度地消除了目前机票销售市场上存在的散、乱、黑等现象,从而使用户明明白白“订”票,机票代理人明明白白售票,使用户及机票代理人的合法权益得到最大保障。
打印电子票单功能,使购票过程大大简化,不仅降低了成本,而且提升了客户的服务响应速度和满意度,真正实现了现代化管理。
2需求分析
2.1任务和要求
2.1.1系统的总体设计
本系统采用的BS结构,因此,此系统可分成页面的设计,包括管理员页面和用户页面;业务层的设计,主要是一些关于处理页面发过来的请求的方法。
2.1.2系统功能
5.2.1用户端:
1.用户注册
2.修改用户信息
3.查询航班
4.预订机票
5.订单改签
6.退票
7.出票
5.2.2管理员:
1.航班查询
2.航班删除
3.修改航班
4.添加航班
2.1.3任务详情
a)注册
注册信息:
用户名,密码,姓名,身份证号,性别,手机号,电子邮箱,地址,
用户名:
由数字、下划线或字母组成,长度为6—16位,
密码:
由字母、下划线或数字组成,长度为6—16位,并且两次输入的密码必须一致,
手机号码:
为11位
电子邮箱:
可选择是否填写
地址:
可选择是否填写
b)登陆
登陆账号、密码,验证是否正确,正确则登陆成功,否则失败。
c)修改信息
修改个人信息
d)查询
1)按出发地、目的地和日期查询
2)按航班号查询
e)订票
乘客信息(身份证号,姓名,手机号)
机票信息(航班号,出发地,目的地,出发时间,座位号)
f)改签
在已购买的航班起飞两小时之前可办理改签,否则不予受理。
g)退票
取消订单,扣除票价费5%的手续费,返回剩余的机票费用,
h)出票(打印机票信息)
订单号,航班号,座位号,
出发地,目的地,时间,
乘客信息:
身份证号,姓名
机票类型:
头等舱,经济舱
2.1.4任务分配
2.2运行环境
●操作系统:
WindwosXP/7/8
2.3开发工具
●操作系统:
WindwosXP/7/8
●软件:
MySQLSever5.2Eclipse
3分析和设计
3.1系统分析及设计思路
3.1.1系统的理论基础
3.1.2系统的可行性
任何系统的存在都必然有它存在的一面,民航订票系统是为了缓解航空业对于这几年飞速发展的机票的紧张管理。
民航系统是面向群体的不订向用户的一个系统,因此,这个系统就要求安全,高效率和稳订的特点,鉴于这些因素,我作了以下的分析。
3.1.3语言可行性的分析
Java是一种简单的面象对象的分布式的解释的健壮的安全的结构中立的可移植的性能很优异的多线程的动态的语言。
将它作为本系统的主要开发语言主要体现在以下几点:
:
1、简单
Java语言是简单的,它摒弃了C++中很好使用很难理解也很容易出错的特性,如操作符重载,多继承等,特别地,Java语言不使用指针,并提供了自动的废料收集,使得程序员不必为内存管理而担忧,因而它是简单易学的,它可以让我们放心的来关注我们的业务流程而不需要考虑各种内存溢出的情况。
2、面向对象
Java语言的设计完全是面向对象的,提供类、接口和继承等原语,为了简单起见,只支持类之间的单继承,但支持接口之间的多继承,并支持类及接口之间的实现机制(关键字为implements)。
3、分布式
Java包括一个支持HTTP和FTP等基于TCP/IP协议的子库。
因此,Java应用程序可凭借URL打开并访问网络上的对象,其访问方式及访问本地文件系统几乎完全相同。
本系统是BS模式的,用户的访问主要是通过Internet来访问和实现其业务的。
使用Java语言能很好的满足本系统的需要。
4、健壮
Java致力于检查程序在编译和运行时的错误。
类型检查帮助检查出许多开发早期出现的错误。
Java自已操纵内存减少了内存出错的可能性。
Java提供Null指针检测数组边页检测异常出口字节代码校验。
本系统是一个长期运行型的系统,Java语言的健壮性让我们的系统能够很好的来维护和管理我们的系统。
5、安全
Java的安全性可从两个方面得到保证。
一方面,在Java语言里,象指针和释放内存等C++功能被删除,避免了非法内存操作。
另一方面,当Java用来创建浏览器时,语言功能和一些浏览器本身提供的功能结合起来,使它更安全。
本系统是一个WEB系统,安全性尤其重要,采用Java能够让我们的系统处于一个安全的环境,不受外来的非法操作而崩溃。
6、网络应用系统
Java是一种及平台无关的语言,因此用Java开发的网络应用系统可以在各种平台上运行,大大增加了开发效率,减少重复劳动。
而且,Java集成的网络功能分有利于开发网络应用系统。
本系统就是一个基于网络环境的开发,使用Java可以很好的满足本系统的要求。
3.1.2系统的设计
----------------------
3.2主要类图
通过以上实体数据的逻辑设计,用E-R图分别表示实体和属性,以及用E-R图表示实体之间的关系,如图3-1~图3-4所示。
图3-1管理
图3-2用户
图3-3航班
图3-4出票
3.3系统流程图
3.3.1用户登录功能的流程图
用户的登录功能包括了登录和注册2个功能,其功能的具体实现见图5-15。
图5-15用户登录流程图
1.用户登陆
●功能描述:
完成用户登陆
●输入元素:
用户名字、用户密码
●处理流程:
如果数据库中有该用户,登陆系统,没有,返回本页面重新输入
2.用户注册
●功能描述:
完成用户注册
●输入元素:
用户名字、用户密码以及一些相关信息
●处理流程:
如果数据库中没有该用户名,注册成功登陆系统,没有,返回本页面重新输入
3.3.2订票功能流程图
图5-16订票功能流程图
●功能描述:
完成用户订票功能
●输入元素:
乘客姓名,身份证号码,银行卡号和密码等
●处理流程:
进入乘客信息填写页面中,输入数据通过验证跳转到支付页面,失败返回本页面重新输入,在支付页面也是一样,输入的银行卡数据通过验证,而且在数据库中找到该银行卡,跳转到成功页面,失败返回本页面重新输入
3.3.3退票流程图
图5-17退票流程图
●功能描述:
完成用户退票功能
●输入元素:
银行卡号,银行卡密码
●处理流程:
如果数据库中有该银行卡,跳转到成功提示页面,失败返回本页面重新输入
3.3.4管理员登录流程图
图5-18管理员登录流程图
●功能描述:
完成管理员登陆功能
●输入元素:
管理员账号,管理员密码
●处理流程:
如果数据库中有该管理员,登陆系统,否则返回本页面重新输入
3.3.5修改航班流程图
图5-19修改航班流程图
●功能描述:
完成管理员修改航班的功能
●输入元素:
所要修改航班的信息
●处理流程:
输入的是数据通过验证,跳转到成功提示页面,失败返回本页面重新输入
3.3.6增加航班流程图
图5-20增加航班流程图
●功能描述:
完成管理员增加航班的功能
●输入元素:
所要增加航班的信息
●处理流程:
输入的航班信息通过验证,而且输入的航班编号数据库中不存在,添加成功,否则返回本页面重新输入
3.3.7业务流程图
本系统是民航订票系统,在客户端实现了用户的登录,注册,航班的查询和退订的功能的页面,在航空公司内部实现了管理员的登录,管理员对航班的增删查改等操作。
具体业务流程请参见图3-1。
图3-5业务流程图
3.4创建数据库
由前面的分析得知这个系统中需要建立8张数据表,它们分别如下:
管理员表:
用于存放管理员用户的数据记录。
用户表:
用于存放用户的基本信息。
航班表:
用于存放具体航班的基本信息。
出票记录表:
用户存放用户预订机票订单的基本信息。
3.5建表
5.5.1管理员信息表(用于登录时判断)
属性有:
姓名(name),用户名(userName,用于登录时判断),密码(pwd,登录时调用判断),身份证号(id),手机号(sellphone)
字段名
描述
类型
约束
id
身份证号
Varchar(18)
PRIMARYKEY
userName
用户名
VARCAHAR(20)
NOTNULL
password
密码
VARCAHAR(20)
NOTNULL
Name
姓名
VARCAHAR(20)
NOTNULL
phonenumber
手机号
VARCAHAR(20)
NOTNULL
5.5.2航班信息表
属性有:
航班号(fltghtNumber),出发时间(takeoffTime),到达时间(arrivedTime),出发地(startPlace),目的地(endPlace),是否有票(ifHaveTickets),舱位(cabinSeat),座位号(seatNumber)票价(price)
航班信息表(FlightTable):
字段名
描述
类型
约束
flightNumber
航班号
VARCHAR(10)
PRIMARYKEY
takeoffTime
出发时间
DATE
NOTNULL
arrivedTime
到达时间
DATE
NOTNULL
startPlace
出发地
VARCHAR(20)
NOTNULL
endPlace
目的地
VARCHAR(20)
NOTNULL
tickets
余票
Int
NOTNULL
cavinSeat
舱位
VARCHAR(10)
NOTNULL
price
票价
Float
NOTNULL
5.5.3会员信息表
属性:
身份证号(id),姓名(realName),用户名(name),密码(pwd),
性别(sex),手机号(sellphone),住址(address),
字段名
描述
类型
约束
id
身份证号
CHAR(18)
PRIMARYKEY
Name
姓名
VARCHAR(10)
NOTNULL
userName
用户名
VARCHAR(10)
NOTNULL
password
密码
VARCHAR(16)
NOTNULL
sex
性别
CHAR
(1)
NOTNULL
phonenumber
手机号
VARCHAR(11)
NOTNULL
5.5.4购票信息表
属性:
航班号(flightNumber),座位号(seatNo),出发地(offPlace),目的地(toPlace),出发时间(startTime)舱位(cabinSeat),票价(price),客户姓名(passagerName),客户身份证号(passengerId),舱位等级(cabinClass),乘客类型ticketType(ticketType)
表4出票记录表
字段名
描述
类型
约束
orderNumber
订单号
int
PRIMARYKEY
flightNumber
航班号
VARCHAR(10)
NOTNULL
seatNumber
座位号
VARCHAR(10)
NOTNULL
startPlace
出发地
VARCHAR(20)
NOTNULL
endPlace
目的地
VARCHAR(20)
NOTNULL
Price
票价
Float
NOTNULL
Name
乘客姓名
VARCHAR(40)
NOTNULL
userId
身份证号
VARCHAR(20)
NOTNULL
takeoffTime
出发时间
DATE
NOTNULL
cabinClass
舱位等级
CHAR(10)
NOTNULLCHECKIN(T,S,J)
4具体代码实现(主要源代码)
4.1接口
packageframe1;
importjava.util.ArrayList;
publicinterfaceIFlightSystemManager{
//添加用户
voidaddUser(StringuserId,StringName,Stringusername,Stringpassword,Stringsex,Stringphonenumber,StringAddress,StringEmail);
//用户登录
UserLogin(Stringusername,Stringpassword);
//修改个人信息
voidupdateUser(Stringpassword,StringName,Stringsex,Stringphonenumber,StringEmail,StringAddress,Stringusername);
//航班信息查询
flightflightselect(StringstartPlace,StringendPlace,StringtakeoffTime,StringflightNumber);
//预订飞机票
voidBookTickets(intorderNumber,StringflightNumber,StringseatNumber,StringstartPlace,StringendPlace,floatPrice,StringName,StringuserId,StringtakeoffTime,StringcabinClass);
//管理员登录
ManagerLogin2(Stringusername,Stringpassword);
//退票
TicketsTuiPiao(StringorderNumber);
//查询购票记录
TicketsselectGouPiaoJiLu(StringName);
//改签
TicketsGaiQian(StringorderNumber);
//管理员查询航班
ArrayListselectAll();
//添加航班
voidaddFlight(Stringnumber,Stringstart,Stringarrive,Stringtime,
Stringprice,Stringticket);
//删除航班
voiddeleteFlight(StringorderNumber);
//更新航班信息
flightgengXin(Stringflghtnumber);
}
5课程设计总结
5.1程序运行结果或预期运行结果
图5.1主界面
图5.2注册界面
图5.3会员登录界面
图5.4修改信息界面
图5.5查询航班界面
图5.6查询航班界面
图5.7查改签界面
图5.8退票界面
图5.9查询购票记录界面
图5.10添加航班界面
图5.11删除航班界面
图5.12更改航班界面
图5.13查询所有航班界面
5.2实训总结
本次暑假java认识实训已经圆满的完成了,在老师的细心教学下,我对java的认识更加深刻了,了解了java的历史,应用以及各种功能的实现,原本就对java语言感兴趣的我,更是深深地爱上了它,只有喜欢它,才能学好它。
实训前,对java不够了解,对java编程不够熟练,兴趣也并不大。
实训中老师要求我们做航空售票系统,小组分工合作,作为小组组长的我,需要对整个系统有深刻的了解,以及熟悉的java编程能力,还有组织能力,我在这段时间里理解老师教我们的知识,以及网上的查阅资料,总算是将基本的功能都实现了。
本次实训受益匪浅,让我认识了良好的团队合作的重要性,只有发挥好团队各个成员的特长,才能做出更好的程序。
当然在实训中我也有很多的不足,比如:
文本输入的约束条件的加入。
实训后,我觉得本次实训老师教的很好,告诉我们一些程序员应该注意的细节,因为有一句话叫做:
细节决定成败。
当我们都还不是很明白的时候,老师给我吗讲了一遍又一遍,并让我们跟着他一起做一遍,正是老师这样一遍一遍的细心教导,我对java的功能了解的越来越深。
但是我知道,我所学到的知识还只是很浅的,实训的时间是有限的,接下来还要我们自己去更加深入的学习。
我会好好努力学好专业知识,我相信自己在不久的将来,等我毕业了,会找到一份好的工作。
参考文献
1.耿祥义、张跃平编著Java2实用教程(第四版),清华大学出版社,2012年8月
致谢
经过了20天的java认识实习,使我学到了很多,首先巩固了我的基础知识,java,sql,jdbc等进行了完整的在学习。
理解了客户端服务器的应用,软件分层的设计理论,以及面向对象的分析及设计的思想。
并把学到的知识应用于实践。
我衷心的感谢我们的指导老师韦文老师和夏增明老师,还有和我奋斗多日的同组成员,以及感谢校领导对我们的的关心、支持和帮助。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- JAVA 航空 订票 系统