计算机毕业设计 jsp航空订票系统(ssh) 毕设
演示视频:
演示视频:
https://www.bilibili.com/video/BV1Ju4y1379c/
3.1 需求分析
本系统使用计算机技术来管理订票系统。主要完成的功能有航班信息查询、订单、留言等,使系统操作方便、便于管理。
普通用户在本系统中的权限有:
(1) 只能浏览航班信息。
会员在本系统中的权限有:
(1)浏览航班信息。
(2)快速查询航班信息。
(3)在线订票。
(4)在线留言。
航班管理员在本系统中的权限有:
(1)修改个人密码。
(2)航班信息的添加。
(3)订单信息的管理。
(4)会员信息的管理。
(5)留言板的管理。
3.2 功能模块分析和设计
本系统登录的角色有二种:会员、管理员、普通用户。管理员是能够管理会员信息、航班信息的管理、订单信息的管理、留言板的管理。会员是能够查看航班信息、在线购买机票、查看订单信息、在线留言。普通用户只能够浏览航班的信息。
经上所述,系统功能可以分为以下几个模块:
(1)查看航班信息:会员看到的航班信息列表简洁明了,若会员想查看具体的航班信息时可以点击“详细信息”即可。
(2)在线购买机票:会员直接点击订票就可以购买机票了,无需再像以前传统的购票方式一样,简单快捷。
(3)查看订单信息:会员可以查看到自己订单后的详细信息以及订单状态等情况。
(4)在线留言:会员在有什么不清楚的情况下也可以进行在线留言。
(5)管理会员信息:管理员可以对会员的信息进行删除操作,一旦管理员对会员进行删除操作了,那么这个会员就不可以再继续登录了。
(6)航班信息的管理:管理员可以根据航班的具体出发时间等相关信息进行添加或者对要取消的航班信息进行删除操作。
(7)订单信息管理:管理员对会员的订单进行确认,然后确认订单状态同时会员也能够在前台看到管理员确认的订单信息。
(8)留言管理:管理员可以对会员发出的关于航班信息的相关问题进行回复。
通过以上几个模块来支持整个系统的正常运行。图3-1为系统功能结构图。
图 3-1 系统前台功能图
图 3-2 系统后台功能图
3.3 系统流程图
会员对系统操作的基本流程如下图3-3所示。
图 3-3 会员流程图
管理员对后台进行管理的基本流程如下图3-4所示:
图 3-4 管理员流程图
3.4 数据库结构设计
3.4.1数据库设计原则
本系统中的数据库主要是通过MySQL进行操作的,其能够建立功能较好的数据库,实现系统有效的数据库操作,满足用户的需求。
本系统数据库主要实现以下功能:
(1)航班信息:ID,日期,编号,始发地点,到达地点,起飞时间,剩余票数,成人票数,儿童票数,是否删除。
(2)订单信息:订单ID,用户ID,下单时间,姓名,电话,状态,总价格,地址。
(3)订单明细:ID,订单ID,单价,航班ID,票类型,数量。
(4)在线留言:ID,留言内容,留言时间,用户ID,回复内容,回复时间。
(5)普通用户:ID,用户名,密码,真实姓名,性别,年龄,电话,地址,是否删除。
(6)管理员:ID,用户名,密码。
3.4.2系统的功能实体-属性图
(1)航班信息实体-属性图见图3-5
图3-5 航班信息实体-属性图
(2)管理员实体-属性图见图3-6
图3-6 管理员实体-属性图
(3)订单实体-属性图见图3-7
图3-7 订单实体-属性图
(4)订单实体-属性图见图3-8
图3-8 订单明细实体-属性图
(5)订单实体-属性图见图3-9
图3-9 在线留言实体-属性图
(6)普通用户实体-属性图见图3-10
图3-10 普通用户实体-属性图
4 系统的实现
3.1 前台首页设计
前台的设计尤为重要,用户打开一个网站第一眼看到的便是前台的页面,一个网站的好与坏在很大程度上取决于前台页面做的怎么样。首页的内容一定要全面丰富但不要杂乱,在色彩方面也要合理的来搭配,风格方面也要独具一格。系统前台页面如图3-1所示。

图3-1 网站首页运行结果
3.2 航班信息模块
航班信息显示模块的主要功能是显示最新的航班信息,主要包括航班日期、航班编号、始发地点、到达地点、起飞时间,航班信息模块效果图如3-2。

图3-2 航班信息展示设计
该模块的主要功能是在hangbanAction类中通过调用hangbanAll()方法来实现的,获取数据库中所有满足条件也就是没有被管理员删除以及日期大于当前日期的航班信息然后再将这些日期以值值列表的形式在首页上显示出来,当遇到返回信息时就通过struts.xml配置跳转,打开相应的hangbanAll.jsp页面,从而显示航班的列表。
3.3 航班搜索模块
本模块实现对航班信息的快速查询功能。点击导航的信息查询,进入信息查询界面,在此页面选择航班日期、始发地点,完成航班查询操作。查询界面设计如图3-3:

图3-3 航班查询展示
当用户点击查询之后系统会跳转到如图3-4的界面:

图3-4 航班查询结果展示

该模块的主要功能是在hangbanAction类中通过调用hangbanRes()方法来实现的,从航班表中查询和用户输入的航班日期相同且始发地点使用模糊查找的方法,将查询到的结果存放到List集合中。当返回信息时,再到struts.xml中找到与之对应的信息后跳转到相应的hangbanAll.jsp,此时hangbanList中的值就只是会员所要查找的值了。
3.4 购物车管理
本模块实现对购物车信息的管理功能。点击网站导航我的购物车,进入购物车管理界面,在该页面显示当前已购买的机票信息,会员可以删除购物车内的某条记录,也可以将购物车内容生成订单并提交。界面设计如图3-5:

图3-5 购物车管理模块展示
该模块的删除功能主要是在buyAction类中通过调用delFromCart()方法来实现的,调用Cart类中的delHangban()这个方法,通过Id来删除购物车里的整条信息。若选择继续订票则会跳转到hangbanAll.jsp这个页面,若会员确定要购买那就点击生成订单则会跳转到orderQueren.jsp这个页面,输入相关信息即可。
3.5 订单信息模块
会员可以通过该模块查看自己的订单信息。点击导航的我的订单,进入订单信息查看界面,该界面列出当前订单的详细信息,包括下单时间、收费人姓名、地址、电话等内容。如果当前订单还未受理,可以点击取消订单按钮取消当前订单。界面设计如图3-6:

图3-6 订单信息查看
该模块的删除功能主要是在buyAction类中通过调用orderMine()方法来实现的,通过返回信息去struts.xml中找到orderMine.jsp页面。
3.6 后台登录页面
网站的后台是用来管理整个网站系统的,所以管理员要先登录系统,才可以进行相应的操作,当管理员点击“管理员登录”超链接时,将会弹出进入后台管理页面的窗口,为了保证系统的安全,则要求管理员输入用户名、密码以及验证码才可以登录,三者缺一不可。后台登录模块的运行效果如图3-7:

图3-7 后台登录模块的设计效果图
进入后台后可以点击左侧会员信息管理、航班信息管理、订单信息管理、留言信息管理、个人密码修改等图标,进入相应的管理页面,后台主页面如图3-8。

图3-8 后台主页面运行效果图
3.7 会员信息管理
本模块实现对会员信息的管理操作,包括会员信息的查看、删除操作。
点击会员信息管理菜单,进入会员信息管理页面,该页面通过列表列出已注册的会员信息,包括登录名、密码、真实姓名等。点击列表的删除按钮,实现会员信息的删除操作。界面设计如图3-9:

图3-9 会员信息管理
该模块查看和删除功能主要是由userAction类里面的userMana()和userDel()方法来实现的,管理员的删除操作主要是先通过userId找到相应的实体类再将UserDel赋值为“yes”,这样在下一次的会员查看时就不会再显示已删除的信息了。当userMana()方法返回信息时则打开相应的userMana.jsp页面。
3.8 航班信息管理
本模块实现对航班信息的管理操作,包括航班信息的添加、删除操作。
点击航班信息管理菜单,进入航班信息管理页面,该页面通过列表列出已添加的航班信息,包括航班日期、编号、地点、价格、剩余票数等等。点击列表的删除按钮,实现航班信息的删除操作。界面设计如图3-10:

图3-10 航班信息管理
实现该模块的功能主要是由hangbanAction类里面的hangbanMana()方法来实现的,通过返回的信息到struts.xml这个文件中找到相应路径然后跳转到hangbanMana.jsp这个页面。
点击添加按钮,进入航班信息添加页面,输入符合条件的航班信息,完成航班信息的添加操作。界面设计如图3-11:

图3-11 航班信息添加
3.9 订单信息管理
本模块实现订单信息的管理操作。
点击订单信息管理,进入订单信息管理页面,该页面通过列表列出已提交的订单信息,包括订单会员信息、下单时间、会员姓名等。点击订单明细,可台查看订单的详细信息,点击订单受理,可以完成该订单的受理操作,点击删除,可以删除当前订单,界面设计如图3-12:

图3-12 订单信息管理
实现该模块的主要功能的是由buyAction类中的orderMana()方法来实现的,返回信息后通过struts.xml找到相应路径跳转到相应的是orderMana.jsp页面。
3.10 留言信息回复
本模块实现会员留言信息的回复操作。
点击留言板管理菜单,进入留言信息管理页面,该页面通过列表列出已添加的留言信息,包括留言内容、留言时间等信息。点击列表的删除按钮,实现留言信息的删除操作,点击回复,实现留言信息的回复,界面设计如图3-13:

图3-13 留言信息回复
这个模块的主要功能是管理员对留言板的回复操作,而这些功能主要是由liuyanAction这个类中的liuyanHuifu()方法来实现的。
