项目地址:https://gitee.com/gao_x/air-ticket
文章目录
民航订票管理系统
1.要求
1.1.基本要求1.2.拓展要求 2.需求分析
2.1.系统功能分析2.2.系统用列图
2.2.1前台功能2.2.2后台功能 2.3.数据流图2.4.数据字典
2.4.1.数据存储2.4.2.处理过程 3.数据库设计
3.1概念结构设计3.2.逻辑结构设计3.3.数据表设计3.4.创建表代码 4.系统总设计5.代码开发
5.1.开发环境相关5.2.开发所用技术5.3.源代码目录简介5.4.项目代码 6.系统展示
6.1.后台6.2.前台
1.要求 1.1.基本要求民航订票系统主要分为机场、航空公司和客户三方的服务。
- 航空公司提供航线和飞机的资料;机场则对在本机场起飞和降落的航班和机票进行管理;客户能得到的服务应该有查询路线和剩余票数,以及网上订票等功能;客户可以分为两类:一类是普通客户,对于普通客户只有普通的查询功能和订票功能,没有相应的机票优惠;另一类是经常旅客,需要办理注册手续,但增加了里程积分功能和积分优惠政策;机场还要有紧急应对措施,在航班出现延误时,要发送相应的信息;
- 用户可以对系统进行反馈留言,促进开发者改良系统可以在前台添加广告,是前台展示功能更加丰富后台具有信息功能,可以生成对可视化图标和表格展示管理员除最高管理员之外,其他人不可访问更改管理员
后台航班信息管理:主要是指添加航班信息,删除航班信息,查询航班信息和航班信息详细情况查看等。后台订单信息管理:后台订单信息管理主要包括订单列表,查询订单信息,订单信息的删除等后台用户信息管理:主要指注册用户的展示与按条件查询注册用户。后台广播信息管理:主要指添加广播信息,删除广播信息等。后台广告信息管理:主要指添加广告信息,删除广告信息等。后台管理员管理:主要指最高管理员可以进行授权管理员和删除管理员后台信息统计:统计订单量,用户量,及一些其他信息。前台登录与注册管理:包括前台系统用户的注册于登录。前台首页信息展示:主要是指航班信息展示、航班信息查询、航班信息详情、登录用户信息展示、留言板和 个人信息详情与修改等。前台订单页面:主要是订单内容的填写和订单详情。前台订单支付:订单支付成功界面。 2.2.系统用列图 2.2.1前台功能
2.2.2后台功能 2.3.数据流图 2.4.数据字典 2.4.1.数据存储用户数据表
| 数据存储 | 用户数据表 |
|---|---|
| 输入 | 用户数据 |
| 输出 | 账户信息 |
| 说明 | 记录用户数据 |
会员数据表
| 数据存储 | 会员数据表 |
|---|---|
| 输入 | 会员信息(姓名,身份证号) |
| 输出 | 订单积分优惠 |
| 说明 | 记录会员数据,计算积分优惠 |
订单数据表
| 数据存储 | 订单数据表 |
|---|---|
| 输入 | 订单信息 |
| 输出 | 管理界面 |
| 说明 | 记录订单数据 |
航班数据表
| 数据存储 | 航班数据表 |
|---|---|
| 输入 | 管理员添加 |
| 输出 | 用户界面 |
| 说明 | 记录航班数据 |
留言数据表
| 数据存储 | 留言数据表 |
|---|---|
| 输入 | 用户留言信息 |
| 输出 | 管理员界面 |
| 说明 | 记录留言反馈信息 |
广播数据表
| 数据存储 | 广播数据表 |
|---|---|
| 输入 | 管理员添加 |
| 输出 | 用户界面 |
| 说明 | 记录广播数据 |
广告数据表
| 数据存储 | 广告数据表 |
|---|---|
| 输入 | 管理员添加 |
| 输出 | 用户界面 |
| 说明 | 记录广告数据 |
用户登录
| 功能 | 用户登录 |
|---|---|
| 输入 | 用户信息 |
| 输出 | 登陆成功,登陆失败 |
用户注册
| 功能 | 用户注册 |
|---|---|
| 输入 | 用户名密码 |
| 输出 | 成功,失败,用户已存在 |
会员注册
| 功能 | 会员注册 |
|---|---|
| 输入 | 会员信息 |
| 输出 | 成功,失败,用户已存在 |
订单生产
| 功能 | 机票预订 |
|---|---|
| 输入 | 订单信息 |
| 输出 | 预定成功或失败 |
留言生产
| 功能 | 留言生产 |
|---|---|
| 输入 | 留言内容 |
| 输出 | 留言成功或失败 |
广播信息添加
| 功能 | 广播信息添加 |
|---|---|
| 输入 | 广播信息 |
| 输出 | 添加成功或失败 |
| 其他 | 如广播信息为航班延误则修改航班 |
广告信息添加
| 功能 | 广告信息添加 |
|---|---|
| 输入 | 广告信息 |
| 输出 | 添加成功或失败 |
航班信息添加
| 功能 | 航班信息添加 |
|---|---|
| 输入 | 航班信息 |
| 输出 | 添加成功与失败 |
管理员登陆
| 功能 | 管理员登录 |
|---|---|
| 输入 | 账号密码 |
| 输出 | 登陆成功与登录失败 |
管理员添加
| 功能 | 管理员添加 |
|---|---|
| 输入 | 账号,密码 |
| 输出 | 添加成功或失败 |
管理员(admin):
用户名(user),密码(pwd)
留言评论(discuss):
留言id(id),日期(Time),留言用户(userName),内容(message)
航班(Filght):
航班id(flightId),航班号(flightNumber),航班起点(flightStart),航班终点(flightEnd),始发机场(flightStartAir),到达机场(flightEndAir),起飞时间(flightStartTime),到达时间(flightEndTime),头等舱价格(flightHighPrice),头等舱座位数(flightHighNumber),商务舱价格(flightMidPrice),商务舱座位数(flightMidNumber),经济舱价格(flightLowPrice),经济舱座位数(filghtLowNumber),延误(delay)
订单(order):
订单id(orderId),订单名称(orderName),下单用户(orderUser),航班id(flightId),乘客姓名(personName),订单日期(orderDate),仓别(Grade),乘客身份证号(persionid),订单金额(orderMoney1),实付金额(oederMoney2),联系人(contcatName),联系人电话(contactPhone)
用户(user):
用户名(userName),用户密码(userPwd)
会员(person)
用户名(username),会员姓名(personName),会员身份证号(personId),会员积分(userScore)
广播(radio)
广播id(radionId),广播描述(radiodescribe)
广告实体(advert):
3.3.数据表设计广告id(advertId),广告描述(advertDescribe),广告url(url),广告图片(picture)
管理员:
| 列名 | 类型 | 长度 | 小数点 | 是否为空 | 说明 |
|---|---|---|---|---|---|
| user | varchar | 16 | 0 | 否 | 账号 |
| pwd | varchar | 32 | 0 | 否 | 密码 |
留言评论:
| 列名 | 类型 | 长度 | 小数点 | 是否为空 | 说明 |
|---|---|---|---|---|---|
| id | int | 11 | 0 | 否 | 留言id |
| time | date | 0 | 0 | 否 | 日期 |
| userName | varchar | 32 | 0 | 否 | 留言用户 |
| message | text | 0- | 0 | 否 | 内容 |
航班实体:
| 列名 | 类型 | 长度 | 小数点 | 是否为空 | 说明 |
|---|---|---|---|---|---|
| flightId | varchar | 225 | 0 | 否 | 航班id |
| flightNumber | varchar | 225 | 0 | 否 | 航班号 |
| flightStart | varchar | 225 | 0 | 否 | 航班起点 |
| flightEnd | varchar | 225 | 0 | 否 | 航班终点 |
| flightStartAir | varchar | 225 | 0 | 否 | 航班始发机场 |
| flightEndAir | varchar | 225 | 0 | 否 | 航班终点机场 |
| flightStartTime | datatime | 0 | 0 | 否 | 航班始发时间 |
| flightEndTime | datatime | 0- | 0 | 否 | 航班那到达时间 |
| flightHighPrice | double | 10 | 2 | 是 | 航班头等舱价格 |
| flightHighNumber | int | 11 | 0 | 是 | 航班头等舱 座位数 |
| flightMidPrice | double | 10 | 2 | 是 | 航班商务舱价格 |
| flightMidNumber | int | 11- | 0 | 是 | 航班商务舱座位数 |
| flightLowPrice | double | 10 | 2 | 是 | 航班经济舱价格 |
| filghtLowNumber | int | 11 | 0 | 是 | 航班经济舱座位数 |
| delay | bool | 是否延误 |
订单实体
| 列名 | 类型 | 长度 | 小数点 | 是否为空 | 说明 |
|---|---|---|---|---|---|
| orderId | varchar | 225 | 0 | 否 | 订单id |
| orderName | varchar | 225 | 0 | 否 | 订单id |
| orderUser | varchar | 16 | 0 | 否 | 下单用户 |
| flightId | varchar | 225 | 0 | 否 | 航班号 |
| personName | varchar | 16 | 0 | 否 | 乘客姓名 |
| orderDate | date | 0 | 0 | 否 | 下单时间 |
| Grade | varchar | 3 | 0 | 否 | 舱别 |
| persionid | varchar | 225 | 0 | 否 | 乘客身份证号 |
| orderMoney1 | double | 20 | 2 | 否 | 订单金额 |
| orderMoney2 | double | 20 | 2 | 否 | 实付金额 |
| contcatName | varchar | 16 | 0 | 否 | 联系人姓名 |
| contactPhone | varchar | 11 | 0 | 否 | 联系人电话 |
用户实体
| 列名 | 类型 | 长度 | 小数点 | 是否为空 | 说明 |
|---|---|---|---|---|---|
| userName | varchar | 16 | 0 | 否 | 账号 |
| userPwd | varchar | 225 | 0 | 否 | 密码 |
会员实体
| 列名 | 类型 | 长度 | 小数点 | 是否为空 | 说明 |
|---|---|---|---|---|---|
| userName | varchar | 16 | 0 | 否 | 账号 |
| personName | varchar | 16 | 0 | 否 | 会员姓名 |
| personId | varchar | 225 | 0 | 否 | 会员身份证号 |
| personScore | int | 11 | 0 | 否 | 会员积分 |
广播实体
广播id(radionId),广播描述(radiodescribe)
| 列名 | 类型 | 长度 | 小数点 | 是否为空 | 说明 |
|---|---|---|---|---|---|
| radionId | varchar | 225 | 0 | 否 | 广播id |
| radiodescribe | varchar | 225 | 0 | 否 | 广播描述 |
广告
| 列名 | 类型 | 长度 | 小数点 | 是否为空 | 说明 |
|---|---|---|---|---|---|
| advertId | varchar | 225 | 0 | 否 | 广告id |
| advertDescribe | varchar | 225 | 0 | 否 | 广告描述 |
| url | varchar | 225 | 0 | 否 | 广告链接 |
| picture | varchar | 225 | 0 | 否 | 图片 |
SET NAMES utf8mb4; SET FOREIGN_KEY_CHECKS = 0; -- admin CREATE TABLE `admin` ( `user` varchar(16) CHARACTER NOT NULL COMMENT '管理员用户名', `pwd` varchar(32) CHARACTER NOT NULL COMMENT '管理员密码', PRIMARY KEY (`user`) ) ; -- discuss CREATE TABLE `discuss` ( `id` int(11) NOT NULL AUTO_INCREMENT, `time` date NOT NULL, `userName` varchar(32) CHARACTER NOT NULL, `message` text CHARACTER NOT NULL, PRIMARY KEY (`id`) , INDEX `userName`(`userName`) ) ; -- flight CREATE TABLE `flight` ( `flightId` varchar(255) CHARACTER NOT NULL COMMENT '航班ID', `flightNumber` varchar(255) CHARACTER NOT NULL COMMENT '航班号', `flightStart` varchar(255) CHARACTER NOT NULL COMMENT '航班起点', `flightEnd` varchar(255) CHARACTER NOT NULL COMMENT '航班终点', `flightStartAir` varchar(255) CHARACTER NOT NULL COMMENT '航班始发机场', `flightEndAir` varchar(255) CHARACTER NOT NULL COMMENT '航班到达机场', `flightStartTime` datetime(0) NOT NULL COMMENT '航班起飞时间', `flightEndTime` datetime(0) NOT NULL COMMENT '航班到达时间', `flightHighPrice` double(10, 2) NULL DEFAULT NULL COMMENT '头等舱价格', `flightHighNumber` int(11) NULL DEFAULT NULL COMMENT '头等舱座位数', `flightMidPrice` double(10, 2) NULL DEFAULT NULL COMMENT '商务舱价格', `flightMidNumber` int(10) NULL DEFAULT NULL COMMENT '商务舱座位数', `flightLowPrice` double(10, 2) NULL DEFAULT NULL COMMENT '经济舱价格', `flightLowNumber` int(11) NULL DEFAULT NULL COMMENT '经济舱座位数', PRIMARY KEY (`flightId`, `flightNumber`) ) ; -- order CREATE TABLE `order` ( `orderId` varchar(255) CHARACTER NOT NULL COMMENT '订单id', `orderName` varchar(255) CHARACTER NOT NULL COMMENT '订单名称', `orderUser` varchar(16) CHARACTER NOT NULL COMMENT '下单用户', `flightNumber` varchar(255) CHARACTER NOT NULL COMMENT '航班号', `personName` varchar(16) CHARACTER NOT NULL COMMENT '乘客姓名', `orderDate` date NOT NULL COMMENT '订单日期', `grade` varchar(3) CHARACTER NOT NULL COMMENT '舱别', `personId` varchar(225) CHARACTER NOT NULL COMMENT '乘客身份证号', `orderMoney1` double(20, 2) NOT NULL COMMENT '原价', `orderMoney2` double(20, 2) NOT NULL COMMENT '折扣后价钱', `contactName` varchar(16) CHARACTER NOT NULL COMMENT '联系人', `contactPhone` varchar(11) CHARACTER NOT NULL COMMENT '联系人电话', PRIMARY KEY (`orderId`) ) ; -- user CREATE TABLE `user` ( `userName` varchar(16) CHARACTER NOT NULL COMMENT '用户名', `userPwd` varchar(225) CHARACTER NOT NULL COMMENT '用户密码', PRIMARY KEY (`userName`) ) ; -- person CREATE TABLE `person` ( `userName` varchar(16) CHARACTER NOT NULL COMMENT '用户名', `personName` varchar(16) CHARACTER NOT NULL COMMENT '乘客姓名', `personId` varchar(225) CHARACTER NOT NULL COMMENT '乘客身份证号', `userScore` int(11) NULL DEFAULT NULL COMMENT '用户积分', PRIMARY KEY (`userName`) ) ; -- radio CREATE TABLE `radio` ( `radioId` varchar(225) CHARACTER NOT NULL COMMENT '广播id', `radioDescribe` varchar(255) CHARACTER NOT NULL COMMENT '广播内容', PRIMARY KEY (`radioId`) ) ; -- advert CREATE TABLE `advert` ( `advertId` varchar(225) CHARACTER NOT NULL COMMENT '广告id', `advertDescribe` varchar(255) CHARACTER NOT NULL COMMENT '广告内容', `url` varchar(255) CHARACTER NOT NULL COMMENT 'url', `picture` varchar(255) CHARACTER NOT NULL COMMENT 'picture', PRIMARY KEY (`advertId`) );4.系统总设计
本系统分为前台子系统和后台子系统,具体功能如下
前台:
- 用户登录用户注册航班查询机票详情机票预订订单支付订单查看用户留言个人信息查看与修改,积分变更
后台:
- 航班信息管理订单信息管理用户信息管理留言评论管理广播信息管理广告信息管理个人信息管理信息统计
详细子功能如下图:
5.代码开发 5.1.开发环境相关开发后台服务语言:openjdk version “11.0.10” 2021-01-19
服务器:Apache Tomcat/8.5.73
数据库:MySql 5.7.36
操作系统:Windows10
开发工具:intelliJ IEDA 2021.3、Navicat permium15
5.2.开发所用技术Web前端:HTML,CSS,Javascript,Bootstrap
Web后端:jsp+servlet
版本控制工具:git version 2.33.1.windows.1
5.3.源代码目录简介
airTicket 项目文件夹
src
main 项目主文件夹
java 项目java部分文件夹
com.
admin admin管理部分后端代码
bean admin后端各实体定义dao admin后端各实体操作filter 过滤器,防止未登录访问servlet admin部分主要功能代码util 存放工具类,定义数据库连接 user
bean 用户部分的各实体定义dao 用户部分的各实体操作filter 过滤器,防止未登录访问servlet 用户部分功能主要代码 webapp
admin admin部分的jsp前端代码cssdefault 用户部分的jsp前端代码fontsimagesjsWEB-INF
web.xml 各servlet和filter的配置位置 index.jsp 主页list.jsp 飞机查询列表页login.jsp 前台登录页register.jsp 前台注册页
test
target 编译后的.class文件
5.4.项目代码由于代码过多,这里不便放置,这里提供源码地址
机票管理系统:
https://gitee.com/gao_x/air-ticket
6.系统展示 6.1.后台后台主页:
航班添加页面:
航班列表页:
管理员添加页:只有最高权限可以访问
管理员列表页:只有最高权限可以访问
权限不足页面:普通管理员无法进行管理员授权等等
6.2.前台前台主页:
前台列表页:
订单生成页:
个人订单管理页面
注册页:
因为部分页面相似,在这里不做图片展示。因部署在云服务器可通过以下连接查看。
主页: http://110.42.210.89:8080/airticket_war/
管理端:http://110.42.210.89:8080/airticket_war/admin/
账号:admin
密码:admin


![民航订票管理系统——jsp+servlet+MySQL [最简单的java web,只需要简单会一点就可以写] 民航订票管理系统——jsp+servlet+MySQL [最简单的java web,只需要简单会一点就可以写]](http://www.mshxw.com/aiimages/31/708875.png)
