1、软件工程毕业课程设计小组报告(此文档为word格式,下载后您可任意编辑修改!)软件工程课程设计小组报告机票预订系统专业名称:_ _软件工程 _班 级:_ _2010级3班_同组成员:_ 李效伦_ _同组成员:_ 郭瑶瑶_ _同组成员:_ 韩方杰_ _指导教师:_ _倪丽娜老师 _实验地点:_ 计算机系实验室 _完成日期: 本学期教学周:第8至14周 信息科学与工程学院二零一二年十一月一、课程设计概述 3二、项目的需求分析过程及需求模型 32.1.系统可行性分析 32.2.系统需求分析 32.2.1.系统目标设计 32.2.2.系统功能需求分析 42.2.3.系统功能描述 52.2.4系统的数据
2、流图 5三、项目设计模型 63.1.系统UML建模设计 63.1.1.UML简介 63.1.2.系统的用例分析 73.1.3.系统的顺序图 83.1.4.系统的状态图 143.1.5.系统的活动图 153.1.6.系统的类图 213.2.系统数据库建模 223.2.1.数据库概念设计 223.2.2.数据库物理设计 24四、实现项目的过程与步骤 27五、遇到的困难与获得的主要成果 285.1.遇到的主要困难 285.1.1.界面风格的统一 285.1.2.数据库使用的统一 295.1.3.文档的编写 295.1.4.高级语言嵌入SQL语言 295.1.5.C#控件的使用 305.2.主要成果
3、305.2.1.软件工程知识的巩固 305.2.2.visio作图能力的提升 315.2.3.编程能力的提升 315.2.4.团队意识的加强 325.2.5.数据库使用技巧的提高 325.2.6.面向对象程序设计的认识的提高 32六、测试与运行记录 336.1.利用等价类划分进行身份证测试 336.2.注册账号测试用例 336.3.登录测试用例 346.4.修改密码测试用例 34七、课程设计完成结果分析 35八、附录 35一、课程设计概述1.1. 目的通过本课程设计的实践及其前后的准备与总结,复习、领会、巩固和运用软件工程课堂上所学的软件开发方法和知识,以此来完成飞机订票系统的分析、设计、编码
4、、测试等工作。1.2. 任务通过认真阅读老师所给的课程设计的题目要求,进行系统的需求分析、。1.3. 开发环境:Microsoft Visual Studio 2008 + SQL Server 2005 、 Windows XP1.4. 参考资料: 1. 钱永秋等,软件工程,清华大学出版社,2007年3月。2. 胡荷芬等,UML系统建模基础教程,清华大学出版社,2010年5月。3. 郑阿奇等,SQL Server 使用教程,电子工业出版社,2009年12月。4. 金旭亮等,C#程序设计语言基础,北京理工大学出版,2008年10月。二、项目的需求分析过程及需求模型2.1.系统可行性分析随着互联
5、网的普及,越来越多的人都加快了生活的步伐。同样,买票也越来越方便,现在有更多的用户已经不再排队买票,而是通过互联网,很快就可以完成自己的订票。想要退票、改签,亦可以通过网络来完成。在很大程度上节约了人们的时间,可以说互联网给用户带来了一次伟大的变革。飞机订票系统,给用户提供友好的界面,方便的操作,满足简单用户的需求。使用户使用更加方便,快捷。2.2.系统需求分析2.2.1.系统目标设计系统开发的总目标是实现飞机订票的系统化、规范化和自动化。对航空公司旗下的所有航班(包括航班类型,航班号,时间,所属公司,始发地,目的地,仓位,起飞时间,抵达时间,剩余座位,票价)。进行统一管理对用户的信息(包括姓
6、名,电话,身份证号,护照号)进行统一管理。提供方便的查询方法。如:时间、始发地、目的地、票价等进行查询。提供对机票的预定功能。提供对机票的改签功能。提供对退票功能。提供对付款功能。提供添加航班功能,比如:某一个航空公司新增加了从A地飞往B地的航班。提供调整航班功能。提供取消航班,对于因天气、人为、飞机等原因为不能正常起飞的航班进行取消。提供用户的注册功能。2.2.2.系统功能需求分析 (1) 用户管理:用户的分类、注册、订票、退票、改签、付款、取票等。 (2) 系统管理:管理员订票、退票、改签、添加航班、取消航班、调整航班、统计售票情况。 满足以上需求的系统主要包含有一下几个子系统(1)登录和
7、注册子系统:该系统中主要包含了用户的注册和登录等功能。(2)管理员子系统:该子系统主要包含管理员对系统的操作。(3)旅客子系统:该子系统主要包含旅客对系统的操作。(4)旅行社子系统:该子系统主要包含旅行社对系统的操作。下图为该飞机订票系统的主要功能模块图: 图1:飞机订票系统功能模块图2.2.3.系统功能描述(1) 订票。处理各类用户的订票业务。(2) 退票。处理各类用户的退票业务。(3) 改签。处理各类用户的退票业务。(4) 注册。处理用户注册业务。(5) 登录。对用户的登录信息进行检查。(6) 查询。负责机票信息的查询。(7) 添加航班。负责航班信息的添加。(8) 取消航班。负责航班的取消
8、。(9) 调整航班。对航班信息进行调整。(10) 统计售票。对售票情况进行统计。(11) 取票。用户完成取票功能。(12) 付款。用户对订票进行网上付款。2.2.4系统的数据流图 图2:飞机订票系统的DFD图三、项目设计模型3.1.系统UML建模设计3.1.1.UML简介UML是一种功能强大的、面向对象的可视化系统分析的建模语言,它采用一整套成熟的建模技术,广泛地适用于各个应用领域。它的各个模型可以帮助开发人员更好地理解业务流程,建立更可靠、更完善的系统模型。从而使用户和开发人员对问题的描述达到相同的理解,以减少语义差异,保障分析的正确性.3.1.2.系统的用例分析该飞机订票系统的用况图如下:
9、图3:飞机订票系统的用况图从用例图中我们可以看出管理员、旅行社和旅客之间对本系统所具有的用例。管理员所包含的用例有:(1) 登录系统:管理员可以通过登录该系统进行各项功能的操作(2) 订票:帮助用户查询订购机票等。(3) 退票:帮助用户退订机票等。(4) 改签:帮助用户改签机票等。(5) 增加航班:对航班的添加等。(6) 调整航班:对航班信息的修改等。(7) 取消航班:取消不能正常起飞的航班等。(8) 统计售票信息:统计一个时间段内的售票信息等。旅客所包含的用例有:(1) 登录系统:管理员可以通过登录该系统进行各项功能的操作(2) 订票:旅客查询订购机票等。(3) 退票:旅客退订机票等。(4)
10、 改签:旅客改签机票等。(5) 付款:旅客对订购的机票进行付款等。(6) 取票:旅客取走自己订购的机票等。旅行社所包含的用例有:(1) 登录系统:管理员可以通过登录该系统进行各项功能的操作(2) 订票:旅行社查询订购机票等。(3) 退票:旅行社退订机票等。(4) 改签:旅行社改签机票等。(5) 付款:旅行社对订购的机票进行付款等。(6) 取票:旅行社取走自己订购的机票等。3.1.3.系统的顺序图顺序图是显示对象之间交互的图,这些对象是按时间顺序排列的。该飞机订票系统主要含有以下几个重要的顺序图,其他对象的顺序图和这些也类似。本系统主要的顺序图有:1、 登录系统顺序图图4:飞机订票系统登录顺序图
11、【顺序图说明】(1) 输入登录用户账号和密码:登录系统。(2) 验证登录用户账号和密码:对用户的登录信息进行验证,检查是否是笨系统的合法用户,并区分用户的权限。(3) 登录信息有效:根据用户的不同权限进行不同的页面跳转。(4) 退出系统:用户使用完系统后退出系统。登录系统时,系统自动区分不同用户的不用权限,用户以有效的身份登录后,可以在自己的权限范围内操作系统。2、 订票顺序图图5:飞机订票系统订票顺序图【顺序图说明】(1) 查询:查询某个航班的信息。(2) 订购: 检查订购信息无误后进行确认订购。(3) 付款:为订票进行付款。(4) 取票:取走自己在系统上定的票。(5) 退出:退出系统。订票
12、时,首先查询所定的票是否存在以及是否有余票。如果有余票,检验订票信息,并订购、付款以及取票。3、 退票顺序图图6:飞机订票系统退票顺序图【顺序图说明】(1) 查询:查询某个已订票的信息。(2) 退订: 检查退订信息无误后进行确认退票。(3) 退出:退出系统。退票时,首先查询自己的订票信息,确认退票信息后确认退订即可。4、 改签顺序图图7:飞机订票系统改签顺序图【顺序图说明】(1) 查询:查询某个已订票的信息。(2) 删除已订票: 检查改签信息无误后退订已订票。(3) 查询要改签的余票:有余票才可以改签。(4) 改签:改签机票,将新改签的机票存入订票表中。(5) 退出:退出系统。改签时,首先查询
13、自己的订票信息,首先查询要改签的机票是否有此航班并且有余票,然后退订自己已订购的机票,再订购自己想改签成的机票即可。5、 添加航班顺序图图8:飞机订票系统添加航班顺序图【顺序图说明】(1) 添加航班:查询是否已存在此航班的信息,如果没有就添加航班。(2) 退出:退出系统。添加航班时,首先查询是否已存在此航班的信息,如果没有就添加航班,有就提示添加有误。6、 取消航班顺序图图9:飞机订票系统取消航班顺序图【顺序图说明】(1) 查询:查询是否存在要取消的航班信息。(2) 取消航班:取消航班。(3) 退出:退出系统。取消航班时,首先查询是否存在要取消的航班信息,如果不存在,则提示取消有误;如果存在,
14、则确认取消此航班。7、 调整航班顺序图图10:飞机订票系统调整航班顺序图【顺序图说明】(1) 查询要调整的航班:查询要调整的航班是否存在。(2) 调整航班:输入要调整的信息,如果调整信息正确,则调整成功。(3) 退出:退出系统。调整航班时,首先:查询要调整的航班是否存在,如果存在,则输入要调整的信息,如果调整信息正确,则调整成功。退出系统。3.1.4.系统的状态图飞机订票系统的机票状态图如图7所示。【状态图说明】机票在未出售时为系统的剩余机票,可以被订购。在有剩余机票的前提下,如果机票被订购以后,系统中的相应的机票就应该减少。同时,被订购的机票可以在规定的时间之前被退订或者改签。超出退订或者改
15、签时间的不能被退订或者改签。当用户退订机票时,机票的剩余张数应该增加。当用户改签机票时,被改签的机票的张数应该增加,改签后的机票应该减少。添加一个航班,系统中就会产生此航班的机票信息。图11:飞机订票系统的机票状态图3.1.5.系统的活动图活动图描述的是某流程中的任务的执行,活动图描述活动是如何协同工作的,当一个操作必须完成一系列事情,而又无法确定以什么样的顺序来完成这些事情时,活动图可以更清晰地描述这些事情。在本飞机订票系统中,我们主要描述了飞机订票系统的订票、退票、改签、增加航班、调整航班、取消航班的活动图。1.订票活动图【订票活动图说明】 订票时,首先登陆系统,系统验证用户登录信息的有效
16、性。用户查询所要定的票是否存在以及是否有余票。如果有余票,输入自己的信息(如:姓名、身份证号等信息),检验订票信息是否正确。如果正确就确定订票,并记录取票,及时取票。如果不正确,就核对订票信息,进行改正,直到正确为止。图12:飞机订票系统订票活动图2、退票活动图【退票活动图说明】退票时,首先登陆系统,系统验证用户登录信息的有效性。用户查询所要退订的票是否存在。如果存在,检验退票信息是否正确。如果正确就确定退票。如果不正确,就核对退票信息,进行改正,直到正确为止。图13:飞机订票系统的退票活动图3、改签活动图【改签活动图说明】改签时,用户首先登陆系统,系统验证用户登录信息的有效性。用户查询所要改
17、签的票是否存在。如果存在,检验退票信息是否正确。如果正确就进行改签。如果不正确,就核对改签信息,进行改正,直到正确为止。然后查询要改签的机票是否有余票,如果有余票就确认改签。图14:飞机订票系统的改签活动图4、添加航班活动图【添加航班活动图说明】添加航班时,用户首先登陆系统,系统验证用户登录信息的有效性(必须是管理员身份)。管理员查询要添加的航班是否存在。如果不存在,检验添加航班信息是否正确。如果正确就添加航班。如果不正确,就核对添加航班信息,进行改正,直到正确为止。图15:飞机订票系统的添加航班活动图5、取消航班活动图【取消航班活动图说明】取消航班时,用户首先登陆系统,系统验证用户登录信息的
18、有效性(必须是管理员身份)。管理员查询要取消的航班是否存在。如果存在,检验取消航班信息是否正确。如果正确就取消航班。如果不正确,就核对取消航班信息,进行改正,直到正确为止。图16:飞机订票系统的取消航班活动图6、调整航班活动图【调整航班活动图说明】调整航班时,用户首先登陆系统,系统验证用户登录信息的有效性(必须是管理员身份)。管理员查询要调整的航班是否存在。如果存在,检验调整航班信息是否正确。如果正确就调整航班。如果不正确,就核对调整航班信息,进行改正,直到正确为止。图17:飞机订票系统的调整航班活动图3.1.6.系统的类图【类图说明】(1) login类是用户登录的类,它的属性有用户名、密码
19、、权限、编号,操作有登录。(2) admin类是管理员类,他没有属性,操作主要是订购机票、退订机票、改签机票、添加航班、取消航班、调整航班等等。(3) users 类是用户类,包括用户的姓名、身份证号等属性,同样具有订购机票、退订机票、改签机票等操作。(4) ticket类是具体机票的类,属性包括航班类、时间、航班号、始发地、目的地、起飞时间、抵达时间、舱位、余票数、票价等属性。图18:飞机订票系统的类图及关系3.2.系统数据库建模 考虑到系统的推广性,本系统采用SQL SERVER 2005作为数据库。并且采用PowerDesigner进行数据建模,从而自动生成sql脚本。3.2.1.数据库
20、概念设计1、数据库表设计 (1)登录用户表login_users:用户名,密码,用户编号,分组。 (2)客户表users:姓名,电话,地址,身份证号,性别,客户编号。(3)售票表sale_ticket:时间,航班号,舱位,座号,身份证号。(4)航班表flight:航班类,时间,航班号,所属公司,始发地,目的地,舱位,起飞时间,抵达时间,剩余票数,票价。(5)订票表book_ticket:时间,航班号,舱位,座号,身份证号。2、飞机订票系统个实体之间的E-R图图12:飞机订票系统各实体之间的ER图3、基于powerdesigner的CDM数据库模型 (1)数据库概念数据模型CDM对象如下图,该图
21、显示了各实体的属性及各实体之间的关系。图13:飞机订票系统数据库关系图3.2.2.数据库物理设计由概念模型生成物理模型的的数据库脚本文件为 图书管理.sql文件,代码如下:USE aircraf_booking_systemGO* 对象: Table dbo.flight 脚本日期: 10302012 17:28:45 *SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOSET ANSI_PADDING ONGOCREATE TABLE dbo.flight( 航班类 varchar(10) NULL, 时间 datetime NULL, 航班号 var
22、char(10) NOT NULL, 所属公司 varchar(10) NULL, 始发地 varchar(10) NOT NULL, 目的地 varchar(10) NOT NULL, 舱位 varchar(10) NULL, 起飞时间 varchar(10) NOT NULL, 抵达时间 varchar(10) NOT NULL, 剩余票数 int NOT NULL, 票价 float NULL, CONSTRAINT PK_flight PRIMARY KEY CLUSTERED ( 航班号 ASC)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUT
23、E = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON PRIMARY) ON PRIMARYGOSET ANSI_PADDING OFFGO* 对象: Table dbo.login_users 脚本日期: 10302012 17:28:46 *SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOSET ANSI_PADDING ONGOCREATE TABLE dbo.login_users( 用户名 varchar(50) NOT NULL, 密码
24、varchar(50) NOT NULL, 用户编号 varchar(10) NOT NULL, 分组 varchar(10) NOT NULL, CONSTRAINT PK_users PRIMARY KEY CLUSTERED ( 用户编号 ASC)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON PRIMARY) ON PRIMARYGOSET ANSI_PADDING OFFGO* 对象: T
25、able dbo.sale_ticket 脚本日期: 10302012 17:28:48 *SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOSET ANSI_PADDING ONGOCREATE TABLE dbo.sale_ticket( 时间 datetime NOT NULL, 航班号 varchar(10) NOT NULL, 舱位 varchar(10) NULL, 座号 int NOT NULL, 身份证号 varchar(50) NOT NULL, CONSTRAINT PK_sale_ticket PRIMARY KEY CLUSTER
26、ED ( 航班号 ASC, 身份证号 ASC)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON PRIMARY) ON PRIMARYGOSET ANSI_PADDING OFFGO* 对象: Table dbo.book_ticket 脚本日期: 10302012 17:28:40 *SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOSET ANSI_PADD
27、ING ONGOCREATE TABLE dbo.book_ticket( 时间 datetime NOT NULL, 航班号 varchar(10) NOT NULL, 舱位 varchar(10) NULL, 座号 int NOT NULL, 身份证号 varchar(50) NOT NULL, CONSTRAINT PK_book_ticket PRIMARY KEY CLUSTERED ( 航班号 ASC, 身份证号 ASC)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_
28、ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON PRIMARY) ON PRIMARYGOSET ANSI_PADDING OFFGO* 对象: Table dbo.users 脚本日期: 10302012 17:28:51 *SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOSET ANSI_PADDING ONGOCREATE TABLE dbo.users( 姓名 varchar(10) NOT NULL, 电话 varchar(11) NOT NULL, 地址 varchar(50) NULL, 身份证号 va
29、rchar(50) NOT NULL, 性别 char(2) NULL, 用户编号 varchar(10) NOT NULL, CONSTRAINT PK_users_1 PRIMARY KEY CLUSTERED ( 用户编号 ASC)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON PRIMARY) ON PRIMARYGOSET ANSI_PADDING OFFGO* 对象: ForeignKey FK_book_ticket_flight 脚本日期: 10302012 17:28:41 *ALTER TABLE dbo.book_ticket WITH CHECK ADD CONSTRAINT FK_book_ticket_flight FOREIGN KEY(航班号)REFERENCES dbo.flight (航班号)GOALTER TABLE dbo
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1