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

本文介绍了一款使用Java语言和MySQL数据库开发的航空订票系统,该系统提供订单客户管理、航空机票管理、航班信息管理、人员用户管理和机型管理等功能,旨在方便用户查询和预订航班,同时支持管理员对航班信息的控制。系统采用JSP技术,实现了用户登录、注册、购票、订单查询等一系列业务流程,通过数据库设计确保了信息的存储和管理。文章还包含了系统测试部分,验证了各项功能的正确性。
摘要由CSDN通过智能技术生成

摘 要

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

该系统主要使用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所示。
在这里插入图片描述

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

(二)功能需求分析

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

(1)订单客户管理

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

(2)航空机票管理

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

(3)航班信息管理

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

(4)人员用户管理

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

(5)机型管理

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

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

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uDanRv8i-1686035517281)(RackMultipart20230606-1-k3zu4_html_a4ea0193850064eb.png)]

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

四、系统设计

(一)系统总体结构设计

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

在这里插入图片描述

图4-1 系统总体结构图

(二)数据库设计

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

在这里插入图片描述

图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 顾客信息表

字段名数据类型长度是否为主外键能否为空
empidvarchar9
passwordvarchar12
realnamevarchar10
sexchar1
birthdatedate20
phoneqqidcardcharvarcharchar111018否否否否否否

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_codevarchar12
air_codevarchar10
fli_novarchar15
fli_baddressvarchar14
fli_addvarchar14
fli_btimetime20
fli_atimetime20
fli_fnumberchar5
berthchar5

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 管理员信息表

字段名数据类型长度是否为主外键能否为空
empidvarchar9
passwordvarchar12
realnamevarchar10
sexchar1
birthdatedate20
phoneqqidcardcharvarcharchar111018否否否否否否

五、系统实现

(一)登录模块实现

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

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

在这里插入图片描述

图5-1注册效果图

在这里插入图片描述

图5-2登录效果图

(二)购票实现

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

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

在这里插入图片描述

图5-3购票实现效果图

(三)订单查询实现

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

在这里插入图片描述

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

(四)用户留言实现

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

在这里插入图片描述

图5-5用户留言效果图

(五)个人信息管理实现

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

在这里插入图片描述

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

(六)航空信息管理实现

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

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rnLK1FAr-1686035517284)(RackMultipart20230606-1-k3zu4_html_1b03f1c240f41721.png)]

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

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

在这里插入图片描述

图5-8查看航空信息

(七)订单信息管理

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

在这里插入图片描述

图5-9订单信息管理

(八)用户信息管理

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

在这里插入图片描述

图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代码注释,代码保护性,无论输入什么都不会崩溃; 【问题描述】航空客运订票的业务活动包括:查询航线、添加航班,客票预订和办理退票等七大功能,已实现操作文件。试设计一个航空客运订票系统,以使上述业务可以借助计算机来完成。 【基本要求】 (1)每条航线所涉及的信息有:终点站名、航班号、飞机号、飞行周日(星期几)、乘员定额、余票量、已订票的客户名单(包括姓名、订票量、舱位等级1,2或3)以及等候替补的客户名单(包括姓名、所需票量); (2)系统能实现的操作和功能如下: ①录入:可以录入航班情况,全部数据可以只放在内存中,最好存储在文件中; ②查询航线:根据旅客提出的终点站名输出下列信息:航班号、飞机号、星期几飞行,最近一天航班的日期和余票额; ③承办订票业务:根据客户提出的要求(航班号、订票数额)查询该航班票额情况,若尚有余票,则为客户办理订票手续,输出座位号;若已满员或余票额少于订票额,则需重新询问客户要求。若需要,可登记排队候补; ④承办退票业务:根据客户提供的情况(日期、航班),为客户办理退票手续,然后查询该航班是否有人排队候补,首先询问排在第一的客户,若所退票额能满足他的要求,则为他办理订票手续,否则依次询问其他排队候补的客户。 【测试数据】由读者自行指定。 【实现提示】两个客户名单可分别由线性表和队列实现。为查找方便,已订票客户的线性表应按客户姓名有序,并且,为插入和删除方便,应以链表作存储结构。由于预约人数无法预计,队列也应以链表作存储结构。整个系统需汇总各条航线的情况登录在一张线性表上,由于航线基本不变,可采用顺序存储结构,并按航班有序或按终点站名有序。每条航线是这张表上的一个记录,包含上述8个域、其中乘员名单域为指向乘员名单链表的头指针,等候替补的客户名单域为分别指向队头和队尾的指针。 【选作内容】当客户订票要求不能满足时,系统可向客户提供到达同一目的地的其他航线情况。读者还可充分发挥自己的想象力,增加你的系统的功能和其他服务项目 I/O流操作时用到了GSON,解压即可看到,如果发现报错,读者可以配置一下Gson的路径,在属性,JAVA构建路径中删除原有的三个GSON库,添加外部,下载的GSON库。如果不用可以将Main类中new ReadFlightLine();注释掉即可。
评论 18
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值