软件工程课程设计小组报告.docx

上传人:b****8 文档编号:9871075 上传时间:2023-05-21 格式:DOCX 页数:44 大小:436.15KB
下载 相关 举报
软件工程课程设计小组报告.docx_第1页
第1页 / 共44页
软件工程课程设计小组报告.docx_第2页
第2页 / 共44页
软件工程课程设计小组报告.docx_第3页
第3页 / 共44页
软件工程课程设计小组报告.docx_第4页
第4页 / 共44页
软件工程课程设计小组报告.docx_第5页
第5页 / 共44页
软件工程课程设计小组报告.docx_第6页
第6页 / 共44页
软件工程课程设计小组报告.docx_第7页
第7页 / 共44页
软件工程课程设计小组报告.docx_第8页
第8页 / 共44页
软件工程课程设计小组报告.docx_第9页
第9页 / 共44页
软件工程课程设计小组报告.docx_第10页
第10页 / 共44页
软件工程课程设计小组报告.docx_第11页
第11页 / 共44页
软件工程课程设计小组报告.docx_第12页
第12页 / 共44页
软件工程课程设计小组报告.docx_第13页
第13页 / 共44页
软件工程课程设计小组报告.docx_第14页
第14页 / 共44页
软件工程课程设计小组报告.docx_第15页
第15页 / 共44页
软件工程课程设计小组报告.docx_第16页
第16页 / 共44页
软件工程课程设计小组报告.docx_第17页
第17页 / 共44页
软件工程课程设计小组报告.docx_第18页
第18页 / 共44页
软件工程课程设计小组报告.docx_第19页
第19页 / 共44页
软件工程课程设计小组报告.docx_第20页
第20页 / 共44页
亲,该文档总共44页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

软件工程课程设计小组报告.docx

《软件工程课程设计小组报告.docx》由会员分享,可在线阅读,更多相关《软件工程课程设计小组报告.docx(44页珍藏版)》请在冰点文库上搜索。

软件工程课程设计小组报告.docx

软件工程课程设计小组报告

软件工程课程设计小组报告

机票预订系统

专业名称:

______软件工程___

班级:

______2010级3班__________

同组成员:

_李效伦_201001050515__

同组成员:

_郭瑶瑶_201001050509__

同组成员:

_韩方杰_201001050607__

指导教师:

_____倪丽娜老师___

实验地点:

___计算机系实验室___

完成日期:

本学期教学周:

第8至14周

信息科学与工程学院

二零一二年十一月

 

一、课程设计概述

1.1.目的

通过本课程设计的实践及其前后的准备与总结,复习、领会、巩固和运用软件工程课堂上所学的软件开发方法和知识,以此来完成飞机订票系统的分析、设计、编码、测试等工作。

1.2.任务

通过认真阅读老师所给的课程设计的题目要求,进行系统的需求分析、。

1.3.开发环境:

MicrosoftVisualStudio2008+SQLServer2005、WindowsXP

1.4.参考资料:

[1].钱永秋等,软件工程,清华大学出版社,2007年3月。

[2].胡荷芬等,UML系统建模基础教程,清华大学出版社,2010年5月。

[3].郑阿奇等,SQLServer使用教程,电子工业出版社,2009年12月。

[4].金旭亮等,C#程序设计语言基础,北京理工大学出版,2008年10月。

二、项目的需求分析过程及需求模型

2.1.系统可行性分析

随着互联网的普及,越来越多的人都加快了生活的步伐。

同样,买票也越来越方便,现在有更多的用户已经不再排队买票,而是通过互联网,很快就可以完成自己的订票。

想要退票、改签,亦可以通过网络来完成。

在很大程度上节约了人们的时间,可以说互联网给用户带来了一次伟大的变革。

飞机订票系统,给用户提供友好的界面,方便的操作,满足简单用户的需求。

使用户使用更加方便,快捷。

2.2.系统需求分析

2.2.1.系统目标设计

系统开发的总目标是实现飞机订票的系统化、规范化和自动化。

对航空公司旗下的所有航班(包括航班类型,航班号,时间,所属公司,始发地,目的地,仓位,起飞时间,抵达时间,剩余座位,票价)。

进行统一管理

对用户的信息(包括姓名,电话,身份证号,护照号)进行统一管理。

提供方便的查询方法。

如:

时间、始发地、目的地、票价等进行查询。

提供对机票的预定功能。

提供对机票的改签功能。

提供对退票功能。

提供对付款功能。

提供添加航班功能,比如:

某一个航空公司新增加了从A地飞往B地的航班。

提供调整航班功能。

提供取消航班,对于因天气、人为、飞机等原因为不能正常起飞的航班进行取消。

提供用户的注册功能。

2.2.2.系统功能需求分析

(1)用户管理:

用户的分类、注册、订票、退票、改签、付款、取票等。

(2)系统管理:

管理员订票、退票、改签、添加航班、取消航班、调整航班、统计售票情况。

满足以上需求的系统主要包含有一下几个子系统

(1)登录和注册子系统:

该系统中主要包含了用户的注册和登录等功能。

(2)管理员子系统:

该子系统主要包含管理员对系统的操作。

(3)旅客子系统:

该子系统主要包含旅客对系统的操作。

(4)旅行社子系统:

该子系统主要包含旅行社对系统的操作。

下图为该飞机订票系统的主要功能模块图:

图1:

飞机订票系统功能模块图

2.2.3.系统功能描述

(1)订票。

处理各类用户的订票业务。

(2)退票。

处理各类用户的退票业务。

(3)改签。

处理各类用户的退票业务。

(4)注册。

处理用户注册业务。

(5)登录。

对用户的登录信息进行检查。

(6)查询。

负责机票信息的查询。

(7)添加航班。

负责航班信息的添加。

(8)取消航班。

负责航班的取消。

(9)调整航班。

对航班信息进行调整。

(10)统计售票。

对售票情况进行统计。

(11)取票。

用户完成取票功能。

(12)付款。

用户对订票进行网上付款。

2.2.4系统的数据流图

图2:

飞机订票系统的DFD图

三、项目设计模型

3.1.系统UML建模设计

3.1.1.UML简介

UML是一种功能强大的、面向对象的可视化系统分析的建模语言,它采用一整套成熟的建模技术,广泛地适用于各个应用领域。

它的各个模型可以帮助开发人员更好地理解业务流程,建立更可靠、更完善的系统模型。

从而使用户和开发人员对问题的描述达到相同的理解,以减少语义差异,保障分析的正确性.

3.1.2.系统的用例分析

该飞机订票系统的用况图如下:

图3:

飞机订票系统的用况图

从用例图中我们可以看出管理员、旅行社和旅客之间对本系统所具有的用例。

管理员所包含的用例有:

(1)登录系统:

管理员可以通过登录该系统进行各项功能的操作

(2)订票:

帮助用户查询订购机票等。

(3)退票:

帮助用户退订机票等。

(4)改签:

帮助用户改签机票等。

(5)增加航班:

对航班的添加等。

(6)调整航班:

对航班信息的修改等。

(7)取消航班:

取消不能正常起飞的航班等。

(8)统计售票信息:

统计一个时间段内的售票信息等。

旅客所包含的用例有:

(1)登录系统:

管理员可以通过登录该系统进行各项功能的操作

(2)订票:

旅客查询订购机票等。

(3)退票:

旅客退订机票等。

(4)改签:

旅客改签机票等。

(5)付款:

旅客对订购的机票进行付款等。

(6)取票:

旅客取走自己订购的机票等。

旅行社所包含的用例有:

(1)登录系统:

管理员可以通过登录该系统进行各项功能的操作

(2)订票:

旅行社查询订购机票等。

(3)退票:

旅行社退订机票等。

(4)改签:

旅行社改签机票等。

(5)付款:

旅行社对订购的机票进行付款等。

(6)取票:

旅行社取走自己订购的机票等。

3.1.3.系统的顺序图

顺序图是显示对象之间交互的图,这些对象是按时间顺序排列的。

该飞机订票系统主要含有以下几个重要的顺序图,其他对象的顺序图和这些也类似。

本系统主要的顺序图有:

1、登录系统顺序图

图4:

飞机订票系统登录顺序图

【顺序图说明】

(1)输入登录用户账号和密码:

登录系统。

(2)验证登录用户账号和密码:

对用户的登录信息进行验证,检查是否是笨系统的合法用户,并区分用户的权限。

(3)登录信息有效:

根据用户的不同权限进行不同的页面跳转。

(4)退出系统:

用户使用完系统后退出系统。

登录系统时,系统自动区分不同用户的不用权限,用户以有效的身份登录后,可以在自己的权限范围内操作系统。

2、订票顺序图

图5:

飞机订票系统订票顺序图

【顺序图说明】

(1)查询:

查询某个航班的信息。

(2)订购:

检查订购信息无误后进行确认订购。

(3)付款:

为订票进行付款。

(4)取票:

取走自己在系统上定的票。

(5)退出:

退出系统。

订票时,首先查询所定的票是否存在以及是否有余票。

如果有余票,检验订票信息,并订购、付款以及取票。

3、退票顺序图

图6:

飞机订票系统退票顺序图

【顺序图说明】

(1)查询:

查询某个已订票的信息。

(2)退订:

检查退订信息无误后进行确认退票。

(3)退出:

退出系统。

退票时,首先查询自己的订票信息,确认退票信息后确认退订即可。

4、改签顺序图

 

图7:

飞机订票系统改签顺序图

【顺序图说明】

(1)查询:

查询某个已订票的信息。

(2)删除已订票:

检查改签信息无误后退订已订票。

(3)查询要改签的余票:

有余票才可以改签。

(4)改签:

改签机票,将新改签的机票存入订票表中。

(5)退出:

退出系统。

改签时,首先查询自己的订票信息,首先查询要改签的机票是否有此航班并且有余票,然后退订自己已订购的机票,再订购自己想改签成的机票即可。

5、添加航班顺序图

图8:

飞机订票系统添加航班顺序图

【顺序图说明】

(1)添加航班:

查询是否已存在此航班的信息,如果没有就添加航班。

(2)退出:

退出系统。

添加航班时,首先查询是否已存在此航班的信息,如果没有就添加航班,有就提示添加有误。

6、取消航班顺序图

图9:

飞机订票系统取消航班顺序图

【顺序图说明】

(1)查询:

查询是否存在要取消的航班信息。

(2)取消航班:

取消航班。

(3)退出:

退出系统。

取消航班时,首先查询是否存在要取消的航班信息,如果不存在,则提示取消有误;如果存在,则确认取消此航班。

7、调整航班顺序图

图10:

飞机订票系统调整航班顺序图

【顺序图说明】

(1)查询要调整的航班:

查询要调整的航班是否存在。

(2)调整航班:

输入要调整的信息,如果调整信息正确,则调整成功。

(3)退出:

退出系统。

调整航班时,首先:

查询要调整的航班是否存在,如果存在,则输入要调整的信息,如果调整信息正确,则调整成功。

退出系统。

3.1.4.系统的状态图

飞机订票系统的机票状态图如图7所示。

【状态图说明】

机票在未出售时为系统的剩余机票,可以被订购。

在有剩余机票的前提下,如果机票被订购以后,系统中的相应的机票就应该减少。

同时,被订购的机票可以在规定的时间之前被退订或者改签。

超出退订或者改签时间的不能被退订或者改签。

当用户退订机票时,机票的剩余张数应该增加。

当用户改签机票时,被改签的机票的张数应该增加,改签后的机票应该减少。

添加一个航班,系统中就会产生此航班的机票信息。

图11:

飞机订票系统的机票状态图

3.1.5.系统的活动图

活动图描述的是某流程中的任务的执行,活动图描述活动是如何协同工作的,当一个操作必须完成一系列事情,而又无法确定以什么样的顺序来完成这些事情时,活动图可以更清晰地描述这些事情。

在本飞机订票系统中,我们主要描述了飞机订票系统的订票、退票、改签、增加航班、调整航班、取消航班的活动图。

1.订票活动图

【订票活动图说明】

订票时,首先登陆系统,系统验证用户登录信息的有效性。

用户查询所要定的票是否存在以及是否有余票。

如果有余票,输入自己的信息(如:

姓名、身份证号等信息),检验订票信息是否正确。

如果正确就确定订票,并记录取票,及时取票。

如果不正确,就核对订票信息,进行改正,直到正确为止。

图12:

飞机订票系统订票活动图

2、退票活动图

【退票活动图说明】

退票时,首先登陆系统,系统验证用户登录信息的有效性。

用户查询所要退订的票是否存在。

如果存在,检验退票信息是否正确。

如果正确就确定退票。

如果不正确,就核对退票信息,进行改正,直到正确为止。

图13:

飞机订票系统的退票活动图

3、改签活动图

【改签活动图说明】

改签时,用户首先登陆系统,系统验证用户登录信息的有效性。

用户查询所要改签的票是否存在。

如果存在,检验退票信息是否正确。

如果正确就进行改签。

如果不正确,就核对改签信息,进行改正,直到正确为止。

然后查询要改签的机票是否有余票,如果有余票就确认改签。

图14:

飞机订票系统的改签活动图

4、添加航班活动图

【添加航班活动图说明】

添加航班时,用户首先登陆系统,系统验证用户登录信息的有效性(必须是管理员身份)。

管理员查询要添加的航班是否存在。

如果不存在,检验添加航班信息是否正确。

如果正确就添加航班。

如果不正确,就核对添加航班信息,进行改正,直到正确为止。

图15:

飞机订票系统的添加航班活动图

5、取消航班活动图

【取消航班活动图说明】

取消航班时,用户首先登陆系统,系统验证用户登录信息的有效性(必须是管理员身份)。

管理员查询要取消的航班是否存在。

如果存在,检验取消航班信息是否正确。

如果正确就取消航班。

如果不正确,就核对取消航班信息,进行改正,直到正确为止。

图16:

飞机订票系统的取消航班活动图

6、调整航班活动图

【调整航班活动图说明】

调整航班时,用户首先登陆系统,系统验证用户登录信息的有效性(必须是管理员身份)。

管理员查询要调整的航班是否存在。

如果存在,检验调整航班信息是否正确。

如果正确就调整航班。

如果不正确,就核对调整航班信息,进行改正,直到正确为止。

图17:

飞机订票系统的调整航班活动图

3.1.6.系统的类图

【类图说明】

(1)login类是用户登录的类,它的属性有用户名、密码、权限、编号,操作有登录。

(2)admin类是管理员类,他没有属性,操作主要是订购机票、退订机票、改签机票、添加航班、取消航班、调整航班等等。

(3)users类是用户类,包括用户的姓名、身份证号等属性,同样具有订购机票、退订机票、改签机票等操作。

(4)ticket类是具体机票的类,属性包括航班类、时间、航班号、始发地、目的地、起飞时间、抵达时间、舱位、余票数、票价等属性。

图18:

飞机订票系统的类图及关系

3.2.系统数据库建模

考虑到系统的推广性,本系统采用SQLSERVER2005作为数据库。

并且采用PowerDesigner进行数据建模,从而自动生成sql脚本。

3.2.1.数据库概念设计

1、数据库表设计

(1)登录用户表login_users:

用户名,密码,用户编号,分组。

(2)客户表users:

姓名,电话,地址,身份证号,性别,客户编号。

(3)售票表sale_ticket:

时间,航班号,舱位,座号,身份证号。

(4)航班表flight:

航班类,时间,航班号,所属公司,始发地,目的地,舱位,起飞时间,抵达时间,剩余票数,票价。

(5)订票表book_ticket:

时间,航班号,舱位,座号,身份证号。

2、飞机订票系统个实体之间的E-R图

图12:

飞机订票系统各实体之间的ER图

3、基于powerdesigner的CDM数据库模型

(1)数据库概念数据模型CDM对象如下图,该图显示了各实体的属性及各实体之间的关系。

图13:

飞机订票系统数据库关系图

3.2.2.数据库物理设计

由概念模型生成物理模型的的数据库脚本文件为图书管理.sql文件,代码如下:

USE[aircraf_booking_system]

GO

/******对象:

Table[dbo].[flight]脚本日期:

10/30/201217:

28:

45******/

SETANSI_NULLSON

GO

SETQUOTED_IDENTIFIERON

GO

SETANSI_PADDINGON

GO

CREATETABLE[dbo].[flight](

[航班类][varchar](10)NULL,

[时间][datetime]NULL,

[航班号][varchar](10)NOTNULL,

[所属公司][varchar](10)NULL,

[始发地][varchar](10)NOTNULL,

[目的地][varchar](10)NOTNULL,

[舱位][varchar](10)NULL,

[起飞时间][varchar](10)NOTNULL,

[抵达时间][varchar](10)NOTNULL,

[剩余票数][int]NOTNULL,

[票价][float]NULL,

CONSTRAINT[PK_flight]PRIMARYKEYCLUSTERED

[航班号]ASC

)WITH(PAD_INDEX=OFF,STATISTICS_NORECOMPUTE=OFF,IGNORE_DUP_KEY=OFF,ALLOW_ROW_LOCKS=ON,ALLOW_PAGE_LOCKS=ON)ON[PRIMARY]

)ON[PRIMARY]

GO

SETANSI_PADDINGOFF

GO

/******对象:

Table[dbo].[login_users]脚本日期:

10/30/201217:

28:

46******/

SETANSI_NULLSON

GO

SETQUOTED_IDENTIFIERON

GO

SETANSI_PADDINGON

GO

CREATETABLE[dbo].[login_users](

[用户名][varchar](50)NOTNULL,

[密码][varchar](50)NOTNULL,

[用户编号][varchar](10)NOTNULL,

[分组][varchar](10)NOTNULL,

CONSTRAINT[PK_users]PRIMARYKEYCLUSTERED

[用户编号]ASC

)WITH(PAD_INDEX=OFF,STATISTICS_NORECOMPUTE=OFF,IGNORE_DUP_KEY=OFF,ALLOW_ROW_LOCKS=ON,ALLOW_PAGE_LOCKS=ON)ON[PRIMARY]

)ON[PRIMARY]

GO

SETANSI_PADDINGOFF

GO

/******对象:

Table[dbo].[sale_ticket]脚本日期:

10/30/201217:

28:

48******/

SETANSI_NULLSON

GO

SETQUOTED_IDENTIFIERON

GO

SETANSI_PADDINGON

GO

CREATETABLE[dbo].[sale_ticket](

[时间][datetime]NOTNULL,

[航班号][varchar](10)NOTNULL,

[舱位][varchar](10)NULL,

[座号][int]NOTNULL,

[身份证号][varchar](50)NOTNULL,

CONSTRAINT[PK_sale_ticket]PRIMARYKEYCLUSTERED

[航班号]ASC,

[身份证号]ASC

)WITH(PAD_INDEX=OFF,STATISTICS_NORECOMPUTE=OFF,IGNORE_DUP_KEY=OFF,ALLOW_ROW_LOCKS=ON,ALLOW_PAGE_LOCKS=ON)ON[PRIMARY]

)ON[PRIMARY]

GO

SETANSI_PADDINGOFF

GO

/******对象:

Table[dbo].[book_ticket]脚本日期:

10/30/201217:

28:

40******/

SETANSI_NULLSON

GO

SETQUOTED_IDENTIFIERON

GO

SETANSI_PADDINGON

GO

CREATETABLE[dbo].[book_ticket](

[时间][datetime]NOTNULL,

[航班号][varchar](10)NOTNULL,

[舱位][varchar](10)NULL,

[座号][int]NOTNULL,

[身份证号][varchar](50)NOTNULL,

CONSTRAINT[PK_book_ticket]PRIMARYKEYCLUSTERED

[航班号]ASC,

[身份证号]ASC

)WITH(PAD_INDEX=OFF,STATISTICS_NORECOMPUTE=OFF,IGNORE_DUP_KEY=OFF,ALLOW_ROW_LOCKS=ON,ALLOW_PAGE_LOCKS=ON)ON[PRIMARY]

)ON[PRIMARY]

GO

SETANSI_PADDINGOFF

GO

/******对象:

Table[dbo].[users]脚本日期:

10/30/201217:

28:

51******/

SETANSI_NULLSON

GO

SETQUOTED_IDENTIFIERON

GO

SETANSI_PADDINGON

GO

CREATETABLE[dbo].[users](

[姓名][varchar](10)NOTNULL,

[电话][varchar](11)NOTNULL,

[地址][varchar](50)NULL,

[身份证号][varchar](50)NOTNULL,

[性别][char]

(2)NULL,

[用户编号][varchar](10)NOTNULL,

CONSTRAINT[PK_users_1]PRIMARYKEYCLUSTERED

[用户编号]ASC

)WITH(PAD_INDEX=OFF,STATISTICS_NORECOMPUTE=OFF,IGNORE_DUP_KEY=OFF,ALLOW_ROW_LOCKS=ON,ALLOW_PAGE_LOCKS=ON)ON[PRIMARY]

)ON[PRIMARY]

GO

SETANSI_PADDINGOFF

GO

/******对象:

ForeignKey[FK_book_ticket_flight]脚本日期:

10/30/201217:

28:

41******/

ALTERTABLE[dbo].[book_ticket]WITHCHECKADDCONSTRAINT[FK_book_ticket_flight]FOREIGNKEY([航班号])

REFERENCES[dbo].[flight]([航班号])

GO

ALTERTABLE[dbo].[book_ticket]CHECKCONSTRAINT[FK_book_ticket_flight]

GO

/******对象:

ForeignKey[FK_book_ticket_users]脚本日期:

10/30/201217:

28:

41******/

ALTERTABLE[dbo].[book_ticket]WITHCHECKADDCONSTRAINT[FK_book_ticket_users]FOREIGNKEY([身份证号])

REFERENCES[dbo].[users]([身份证号])

GO

ALTERTABLE[dbo].[book_ticket]CHECKCONSTRAINT[FK_book_ticket_users]

GO

/******对象:

ForeignKey[FK_sale_ticket_flight]脚本日期:

10/30/201217:

28:

49******/

ALTERTABLE[dbo].[sale_ticket]WITHCHECKADDCONSTRAINT[FK_sale_ticket_flight]FOREIGNKEY([航班号])

REFERENCES[dbo].[flight]([航班号])

GO

ALTERTABLE[dbo].[sale_ticket]CHECKCONSTRAINT[FK_sale_ticket_flight]

GO

/******对象:

ForeignKey[FK_sale_ticket_users]脚本日期:

10/30/201217:

28:

4

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 初中教育 > 语文

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2