https://download.csdn.net/download/weixin_57836618/74003755
介绍
民航订票管理系统实现了航班信息查询,客户定票,客户退票,航班信息管理,航线管理 航班延误管理,已订票客户信息管理,会员信息管理等功能。
软件架构
开发工具:eclipse Intel idea sqlserver java swing jdbc
(1)问题描述:设计系统的简单描述
民航订票管理系统实现了航班信息查询,客户定票,客户退票,航班信息管理,航线管理
航班延误管理,已订票客户信息管理,会员信息管理等功能。
用户登录
该功能模块可以根据出发地和目的地以及拟定的出发时间查询在该出发时间之后的所有相关航班信息。
该功能需要存储一定数量的航班信息,检索到的符合查询要求的航班信息将以表格的形式显示出来。
每一次订票过程首先生成一个订单界面,可以根据客户的要求向订单中增加客户订票信息。
点击添加旅客按钮,生成客户订票管理界面,该界面分为两个选项卡面板(普通客户,经常客户)要求客户完善自己的订票信息。
2.1、普通用户
普通用户即非会员客户订票,普通用户可以注册成为会员。当点击确定按钮时,会触发一个存储过程bookingTickets,该存储过程会先判断客户是否为会员,如果是则给予优惠折扣,即优惠折扣=(飞机票价-VIP等级*0.1-VIP积分*0.05)/飞机票价。如果不是则按照普通客户的标准,不打折。
2.2、经常用户
经常用户即会员用户,可根据会员等级和积分获得一定的机票优惠。当点击确定按钮时,会触发一个存储过程bookingTickets,该存储过程会先判断客户是否为会员,如果是则给予优惠折扣,即优惠折扣=(飞机票价-VIP等级*0.1-VIP积分*0.05)/飞机票价。如果不是则按照普通客户的标准,不打折。
2.3、会员注册
2.4、支付
每添加一条客户订票信息,该系统就会实时计算出该条订单的合计金额,当客户订票完成时,点击支付按钮并支付相应的票价金额,则该订单完成,客户订票信息成功导入数据库表CustomersBTInformation中,并刷新航班信息表FlightInformation中机票库存信息。
根据客户的身份证号查询该客户的所有订票信息,选中需要退票的订票信息,单击退票按钮完成退票,并刷新数据库表CustomersBTInformation中的客户订票信息以及并刷新航班信息表FlightInformation中机票库存信息。
管理员登录
1航班信息管理
(1)、添加
输入航班信息,向数据库表FlightInformation中插入航班信息
(2)、删除
根据航班号删除数据库表FlightInformation中相应航班信息
2、航线管理
(1)、添加航线
输入航线信息,向数据库表Airline中插入航线信息
3、航班延误管理
在输入要修改的航班号,航线号,以及修改成的出发时间和到达时间。点击“修改”按钮,实现对该航班的延误修改即修改表FlightInformation并通过一个触发器同时修改表CustomersBTInformation中已订购该航班机票的客户订票信息。
4、已订票客户信息管理
实现对客户信息的增删改查功能
(1)、查询客户信息
(2)、添加客户信息
(3)、删除客户信息
确保数据库运行安全以及确保数据库中的数据安全。
设置合理的约束以防止用户向数据库中添加不合语义的数据,完善主外键的设置。使得数据库运行流畅。
定义一个购票存储过程,实现在客户购票时判断客户是否是会员如果是的话就根据会员等级和会员积分给与客户相应的机票优惠,如果不是则不给予优惠。
定义一个购票存储过程,如果客户购买了一张机票,则减少相应的机票库存并修改该班次的上座率。
定义一个退票存储过程,如果一个客户退票,则修改相应的机票库存,并修改该班次的上座率。
定义一个删除航线触发器,实现如果删除一条航线,则将该航线下的所有航班信息删除。
定义一个航班延误触发器,实现如果修改某航班的出发时间和到达时间,同时修改客户订票信息中相应航班的出发和到达时间,实现及时通知客户延误信息。
画出系统整体的 E-R 模型;并对模型中所出现的实体及属性等信息加以说明。
实体及属性说明
订票信息(包含客户信息及航班信息)
客户信息(包含客户姓名,身份证号等基本资料)
航班信息(包含航线信息和航班基本信息)
航线信息(包含航空公司信息和航线基本信息
模式设计:按系统整体 E-R 模型,写出关系模式;并利用数据字典加以描述。(如每个关系模式有何属性、属性的类型、属性值的长度、是否可取空值、是否为主码、有何约束条件等信息)
1、模式设计
(1)、关系模式
航空公司(航空公司名称,地址,联系方式,描述)
航线(航线编号,起点,终点,里程,航空公司名称)
航班(航线号,航班号,出发地,目的地,起飞时间,到达时间,机型,余票量,票价,航空公司)
客户信息(姓名,身份证号,性别,年龄,手机,家庭住址,会员等级,会员积分)
订票信息(姓名,身份证号,性别,年龄,手机,家庭住址,会员等级,会员积分,航线号,航班号,出发地,目的地,起飞时间,到达时间,折扣,票价)
表名:Users
字段名 |
是否主键 |
字段类型 |
字段长度 |
是否允许为空 |
备注 |
userName |
否 |
varchar |
20 |
否 |
用户名 |
password |
否 |
varchar |
20 |
否 |
密码 |
表名:Administrators
字段名 |
是否主键 |
字段类型 |
字段长度 |
是否允许为空 |
备注 |
userName |
否 |
varchar |
20 |
否 |
用户名 |
password |
否 |
varchar |
20 |
否 |
密码 |
表名:AirCompany
字段名 |
是否主键 |
字段类型 |
字段长度 |
是否允许为空 |
备注 |
name |
是 |
varchar |
30 |
否 |
航空公司名称 |
address |
否 |
varchar |
30 |
否 |
航空公司地址 |
tel |
否 |
varchar |
20 |
否 |
航空公司电话 |
description |
否 |
varchar |
100 |
否 |
航空公司描述 |
表名:Airline
字段名 |
是否主键 |
字段类型 |
字段长度 |
是否允许为空 |
备注 |
airlineNo |
是 |
varchar |
20 |
否 |
航线编号 |
origin |
否 |
varchar |
20 |
否 |
出发地 |
destination |
否 |
varchar |
20 |
否 |
目的地 |
distance |
否 |
float |
否 |
航距 |
|
aircompany |
否 |
varchar |
30 |
否 |
航空公司名称 |
表名:VIPCustomers
字段名 |
是否主键 |
字段类型 |
字段长度 |
是否允许为空 |
备注 |
name |
否 |
varchar |
20 |
否 |
姓名 |
sex |
否 |
varchar |
3 |
否 |
性别 |
age |
否 |
int |
是 |
年龄 |
|
id |
是 |
varchar |
20 |
否 |
身份证号 |
tel |
否 |
varchar |
20 |
否 |
电话 |
address |
否 |
varchar |
50 |
否 |
家庭地址 |
vipgrade |
否 |
int |
是 |
VIP等级 |
|
vipscore |
否 |
int |
是 |
VIP积分 |
表名:BookTicketOrder
字段名 |
是否主键 |
字段类型 |
字段长度 |
是否允许为空 |
备注 |
name |
否 |
varchar |
20 |
否 |
姓名 |
sex |
否 |
varchar |
3 |
否 |
性别 |
age |
否 |
int |
是 |
年龄 |
|
id |
否 |
varchar |
20 |
否 |
身份证号 |
tel |
否 |
varchar |
20 |
否 |
电话 |
address |
否 |
varchar |
30 |
否 |
家庭地址 |
origin |
否 |
varchar |
20 |
否 |
出发地 |
destination |
否 |
varchar |
20 |
否 |
目的地 |
leaveTime |
否 |
DateTime |
否 |
出发时间 |
|
arriveTime |
否 |
DateTime |
否 |
到达时间 |
|
flightNo |
否 |
varchar |
20 |
否 |
航班号 |
airlineNo |
否 |
varchar |
20 |
否 |
航线号 |
seatType |
否 |
varchar |
10 |
否 |
座位类型 |
airCompany |
否 |
varchar |
30 |
否 |
航空公司名称 |
vipgrade |
否 |
int |
是 |
VIP等级 |
|
vipscore |
否 |
int |
是 |
VIP积分 |
|
ticketPrice |
否 |
float |
是 |
票价 |
|
discount |
否 |
float |
是 |
优惠折扣 |
|
actualPrice |
否 |
float |
是 |
实际票价 |
表名:FlightInformation
字段名 |
是否主键 |
字段类型 |
字段长度 |
是否允许为空 |
备注 |
flightNo |
是 |
varchar |
20 |
否 |
航班号 |
airlineNo |
否 |
varchar |
20 |
否 |
航线号 |
origin |
否 |
varchar |
10 |
否 |
出发地 |
destination |
否 |
varchar |
10 |
否 |
目的地 |
leaveTime |
否 |
DateTime |
否 |
出发时间 |
|
arriveTime |
否 |
DateTime |
否 |
到达时间 |
|
totalSeats |
否 |
int |
否 |
总座位 |
|
firstPrice |
否 |
float |
否 |
头等舱票价 |
|
businessPrice |
否 |
float |
否 |
商务舱票价 |
|
economyPrice |
否 |
float |
否 |
经济舱票价 |
|
firstRemain |
否 |
int |
否 |
头等舱剩余 |
|
businessRemain |
否 |
int |
否 |
商务舱剩余 |
|
economyRemain |
否 |
int |
否 |
经济舱剩余 |
|
occupancy |
否 |
float |
否 |
占座率 |
|
planeModel |
否 |
varchar |
10 |
否 |
机型 |
airCompany |
否 |
varchar |
30 |
否 |
航空公司名称 |
表名:CustomersBTInformation
字段名 |
是否主键 |
字段类型 |
字段长度 |
是否允许为空 |
备注 |
flightNo |
是 |
varchar |
20 |
否 |
航班号 |
airlineNo |
否 |
varchar |
20 |
否 |
航线号 |
origin |
否 |
varchar |
10 |
否 |
出发地 |
destination |
否 |
varchar |
10 |
否 |
目的地 |
leaveTime |
否 |
DateTime |
否 |
出发时间 |
|
arriveTime |
否 |
DateTime |
否 |
到达时间 |
|
totalSeats |
否 |
int |
否 |
总座位 |
|
firstPrice |
否 |
float |
否 |
头等舱票价 |
|
businessPrice |
否 |
float |
否 |
商务舱票价 |
|
economyPrice |
否 |
float |
否 |
经济舱票价 |
|
firstRemain |
否 |
int |
否 |
头等舱剩余 |
|
businessRemain |
否 |
int |
否 |
商务舱剩余 |
|
economyRemain |
否 |
int |
否 |
经济舱剩余 |
|
occupancy |
否 |
float |
否 |
占座率 |
|
planeModel |
否 |
varchar |
10 |
否 |
机型 |
airCompany |
否 |
varchar |
30 |
否 |
航空公司名称 |
2、子模式设计
(1)、视图设计
创建一个视图用于存放根据身份证号码查询出来的客户信息。该视图的字段参照表CustomersBTInformation
四、数据库设计实现
(1)、数据库的创建
T-SQL 语句:create database CivilAviationTicketSystem
(2)、数据表的创建
T-SQL语句 :
/*用户信息*/
create table Users(
userName varchar(20) not null,
password varchar(20) not null)
/*管理员信息*/
create table Administrators(
userName varchar(20) not null,
password varchar(20) not null)
/*航空公司信息*/
create table AirCompany(name varchar(30) primary key not null,
address varchar(30) not null,
tel varchar(20) not null,
description varchar(100) not null)
/*航线信息*/
create table Airline(airlineNo varchar(20) primary key not null,
部分展示
完整文档和源代码可以在我的资源里面下载