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