基于Java的机票预订的设计与实现(附源码地址)

摘 要

伴随着居民生活水平的提高,人们更加追求物质和精神上的生活,出门旅行便成为一种寻常的休闲活动,随着人们旅行范围遍布全球,航空出游变成为了主流旅行方式。由于目前航班信息种类繁多,设计一个航空订票系统为游客提供航班信息。用户通过使用航空订票系统来筛选,购买,退订机票。

该系统主要使用Java语言和MySQL数据库进行开发,主要功能为订单客户管理,航空机票管理,航班信息管理,人员用户管理,机型管理。管理员可以控制航班的一切信息,包括机票信息,机型信息,航班信息等。而用户可以通过登录本系统,进行机票的筛选,选择出适合本人的航班并购买机票。与其他订票系统相比,本设计能够更加清晰直观的满足游客购票需求。

关键词:Java; MySQL;机票预订;航空系统

一、绪论

(一)研究背景

随着互联网科技的飞速发展,数据分析大大地便利了人们的生活。在航班订票这一领域,航班的乘坐人数信息和飞机的起飞降落时间是乘客最关心的数据,如何简洁明了有效地展现与航班有关的各种信息对于机务工作者来说是至关重要的。近年来,因为航班数字信息化的不断推进和航班相关的领域充分利用现代技术,各航空公司把各种机型的航班信息等大量数据通过数据传输的方式对外公布,我们可以将公布的数据进行整理归类,然后对数据进行分析,这样,我们就能够设计一款方便旅客查询航班各种信息的航空订票系统。

全国航空行业前景一直都很广阔,这里也统计了去年航空行业整体的发展水平。

2021年,全行业完成运输总周转量813.33亿吨公里,旅客周转量5999.38亿人公里,货邮周转量30(1)20亿吨公里。客运市场方面,完成旅客运输量32177.82万人次。货运市场方面,完成货邮运输量744.61万吨。全行业运输航空公司完成运输飞行小时965.22万小时、运输起飞架次465.09万架次[1]。

截至2021年底,我国共有运输航空公司70家、运输飞机4003架、定期航班航线6743条。2021年,定期航班国内通航城市(或地区)259个(不含香港、澳门、台湾),我国航空公司国际定期航班通航90个国家的201个城市。全行业在册运输飞机平均日利用率为7.03小时,正班客座率平均为80.19%。截至2021年底,我国境内运输机场(不含香港、澳门和台湾地区)259个。2021年,全行业全年新开工、续建机场项目204个。全国民航运输机场完成旅客吞吐量9.537亿人次、货邮吞吐量1599.19万吨、起降架次1004.12万架次。

(二)研究意义

一项航空订票系统的研发,对于航空公司来说来说,能够让机务人员办公时方便为旅客查询航班信息,例如,何时飞机起飞降落,哪架飞机晚点,哪趟航班乘客已经坐满。这样就会使机务人员工作更加高效。对于旅客来说,航空订票系统的研发,能够让旅客居家就可以登录航空网站,查询到自己想要的航班信息,省去了旅客去机场前台寻求服务的时间,让旅客不必因为订票而来回奔波。所以,航空订票系统的研究与实现,无论对于航空公司,还是对于旅客,都是一项非常优秀的系统。

二、相关技术

(一)Java语言

Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是Java程序设计语言和Java平台的总称。Java技术具有卓越的通用性、高效性、平台移植性和安全性。其主要技术特征如下:安全性:Java防御恶意代码的主要方法之一就是存储分配模型。所以很多大型企业级项目开发都会选择用Java开发。可移植性:Java并不依赖平台,用Java编写的程序可以运用到任何操作系统上[2]。

(二)MySQL数据库

MySQL数据库兼容性强,是轻量型的数据库,并且免费,没有服务恢复数据。MySQL管理工具较少,管理工具的安装有时要安装额外的包(phpmyadmin,etc),有一定的复杂性。与其它的关联型数据库办理体系比拟,MySQL存储文件安全[3]。

(三)JSP技术

JSP 是Java Server Pages 的缩写。本质上是一种嵌入式脚本语言,在HTML 代码中嵌入Java 代码,实现网页中需要动态操作的功能。JSP 先在服务器上执行,然后形成一个专属的HTML 文件,并可以在互联网上浏览传送[4]。

三、需求分析

(一)业务需求分析

本系统的业务主要包括:注册登录,查询航班,机票预订,填写订单。

(1)登录注册:每个旅客只能注册一个账号,登录账号后可以进行购票等服务。

(2)查询航班:旅客在主页选择出发城市和到达城市,然后选择出发时间,系统就会筛选出适合该旅客的航班信息。

(3)机票预订:旅客在查询完自己所需要的航班信息后便可以进行购票。

(4)填写订单:为了旅客的安全,在进行订票服务时旅客需要填写自己的个人信息,方便后期如果出现疑问时进行信息核对。业务需求分析流程图如图3-1所示。
基于Java的机票预订的设计与实现(附源码地址)_第1张图片

图3-1 业务需求分析流程图

(二)功能需求分析

本系统主要功能包括:订单客户管理,航空机票管理,航班信息管理,人员用户管理,机型管理。

(1)订单客户管理

订单客户管理功能是,机务人员可以在订单客户管理界面中查看购票人的账号,姓名,身份证号等详细的购票人信息,和订单信息。如果购票人想退票的话,机务人员可以把购票人从该界面中删除,从而达到退票目的。

(2)航空机票管理

航空机票管理中可以进行订票审核和退票审核,如果有旅客想进行订票或者退票操作时,必须在机务人员审核通过的前提下才能完成订票和退票。

(3)航班信息管理

由于不确定因素过多,需要确定航班是否能够起飞或者是否增加新的航班。所以,航班信息管理的功能是机务人员及时的添加或者删除航班信息,以便于旅客及时的订票退票,尽量减少旅客浪费的时间。

(4)人员用户管理

人员用户管理的主要功能是管理机务人员的信息。机务工作人员的姓名,性别,身份证号,手机号邮箱等信息都在人员用户管理界面中可以看到。如果有新就职的机务人员,可以将他们的信息添加到人员用户管理页面,以便及时查找。如果是辞职退休的机务人员,那么就可以将他们从人员管理界面中删除。

(5)机型管理

机型管理界面中,可以查看到飞机机型,并且能够查到和修改该机型的头等舱商务舱剩余座位数。

功能需求分析流程图如图3-2。

基于Java的机票预订的设计与实现(附源码地址)_第2张图片

图3-2 功能需求分析流程图

四、系统设计

(一)系统总体结构设计

根据航空订票系统的需求分析,为了完整的实现系统的功能,该系统主要模块应该有:登录模块,订单客户管理模块,航空机票管理模块,航班信息管理模块,人员用户管理模块,机型管理模块。系统设计总体结构图如图4-1。

基于Java的机票预订的设计与实现(附源码地址)_第3张图片

图4-1 系统总体结构图

(二)数据库设计

通过以上对于系统的设计,数据库也需要满足订单客户管理,航空机票管理,航班信息管理,人员用户管理,机型管理的需要。数据库E-R图如图4-2所示。

基于Java的机票预订的设计与实现(附源码地址)_第4张图片

图4-2 数据库E-R图

在数据库分析及概念结构设计的基础上,将数据库的概念模型转化为逻辑结构,即对数据库的结构进行设计。本系统中MySQL数据表的结构设计如下。

1.顾客信息表

它包括的字段有:empid是顾客id,varchar类型,最多存储9个字符。password是顾客账号密码,varchar类型,最多存12个字符。realname是顾客真实姓名,varchar类型,最多存储10个字符。Sex是顾客性别,char类型,最多存储一个字符。Birthdate是日期类型,顾客生日。phone是顾客电话号,char类型,长度为11。qq是顾客QQ,varchar类型,长度为17。idcard是顾客身份证号,char类型,长度为18。顾客信息表如表4-1所示。

表4-1 顾客信息表

字段名 数据类型 长度 是否为主外键 能否为空
empid varchar 9
password varchar 12
realname varchar 10
sex char 1
birthdate date 20
phoneqqidcard charvarcharchar 111018 否否否 否否否

2.航班信息表

它包括的字段有com_code航空公司名,varchar类型,最多储存12个字符。air_code飞机机型,varchar类型,最多储存10个字符。fli_no航班编号,varchar类型,最多存储15个字符。fli_baddress起飞地名称,varchar类型最多储存14个字符。fli_aaddress终点地名称,varchar类型最多储存14个字符。fl_btime起飞时间,date类型,最多储存20个字符。fli_atime降落时间,date类型,最多存储20个字符。航班信息表如表4-2所示。fli_fnumber容纳人数,char类型,最多存储5个字符。berth机舱类型,varchar类型,最多储存5个字符。

表4-2 航班信息表

字段名 数据类型 长度 是否为主外键 能否为空
com_code varchar 12
air_code varchar 10
fli_no varchar 15
fli_baddress varchar 14
fli_add varchar 14
fli_btime time 20
fli_atime time 20
fli_fnumber char 5
berth char 5

3.管理员信息表

它包括的字段有:empid是管理员id,varchar类型,最多存储9个字符。password是管理员账号密码,varchar类型,最多存12个字符。realname是管理员真实姓名,varchar类型,最多存储10个字符。Birthdate是日期类型,管理员生日。phone是管理员电话号,char类型,长度为11。qq是管理员QQ,varchar类型,长度为17。idcard是管理员身份证号,char类型,长度为18。管理员信息表如表4-3所示。

表4-3 管理员信息表

字段名 数据类型 长度 是否为主外键 能否为空
empid varchar 9
password varchar 12
realname varchar 10
sex char 1
birthdate date 20
phoneqqidcard charvarcharchar 111018 否否否 否否否

五、系统实现

(一)登录模块实现

用户进入航空订票系统,首先注册个人账号,然后输入注册的账号密码,填入随机的验证码。

注册,登录界面的效果图如图5-1图5-2。

基于Java的机票预订的设计与实现(附源码地址)_第5张图片

图5-1注册效果图

基于Java的机票预订的设计与实现(附源码地址)_第6张图片

图5-2登录效果图

(二)购票实现

旅客点击始发地选择乘坐飞机地点,点击终止地选择下飞机地点,点击时间框,选择想要出行的时间,页面就会出现满足旅客的航班信息。

购票页面效果图如图5-3。

基于Java的机票预订的设计与实现(附源码地址)_第7张图片

图5-3购票实现效果图

(三)订单查询实现

用户购买机票后,能够查看到自己的历史购票记录,如图5-4所示。

基于Java的机票预订的设计与实现(附源码地址)_第8张图片

图5-4订单查询实现效果图

(四)用户留言实现

用户乘机后,根据整体的乘机体验,能够对乘务服务进行评价,用户可以输入昵称和留言,然后点击提交评论,即可留言成功。用户留言如图5-5所示。

基于Java的机票预订的设计与实现(附源码地址)_第9张图片

图5-5用户留言效果图

(五)个人信息管理实现

用户可以对自己账号信息进行管理,能够修改姓名,身份证号,城市,手机号,邮箱,QQ号等信息。个人信息管理如图5-6所示。

基于Java的机票预订的设计与实现(附源码地址)_第10张图片

图5-6个人信息管理效果图

(六)航空信息管理实现

管理员能够对航空信息进行管控,管理员能够添加航空信息。添加航空信息如图5-7所示。

基于Java的机票预订的设计与实现(附源码地址)_第11张图片

图5-7添加航空信息实现效果图

管理员也可以查看航空信息,如图5-8所示。

基于Java的机票预订的设计与实现(附源码地址)_第12张图片

图5-8查看航空信息

(七)订单信息管理

管理员点击订单信息管理,能够看到用户的订单记录,包括用户名,航班号,乘机人,乘机日期,仓位,证件号,联系人,联系电话。订单信息管理如图5-9所示。

基于Java的机票预订的设计与实现(附源码地址)_第13张图片

图5-9订单信息管理

(八)用户信息管理

管理员能够对用户的信息进行查看和删除,这样就能够管理长时间未使用账号的用户,避免账号资源的浪费。如图5-10所示。

基于Java的机票预订的设计与实现(附源码地址)_第14张图片

图5-10用户信息管理

六、系统测试

(一)登录模块测试

系统想要能正常使用首先要确保系统的登录功能是正常使用,因为只有登录无误,才能够进行接下来的操作[9]。本次测试主要进行的是,测试输入管理员账号时,输入正确的密码和错误的密码系统会有什么反应;输入用户账号时,输入正确的密码和错误的密码会有什么反应。测试是否能够做到一账号对应一密码。登录模块测试用例表如表5-1。

表5-1 登录测试用例表

编号 测试数据 预期效果 实际效果 测试状态
1 输入管理员账号"admit"和正确密码12345678 能够正常登录账号 能够正常登录账号 与预期结果相同
2 输入管理员账号"admit"和错误秘密888888 不能正常登录账号 不能正常登录账号 与预期结果相同
3 输入用户账号"user"和正确密码987654321 能够正常登录账号 能够正常登录账号 与预期结果相同
4 输入用户账号"user"和错误密码1234653 不能正常登录账号 不能正常登录账号 与预期结果相同

(二)订单管理模块测试

本次测试是要确保机务人员对机票订单的绝对控制,如果旅客想退票时,机务工作人员能够正常退票;如果机务人员需要查看订单信息时,能够正常查看机票订单信息。订单客户管理用例表如表5-2。

表5-2 订单客户管理测试用例表

编号 测试数据 预期效果 实际效果 测试状态
1 在页面点击查看 能够查看订票信息 能够查看订票信息 与预期结果相同
2 在页面点击删除
能够删除旅客订单 能够删除订单信息 与预期结果相同

(三)航班信息管理模块测试

本测试要对机务工作人员的航班信息管理功能准确验证,确保管控性极具到位。本次测试的意义巨大,是因为航班信息管理的功能极其重要,不容忽视。航班信息管理也是本系统中最难的一个功能,因为本功能要考虑到天气,风速等诸多起飞因素,所以要准确确定机务工作人员能够编辑和删除航班信息[11]。航空机票管理用例表如表5-3。

表5-3 航班信息管理测试用例表

编号 测试数据 预期效果 实际效果 测试状态
1 新增成都到北京的航班,航班编号为8888767 能够新增成功 能够新增成功 与预期结果相同
2 新增上海到成都的航班,航班编号为787667 能够新增成功 能够新增成功 与预期结果相同
3 将成都到上海航班编号为234677的经济舱数目增加10座 能够增加成功 能够增加成功 与预期结果相同
4 将哈尔滨到北京航班编号为233114的航班删除 能够删除成功 能够删除成功 与预期结果相同
5 将乌鲁木齐到哈尔滨航班编号为1231223的头等舱价格增加500元 能够修改成功 能够修改成功 与预期结果相同

(四)用户管理模块测试

人员用户管理模块功能是对机务工作人员的信息进行修改。所以要经过多次测试之后,确保能够准确管理机务人员的信息,能够在需要删除人员时能准确无误删除,在需要编辑人员信息时能够正常修改人员信息[12]。人员用户管理用例表如表5-5。

表5-5 人员用户管理测试用例表

编号 测试数据 预期效果 实际效果 测试状态
1 新增机务工作人员姓名为zhangzhuyi的信息 能够新增成功 能够新增成功 与预期结果相同
2 新增机务工作人员姓名为zhuyi的信息 能够新增成功 能够新增成功 与预期结果相同
3 将姓名为tianxi的机务工作人员信息删除 能够删除成功 能够删除成功 与预期结果相同
4 将姓名为caoxue的身份证号修改为231024200102312211 能够修改成功 能够修改成功 与预期结果相同
5 将100086的性别改为女性 能够修改成功 能够修改成功 与预期结果相同

结论

本系统中用的Java语言是经常在生活中能够遇到的,Java语言已经流行了数十年,技术已经接近完善,我在大学中也认真学习了三年Java,所以我认为本系统我对Java的掌握还是比较全面。但是除了Java技术,还运用到了其他的开发技术,那些是我曾经没有触及过的,所以我对框架技术等未接触的技术几乎是零基础,只能靠网课等方法现学现用,本系统就会有许多缺陷的地方。但我也尽我自己所能,毫无余力的进行这次的系统开发。虽然本系统开发圆满结束,但在开发过程中出现了数据丢失,数据库连接失败,代码异常等诸多问题。最令我头疼的是前端页面的不美观,我在之前的学习中从未接触过前端页面的开发技术,所以我只能大概的设计出前端的界面,并不会将界面美观化。所以在接下来技术学习过程中,我要着重学习我的弱项,着重学习前端技术,将我的开发技术训练炉火纯青。

源码网盘链接地址
链接:https://pan.baidu.com/s/1ODBPhsKw87dLb2tPLBPQCw?pwd=1m3m
提取码:1m3m

JAVA毕设帮助,指导,源码分享,调试部署

你可能感兴趣的:(毕设,java,数据库,大数据)