民航票务管理系统分析和设计教学文稿Word文件下载.docx
《民航票务管理系统分析和设计教学文稿Word文件下载.docx》由会员分享,可在线阅读,更多相关《民航票务管理系统分析和设计教学文稿Word文件下载.docx(24页珍藏版)》请在冰豆网上搜索。
指导教师(签章):
2008年1月3日
计算机工程系
数据库原理及应用
课程设计报告
选题名称:
民航票务管理系统
系(院):
计算机工程系
专业:
计算机科学与技术(信息安全方向)
班级:
信息1051
姓名:
高 博学号:
1051303116
指导教师:
冯万利王红艳
学年学期:
2007~2008学年第1学期
2008年1月3日
摘要:
随着信息技术在管理上越来越深入而广泛的应用以及信息的不断海量化,在很多行业对信息的管理不得不依赖计算机,而不是使用比较原始的纯人力管理方法。
在当今,各行各业都有很多计算机管理的系统,特别是民航方面,每天,有上千万的人次订票、买票或者乘坐飞机,如果采取传统的人工售票或登记的方式会大大影响机场运作的效率,并且也无法避免一些人为的错误。
所以一个好的票务管理系统由为重要,特别是现在很多人喜欢提前订票或上网订票,自然,好的票务管理系统不仅需要快捷方便的操作、优秀的保存和统计功能、还要应付大容量数据的快速查找和保存及应付长时间的工作需要,必须保证系统的稳定性和安全性,更重要的是,安全的票务管理系统不仅需要有能够防护各种病毒和黑客恶意攻击的能,还需要有能够应付突发状况的能力,比如突然断电之后,系统的售票信息和当前正在进行的进程、操作应该怎么处理,或者,系统突然死机之后,所有数据又应该怎样处理等等。
这些问题都是我们在实际生活中经常会遇到的,所以,能不能解决上述问题就成了评价一个好的票务管理系统的主要依据。
而这次的课程设计则是根据票务管理系统中的最主要的功能,结合数据库中所学的知识,来实现一个简单的民航票务管理系统,供学习和研究之用!
关键词:
民航票务管理系统;
数据库;
查询;
修改;
ASP.NET
数据库原理及应用课程设计报告
1需求分析
1系统目标:
实现一个计算机民航票务系统,完成对航班的管理、机票管理以及登机牌的管理等功能。
2系统功能需求:
本系统的用户分为管理员和普通用户两类,管理员主要负责对航班进行管理,包括航班的增加、修改和删除。
主要为管理者增添航线时使用。
而普通用户既机场前台系统,主要进行机票的购买和退换,登机牌的发放以及航班信息的查询等功能。
(1)功能划分:
用户通过身份验证之后分别进入管理员或普通用户的主接口。
在管理员页面中,主要进行航班管理,有增加航班、修改航班和删除航班三种功能。
而普通用户的页面中主要有航班查询、订票、退票、机票查询、换登机牌和航班信息查询6种主要功能。
(2)功能描述:
航班管理
在航班管理中,管理员可以对现有的所有航线的所有航班进行修改操作,同时也可以增加新的航线,或者删除已有的旧的航线,相应的操作会影响航班查询的结果。
同时在删除航班的操作中应注意,如果需要删除的航班已经有票售出便无法删除。
航班查询
航班查询是普通用户可以进行的操作。
在航班查询中,分为两种查询方式:
按航空公司查询和按目的地查询。
顾名思义,在按航空公司查询的方式中,只要在下拉列表框中选择你需要查询的航空公司名即可查询到该航空公司的所有航线,在按目的地查询的查询方式中,只要输入目的地名称,即可查询到在一天中所有飞往该目的地的航班信息。
订票
订票功能是普通用户可以进行的操作。
在订票功能中,用户只要输入目的地然后选择需要乘作的航班就可以完成订票了。
在订票的过程中,需要输入旅客的个人数据,这些数据将存入数据库中,方便以后的查询以及登机牌的发放。
退票
退票功能是普通用户可以进行的操作。
在退票功能中,需要输入机票上的四位由系统产生的验证码验证之后才能进行操作。
机票查询
机票查询是普通用户可以进行的操作。
机票查询可以查询到该机票的所有信息,方便旅客在购票后及时核对自己的机票。
换登机牌
换登机牌是普通用户可以进行的操作。
在换登机牌的过程中,需要核对机票,然后进行座位的选择,一旦换了登机牌之后就不可以再进行退票的操作了。
换了登机牌之后,旅客就可以凭登机牌登机了。
航班信息查询
航班信息查询是普通用户可以进行的操作。
航班信息查询分为两种查询,航班详细信息查询和旅客名单查询。
这里的航班详细信息查询跟航班查询是有区别的。
在详细的航班信息查询中,可以查询到包括该航班的所有机组人员的信息的航班全部信息。
在旅客名单查询中可以查询到某架次航班所有实际登机的旅客名单。
2数据库的概念设计
1系统的概念模型
图1
图1:
民航票务系统概念模型的E/R图
图1是民航票务管理系统的概念模型的E/R图,该系统涉及的实体集有:
员工实体集:
具有属性员工编号、员工姓名、员工性别和员工职务。
班组实体集:
具有属性班组编号、班组名称、机长、副驾驶、乘务长、乘务员1、乘务员2、乘务员3、乘务员4、乘务员5和备注。
航空公司实体集:
具有属性航空公司ID号和航空公司名。
飞机实体集:
具有属性飞机ID号、飞机型号、头等舱座位数、商务舱座位数和经济舱座位数。
航班实体集:
具有属性航班编号、航空公司ID号、起始地、目的地、时间、中转标志、中转地、头等舱价格、商务舱价格、经济舱价格、飞机ID号、班组号和登机口。
机票实体集:
具有属性机票编号、验证码、日期、舱位、票价、签转标志、保险标志、旅客ID、登机牌编号、航班编号。
登机牌实体集:
具有属性登机牌编号、座位号、座位编号、托运标志。
乘客实体集:
具有属性乘客ID、乘客姓名、乘客性别。
一个班组中的一个岗位只有一个员工,而一个员工只能在一个班组里面,所以员工和班组之间的联系为1:
1的联系。
一个航班只有一个班组工作,而一个班组可以工作于多个不同的航班中,所以班组和航班之间的联系是1:
M的联系。
一个航空公司底下可以有多个航班,而一个航班只属于一个航空公司,所以航空公司和航班之间的联系是1:
一个航班只有一架飞机,而一架飞机一次只能执行一个航班的飞行任务,所以飞机和航班之间的联系是1:
一个登机牌只能由一张机票换到,而一张机票也只能换到一个登机牌,所以登机牌和机票之间的联系是1:
一个航班可以形成许多张机票,而一张机票只能对应于一个航班,所以航班与机票之间的联系是1:
一个乘客可以买许多张机票,而一张机票只属于一位乘客,所以乘客与机票之间的联系是1:
3数据库的逻辑设计
1将概念模型转换成关系模型
将E/R模型转换为关系模式
(1)员工实体集可以转换为关系:
STAFFINF(STAID,STANAME,STASEX,STADUTY)
STAID表示员工编号,STANAME表示员工姓名,STASEX表示员工性别,STADUTY表示员工职务。
(2)班组实体集可以转换为关系:
GROUNP(GROID,GRONAME,REMARK)
GROID表示班组编号,GRONAME表示班组名称,REMARK表示备注。
(3)航空公司实体集可以转换为关系:
COMPANY(COMPANYID,COMPANYNAME)
COMPANYID表示航空公司编号,COMPANYNAME表示航空公司名称。
(4)飞机实体集可以转换为关系:
PLANEINF(PLANEID,PLANETYPE,F_CLASS,B_CLASS,E_CLASS)
PLANEID表示飞机ID号,PLANETYPE表示飞机机型,F_CLASS表示头等舱座位数,B_CLASS表示商务舱座位数,E_CLASS表示经济舱座位数。
(5)航班实体集可以转换为关系:
FLIGHTINF(FLIGHTID,START,DESTINATION,F_TIME,TRANSFERTAG,TRANSFERPLACE,F_PRICE,B_PRICE,E_PRICE,BOARDINGGATE)
FLIGHTID表示航班号,START表示起始地,DESTINATION表示目的地,F_TIME表示起飞时间,TRANSFERTAG表示中转标志,TRANSFERPLACE标号中转地,F_PRICE表示头等舱价格,B_PRICE表示商务舱价格,E_PRICE表示经济舱价格,BOARDINGGATE表示登机门。
(6)机票实体集可以转换为关系:
TICKETS(TICKETID,VALIDATECODE,FDATE,CLASS,FEE,CEK_TRF_MARK,INSURANCEMARK)
TICKETID表示机票编号,VALIDATECODE表示验证码,FDATE表示航班日期,CLASS表示舱位,FEE,表示价格,CEK_TRF_MARK表示签转标志,INSURANCEMARK表示保险标志。
(7)登机牌实体集可以转换为关系:
BOARDINGPASS(BOARDINGPASSID,SEATNUM,SNO,CONSIGNMARK)
BOARDINGPASSID表示登机牌编号,SEATNUM表示座位号,SNO表示座位编号,CONSIGNMARK表示托运标志。
(8)乘客实体集可以转换为关系:
PASID(PASID,PASNAME,PASSEX)
PASID表示乘客身份证字号即乘客ID号,PASNAME表示乘客姓名,PASSEX表示乘客性别。
(9)员工和班组之间的联系是1:
1的联系,所以没有必要为其建立一个关系,可以通过扩展班组关系来表示:
GROUNP(GROID,GRONAME,CAPTAIN,VCAPTAIN,STEWARDCP,STEWARD1,STEWARD2,STEWARD3,STEWARD4,STEWARD5,REMARK)
CAPTAIN表示机长,VCAPTAIN表示副驾驶,STEWARDCP表示乘务长,STEWARD1表示乘务员1,STEWARD2表示乘务员2,STEWARD3表示乘务员3,STEWARD4表示乘务员4,STEWARD5表示乘务员5。
(10)班组和航班之间的联系是1:
M的联系,所以没有必要为其建立一个关系,可以通过扩展航班关系来表示:
FLIGHTINF(FLIGHTID,START,DESTINATION,F_TIME,TRANSFERTAG,TRANSFERPLACE,F_PRICE,B_PRICE,E_PRICE,GROID,BOARDINGGATE)
GROID表示班组编号。
(11)航空公司和航班之间的联系是1:
FLIGHTINF(FLIGHTID,FCOMPANYID,START,DESTINATION,F_TIME,TRANSFERTAG,TRANSFERPLACE,F_PRICE,B_PRICE,E_PRICE,GROID,BOARDINGGATE)
FCOMPANYID表示航空公司ID号。
(12)飞机和航班之间的联系是1:
FLIGHTINF(FLIGHTID,FCOMPANYID,START,DESTINATION,F_TIME,TRANSFERTAG,TRANSFERPLACE,F_PRICE,B_PRICE,E_PRICE,PLANEID,GROID,BOARDINGGATE)
PLANEID表示飞机ID号。
(13)机票和登机牌之间的联系是1:
1的联系,所以没有必要为其建立一个关系,可以通过扩展机票关系来表示:
TICKETS(TICKETID,VALIDATECODE,FDATE,CLASS,FEE,CEK_TRF_MARK,INSURANCEMARK,BOARDINGPASSID)
BOARDINGPASSID表示登机牌编号。
(14)航班和机票之间的联系是1:
M的联系,所以没有必要为其建立一个关系,可以通过扩展机票关系来表示:
TICKETS(TICKETID,VALIDATECODE,FDATE,CLASS,FEE,CEK_TRF_MARK,INSURANCEMARK,BOARDINGPASSID,FLIGHTID)
FLIGHTID表示航班编号。
(15)乘客和机票之间的联系是1:
TICKETS(TICKETID,VALIDATECODE,FDATE,CLASS,FEE,CEK_TRF_MARK,INSURANCEMARK,PASSID,BOARDINGPASSID,FLIGHTID)
PASSID表示旅客ID号。
4数据库的物理设计
1把关系模型转换为表结构:
员工信息表(StaffInf):
包含所有的员工信息,定义如下:
域名
含义
数据类型
例子
备注
STAID
员工编号
字符类型
3001
主键
STANAME
员工姓名
王剑
STASEX
员工性别
男
STADUTY
员工职务
机长
班组信息表(Group):
包含所有班组的信息,定义如下:
GROID
班组编号
数值类型
1031
GRONAME
班组名称
新青年
CAPTAIN
3002
VCAPTAIN
副驾驶
3004
STEWARDCP
乘务长
4007
STEWARD1
乘务员1
4008
STEWARD2
乘务员2
4009
STEWARD3
乘务员3
4005
STEWARD4
乘务员4
0000
STEWARD5
乘务员5
REMARK
无
航空公司信息表(Company):
包含所有航空公司的信息,定义如下:
COMPANYID
航空公司编号
KA
COMPANYNAME
航空公司名称
港龙航空
飞机信息表(PlaneInf):
包含所有飞机的信息,定义如下:
PLANEID
飞机编号
A3010
PLANETYPE
飞机机型
A340-300
F_CLASS
头等舱座位数
12
B_CLASS
商务舱座位数
18
E_CLASS
经济舱座位数
252
航班信息表(FlightInf):
包含所有航班的信息,定义如下:
FLIGHTID
航班号
CA3031
FCOMPANYID
CA
外键
START
起始地
南京
DESTINATION
目的地
北京
F_TIME
起飞时间
13:
50
TRANSFERTAG
中转标志
1表示需要转机
TRANSFERPLACE
中转地
F_PRICE
头等舱价格
B_PRICE
商务舱价格
1900
E_PRICE
经济舱价格
1500
A3040
1032
BOARDINGGATE
登机口
B1
机票信息表(TicketInf):
包含所有机票的信息,定义如下:
TICKETID
机票编号
10000
VALIDATECODE
验证码
1303
FDATE
日期
01/10
CLASS
舱位
B
FEE
票价
558
CEK_TRF_MARK
签转标志
1为可签转
INSURANCEMARK
保险标志
1为已保险
PASSID
乘客ID
320112************
BOARDINGPASSID
登机牌编号
1008
ZH9877
登机牌信息表(BoardingPass):
包含所有登机牌的信息,定义如下:
SEATNUM
座位号
23C
SNO
座位编号
133
CONSIGNMARK
托运标志
1为有行李托运
乘客信息表(PasInf):
包含所有乘客的信息,定义如下:
PASID
身份证字号
PASNAME
姓名
张成
PASSEX
性别
用户账号表(User):
包含所有用户的账号和口令信息:
定义如下:
USERID
用户ID号
1001
USERNAME
用户姓名
Benny
PASSWORD
用户密码
123
PURVIEW
用户权限
0为管理员
2实现数据完整性
通过各种约束,缺省实现数据的完整性。
由于航空票务管理系统的重要性和各个数据之间的复杂相关性,保证数据的完整性显得更为重要。
不能让用户随意的删除,修改数据。
(1)各种外键约束保证数据的完整性,不能随意删除。
外键的设置在上面数据库建表时已经提到。
(2)主键约束保证实体的完整性,主键的设置在上面的数据库建表的时候也已经提到了。
(3)创建存储过程,保证在换登机牌的同时能将登机牌的编号更新至机票表中的相关字段,确保数据的完整性。
5应用程序设计
1航空管理系统的处理流程图
2总体结构和外部模块设计
6编程实现
1Login.aspx
这是系统登陆接口,系统根据账号自动选择进入管理员或普通用户页面。
2Index.aspx
这是普通用户登陆成功的接口,在上侧有一条功能选择菜单,通过此菜单,用户可以实现各种操作。
(1)按下航班查询,页面加载FlightSearch.ascx,进行航班查询的一些相关操作。
(2)按下订票,页面载入Book.ascx,进行订票的相关操作。
(3)按下退票,页面载入ReturnTic.ascx,进行退票的相关操作。
(4)按下机票查询,页面加载TicketInfl.ascx,进行机票查询的相关操作。
(5)按下换登机牌,页面载入BoardingPass.ascx,进行换登机牌的相关操作。
(6)按下航班信息,页面加载FlightInfButton.ascx,进行航班信息查询的相关操作。
(7)按下退出系统,退出系统。
3FlightSearch.ascx
在航班查询的功能页面中,有两种查询方式,第一是按目的地查询,第二是按航空公司查询。
上面两张图片分别是按目的地查询的查询过程(上图)和按航空公司查询的查询过程(下图)。
(1)按目的地查询:
在这种查询方式下,只要在搜索栏中用汉字输入需要前往的城市名,然后点击查询按钮后,就可以在列表中出现在一天中所有飞往该城市的航班信息。
显示的航班信息包括:
航班号,航空公司,起始地,目的地,时间,是否需要中转以及飞机型号。
需要注意的是,起始地为南京。
(2)按航空公司查询:
在这种查询方式下,只要从下拉列表中选择你所需要查询的航空公司,然后点击查询按钮后,所有该航空公司拥有的全部航线都会显示在列表中。
4Book.ascx
在订票的功能页面中,用户只需要输入目的地及日期,点击提交按钮之后,页面中会显示出所有当天匹配的所有航班信息。
接下来,在出现的页面中填写所需要订购的航班的航班号等其他信息后,然后再在旅客信息资料中填写购票人的姓名,身份证字号等信息后按提交按钮后就可以完成订票的操作了。
5ReturnTic.ascx
在此退票的功能页面中,用户首先需要输入机票上的流水号,点击提交按钮之后,系统会显示出该机票的详细信息,包括航班号、出发地、目的地、日期、时间、舱位、中转地和旅客姓名。
在核对机票信息后,如果确定退票,在输入框中输入机票上的四位验证码,点击提交按钮之后既完成退票的操作。
6TicketInfl.ascx
在机票查询的功能页面中,用户可以对自己所购买的机票的航班信息进行查询。
在输入机票流水号和机票上面的四位验证码并提交之后,系统就会显示出本张机票的所有信息,包括:
航班号、航空公司名称、机型、出发地、目的地、日期、时间、舱位、中转地、旅客姓名、保险状态、签转状态和票价。
7BoardingPass.ascx
在换登机牌的功能页面中,用户可以完成登机牌的更换的操作。
当旅客到达机场后,需要进行登机牌的更换,此时,只要输入机票流水号和机票上的四位验证码,在系统出现该张机票的详细信息后,旅客可以选择自己所需要的座位,在选择座位的时候,系统会显示出当前航班的所有座位被选择的情况,红色方块表示该座位已经被选择了,而绿色的方块则表示此座位可以被选,当选择好座位后再选择是否需要托运行李就完成了登机牌的更换的操作,此时系统会打印出乘客的登机牌。
8FlightInfButton.ascx
在航班信息查询的功能页面中,有两种查询方式,分别是查