滨江学院
《网络数据库》系统设计
题    目  航空订票管理系统         
  院  系   电子工程系 
专    业   通信工程   
学生姓名      
学    号 
指导教师        
二0 一二 年 十 二 月 二十八日
1 需求分析
  本系统是民航管理系统,此系统主要分为机场、航空公司和客户三方的服务。航空公司提供航线和飞机的资料,机场则对在本机场起飞和降落的航班和机票进行管理,而客户能得到的服务应该有航班线路和剩余票数的查询,以及网上订票等功能。客户又可以分为两类,一类是普通客户,对于普通客户只有普通的查询功能和订票功能,没有相应的机票优惠,另一种是经常旅客,需要办理注册手续,但增加了里程积分功能和积分优惠政策。机场还要有紧急应对措施,在航班出现延误时,要发送相应的信息
1.1系统分析
本系统分为三类用户、航空公司、普通用户、经常用户,系统功能的基本要求:
1)每个航班信息的输入。
2)每个航班的坐位信息的输入。
3)当旅客进行机票预定时,输入旅客基本信息,系统为旅客安排航班,打印取票通知和帐单。
4)旅客在飞机起飞前一天凭取票通知交款取票。
5)旅客能够退订机票。
6)能够查询每个航班的预定情况、计算航班的满座率。
1.2用户需求
  本系统分为三类用户:航空公司需要软件能够实现航班信息录入、座位信息录入、航班信息删除等,普通用户能够订票、退票、取票、查询航班信息、余票查询、注册成为经常用户,经常用户能够订票、退票、取票、余票查询、查询航班信息、使用积分打折、查询积分等功能
2 软件总体设计
2.1系统流程图
                     
图2-1 系统流程图
2.2系统功能模块设计
  系统主要功能如下图2-2所示:
图2-2 系统功能模块图
2.3系统总体设计
    本系统使用登录区分三种用户、对登录成功的用户实现不同的权限和功能和对数据库的存
取控制,当普用户登录后只能实现订票、退票、取票、查询航班信息、余票查询、注册成为经常用户,经常用户登录后能够订票、退票、取票、余票查询、查询航班信息、使用积分打折、查询积分,航空公司登录后能够录入航班信息、删除韩版信息、录入座位信息。
3 软件详细设计
3.1开发环境及数据库连接
Microsoft visual c++2010与SQL server 2008
String  str = @"Data Source=(local);Initial Catalog=MHGL;Integrated Security=True";
            SqlCommand cmd = new SqlCommand();
            SqlConnection conn = new SqlConnection();
            conn.ConnectionString = str;
3.2 登录模块设计
3.2.1 设计思路
该模块需要根据权限登录系统,通过去用户的判定来给以一定的功能和权限,涉及对数据库中的经常用户表、航空公司表的操作,所以,当登录时就连接数据库,判断是否登录成功。
3.2.2 实现方法
    程序流程图
            图3-1 登录流程图
3.3航空公司模块设计
3.3.1 设计思路
该模块需要对航班信息的录入、删除、座位信息录入,涉及对数据库中的航班信息表和座位信息表的操作,所以需要连接数据库进行增加、删除信息。
3.3.2 实现方法
    程序流程图
                图3-2 航空公司流程图
3.4普通用户模块设计
3.4.1 设计思路
该模块需要对航班信息查询、订票、退票、取票、余票查询、注册涉及对数据库中的航班座位表和航班表、账单、取票通知、旅客表、VIP表的操作,所以需要连接数据库进行增加、删除信息。
3.4.2 实现方法
    程序流程图  图3-3 普通用户流程图
               
3.5经常用户模块设计
3.5.1 设计思路
该模块需要对航班信息查询、订票、退票、取票、余票查询、积分查询涉及对数据库中的航班座位表和航班表、账单、取票通知、旅客表、VIP表的操作,所以需要连接数据库进行增加、删除信息。
3.5.2 实现方法
  程序流程图
                        图3-4 经常用户流程图
4 数据库设计
4.1概念模型设计
4.1.1 设计原理
    概念模型能真实、充分地反映现实世界,包括事物和事物之间的联系,能满足用户对数据的处理要求,是对现实世界的一个真实模型。
4.1.2 概念模型
经过对民航管理系统所涉及的数据进行分析,得到如下实体:
1)航空公司:属性有用户名,密码。
2)经常用户:属性有用户名,密码,积分。
3)航班:属性有航班编号,起点,终点,起飞时间,到达时间。
4)座位信息:属性有航班编号,座位数,票价,余票。
5)旅客信息:属性有座位号,航班编号,用户名,性别,年龄,账单号,取票通知号。
6)取票通知:属性有取票通知号,取票时间。
7)账单:属性有账单号,票价。
所设计的概念模型(E-R图)如下
图4-1 系统E-R模型图
图4-2航空公司实体局部E-R图
图4-3 经常用户实体局部E-R图
图4-4 账单实体局部E-R图
图4-5 取票通知实体局部E-R图
图4-6 座位信息实体局部E-R图
网上订机票如何取票图4-7 航班实体局部E-R图
图4-8 旅客信息实体局部E-R图
4.2逻辑结构设计
4.2.1 将实体转换为关系模式
1)航空公司(用户名,密码)
2)经常用户(用户名,密码,积分)
3)航班(航班编号,起点,终点,起飞时间,到达时间)
4)座位信息(航班编号,座位数,票价,余票)
5)旅客信息(座位号,航班编号,用户名,性别,年龄,账单号,取票通知号)
6)取票通知(取票通知号,取票时间)
7)账单(账单号,票价)
4.3物理结构设计
4.3.1  基本表设计
航空公司基本信息表
表4-1 客户基本信息表
字段名
字段描述
字段类型
备注
用户名
主键,唯一区别一个用户的身份
varchar(50)
非空、唯一
密码
储存用户登录口令
varchar(50)
非空、不唯一
经常用户基本信息表
表4-2 经常用户基本信息表
字段名
字段描述
字段类型
备注
用户名
主键,唯一区别一个用户的身份
varchar(50)
非空、唯一
密码
储存用户登录口令
varchar(50)
非空、不唯一
积分
储存客户积分
Int
可以空、不唯一
航班信息表
表4-3航班基本信息表
字段名
字段描述
字段类型
备注
航班编号
主键,唯一区别一趟航班
varchar(50)
非空、唯一
起点
储存航班起点
varchar(50)
可以空、不唯一
终点
储存航班终点
varchar(50)
可以空、不唯一
起飞时间
航班起飞时间
datetime
可以空、不唯一
到达时间
航班到达时间
datetime
可以空、不唯一
座位信息表
  表 4-4座位信息表
字段名
字段描述
字段类型
备注
航班编号
主键,唯一区别一趟航班
varchar(50)
非空、唯一
座位数
航班总座位数
int
可以空、不唯一
票价
机票价格
float
可以空、不唯一
余票
剩余的机票
Int
可以空、不唯一
旅客信息表
  表4-5旅客基本信息表
字段名
字段描述
字段类型
备注
航班编号
唯一区别一趟航班
varchar(50)
非空、唯一
座位号
旅客座位号
int
非空、唯一
用户名
储存旅客用户名
varchar(50)
非空、唯一
性别
用于储存用户性别
varchar(50)
非空、不唯一
年龄
用于储存旅客年龄
int
非空、不唯一
账单号
用于储存账单编号
int
非空、唯一
取票通知号
用于储存取票通知编号
int
非空、唯一
取票通知表
  表4-6取票通知信息表
字段名
字段描述
字段类型
备注
取票通知号
主键,唯一区别一张通知
varchar(50)
非空、唯一
取票时间
用于储存取票时间
datetime
非空、不唯一
账单表
  表4-7账单信息表
字段名
字段描述
字段类型
备注
取账单号
主键,唯一区别一张账单
varchar(50)
非空、唯一
票价
用于储存票价
float
非空、不唯一
5 系统编码、测试
5.1测试环境
本系统测试的时候主要是黑盒测试,进行功能的验证。
测试环境:Windows 2007
工具:Microsoft visual c++2010、Sql Server 2008
5.2测试用例及结果
5.2.1 界面测试
界面测试结果,界面整洁美观,界面风格一致,无错别字,控件按钮位置合适易于操作,输入框、下拉列表等显示正确。
5.2.2 功能测试
1、航空公司登录测试用例
                    表5-1 航空公司登录测试表
测试用列编号
用户名
登录密码
是否成功
1
航空公司(正确)
123(正确)
登录成功
2
航空公司(正确)
111(错误)
登录失败
3
航空(错误)
123(正确)
登录失败
4
航空公司(正确)
登录失败
5
123(正确)
登录失败
用例2、3、4、5的实际结果,如图所示:
   
                    图5-1 航空公司登录失败图 
用例1的实际结果
                图5-2 航空公司登录成功图
2、经常用户登录测试用例
                    表5-2 经常用户登录测试表
测试用列编号
用户名
登录密码
是否成功
1
张三(正确)
123(正确)
登录成功
2
张三(正确)
111(错误)
登录失败
3
李四(错误)
123(正确)
登录失败
4
李四(正确)
登录失败
5
123(正确)
登录失败
用例2、3、4、5的实际结果,如图所示:
                      图5-3 经常用户登录失败图
用例1的实际结果
                    图5-4 经常用户登录成功图
3、普通用户登录测试用例
  普通用户直接登录,进行订票、退票等。
界面如图所示:
图5-5 普通用户登录图
4、航空公司模块功能界面
                图5-6 航空公司信息录入界面
图5-7 航空公司删除航班界面 
5、普通客户和经常客户功能界面 
 
图5-8 航班查询界面
图5-9 余票信息查询界面
图5-10 退票功能界面
图5-11 取票功能界面
图5-12 注册界面
6总结
    通过本次实验,我进一步理解和掌握课堂上所学的各种数据库设计所使用的概念模型和数据库设计的流程及通用方法,掌握了软件设计的基本内容和设计方法,并有了一定的进行规范化软件设计的能力,掌握了使用各种计算机资料和有关参考资料,一定程度上提高了进行程序设计的基本能力。尤其是对数据库设计流程的理解进一步的加深了,对于面向对象的程序设计思想和设计方法有了更加深刻的理解。通过本次实验我知道设计一个数据库是很不容易的,虽然遇到了很多困难,但经过自己的努力,问题还是可以克服的。实验结果出来后的那份喜悦是无法用语言描述的。只要自己有耐心总会获得成功的。