航空自助选票系统的开发与实现

2019-11-12 02:14秦鹏珍
网络安全技术与应用 2019年11期
关键词:购票管理员座位

◆秦鹏珍

(山西机电职业技术学院 山西 046011)

“中国软件杯”大学生软件设计大赛,旨在科学引导高校青年学子积极参加科研活动,切实增强自主创新能力和实际动手能力,实现应用型人才培养和产业需求的有效衔接,推动我国软件和信息技术服务业又好又快发展。第八届“中国软件杯”大学生软件设计大赛高职组赛题共7个,航班座位自动分配系统是其中之一,本文以航班座位自动分配系统赛题为主题,介绍航班座位自动分配系统的软件开发设计思路及实现流程。

飞机机舱内的座位本身具备多种属性,包括:靠窗座位、靠过道座位、腿部宽敞座位、紧急出口座位、VIP旅客预留座位(一般是前排)等。不同旅客的座位需求是不同的,但由于物理座位限制,一般无法满足所有旅客的个性化需求。赛题的目标是,实现一种自动分配座位的算法,为旅客分配合理的座位,尽可能满足旅客的个性化需求,提高旅客出行的用户体验。

本题的核心问题在于当尽可能满足乘客需求时应如何分配座位。我们团队的解决思路是:当单个乘客分配座位时,在剩余空座位中寻找满足要求的座位,若存在则分配,若不存在优先分配没有特殊属性的座位,以尽量满足剩余乘客的选座偏好。当多个关联乘客组团买票时,优先考虑关联乘客的位置相邻,再根据他们是否有特殊座位需求进行满足,直到剩余乘客全部不能满足为止。当机型发生变更时,需要重新为全机旅客分配座位,依据乘客的购票顺序,优先满足先购票乘客的喜好。

1 软件设计

航班座位自动分配系统的软件设计采用了B/S架构来完成,其中后端主要用到spring、spring mvc和mybatis框架来完成编码。数据库选择使用的是mysql数据库。Web服务器使用的是Tomcat。

2 数据库定义

数据库采用的mysql数据库,主要表包括座位展示表(seat_show)、权限控制表(authority)、用户表(user)、乘客表(user_passenger)、角色表(user_role)等(见图1)。

图1 主要表

3 软件模块设计及主要功能

3.1 公共模块的设计与实现(见图2)

图2 系统整体功能模块图

登录模块:用于系统用户进行登录系统。在登录界面,用户需要输入对应的用户名以及密码,系统根据输入的信息在用户表(user)中查找对比,登录成功后跳转到主界面,同时为了保证系统安全,在登录模块设置了验证码的验证环节以防止网络黑客暴力破解密码。系统设定了两种用户角色,管理员角色与普通乘客角色,普通乘客登录之后只能访问航空选座,管理员可以访问航空选座和用户管理两个模块。实现用户登录功能的部分代码如下:

航空座位选座模块:这是系统的核心模块,舱位布局及选座界面如图3,在此界面主要实现为旅客自助分配座位的功能以及乘客自己选座功能;同时可以显示座位的属性信息,是否已经被预订。用户可以通过选择座位按钮来预定座位,若要进行自动分配,需要输入座位类型以及喜欢的座位属性,点击自动分配按钮,进入乘客信息页面,选择乘客,座位分配结果以弹窗形式显示,同时被分配的座位颜色改变,显示为已预定。

图3 选座系统界面

在整个系统中,座位分配是最核心的功能,涉及多种分配情况,为尽量满足剩余乘客的选座偏好,为单个用户分配时,首先在剩余空座位中寻找满足要求的座位,若存在则分配,若不存在优先分配没有特殊属性的座位;若要同时预定多个座位,首先需要在关联乘客页面添加多位乘客信息,然后在分配时来,优先考虑关联乘客的位置相邻,再根据他们的是否有特殊座位需求进行满足,直到剩余乘客全部不能满足为止。相关分配实现代码如下:

除此外赛题还要求实现“当机型发生变更时,需要重新为全机旅客分配座位”,我们团队将此功能赋予超级管理员,若登录账户为管理员,可以实现为整机乘客重新分配座位功能。在重新分配座位时,依据乘客的购票顺序,优先满足先购票乘客的喜好。

购票查询模块:购买过机票的用户可以在此模块下查询已经预定过的座位信息以及乘客信息等购票情况。

关联乘客模块:当一个用户要同时预定多张机票时,需要先再此模块下添加乘客相关信息,之后才可以在选座模块下进行多张机票选座操作。

3.2 管理员特有模块的设计与实现

用户管理模块:系统为用户定义了不同角色,管理员可管理不同的角色和用户。一个角色可以有多个用户,每个角色可以设置单独的权限,方便管理员进行管理。

航空座位维护模块:此模块用来维护飞机座位,可根据座位编号来查询座位是否被占、座位属性等信息。该模块可以根据机型的不同,动态地改变飞机内座位的个数、座位属性等信息。

乘客满意度模块:该模块主要完成对购票用户所购的机票与喜好进行对比统计,通过计算符合喜好的座位与总预定座位的比值来显示整体的匹配程度,进入该模块会显示当前座位的分配情况。

4 结语

通过以上设计,该自助选票系统基本可以满足赛题需求,功能也都可以正常实现。由于笔者能力有限,该系统还可以有很大的优化与扩展空间。

猜你喜欢
购票管理员座位
换座位
我是图书管理员
我是图书管理员
可疑的管理员
直击痛点的“候补购票”可多来一些
抢不到票?铁路候补购票服务扩大到全部旅客列车
巴士上的座位
网络购票时代 莫让农民工掉队
换座位
让管理员管不了的名字