机票预订系统 课程设计 数据库文档格式.docx

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

机票预订系统 课程设计 数据库文档格式.docx

《机票预订系统 课程设计 数据库文档格式.docx》由会员分享,可在线阅读,更多相关《机票预订系统 课程设计 数据库文档格式.docx(27页珍藏版)》请在冰点文库上搜索。

机票预订系统 课程设计 数据库文档格式.docx

(1)航班信息管理功能

主要实现航班的一些基本信息,航班编号、票价、起飞地、目的地、起飞时间的添加、修改、删除和查询。

(2)航班座位信息管理功能

主要实现航班座位,也就是机票的一些基本信息,航班编号、座位号、座位信息、机票类型的添加、修改、删除和查询。

(3)旅客信息管理功能

此模块的主要实现旅客一些基本信息,姓名、性别、联系方式、证件号码、的查询功能。

(4)取票信息管理功能

此模块用于取票信息的管理,包括对航班基本信息,航班编号等,旅客基本信息,旅客姓名、座位号、取票时间的查询。

(5)退票信息管理功能

此模块用于退票信息的管理,包括对订单号、旅客姓名、联系方式、证件号码的查询。

2.3数据词典

经分析之后,本系统要用到五个基本表:

航班信息表,航班座位情况表,旅客订票信息表,取票和账单信息表,退票信息表。

数据结构定义如表:

数据结构名

含义说明

组成

航班信息表

定义了航班

的有关信息

航班号,起飞地,目的地,起飞时间,票价

航班座位情况表

定义了航班座位有关信息

航班号,座位号,座位信息,机票类型

旅客订票信息表

定义了旅客有关信息

旅客姓名,身份证号,性别,电话号

取票和账单信息表

定义了取票通知相关有关信息

旅客姓名,取票时间,航班号,座位号,机票类型

退票信息表

定义了退票旅客的有关信息

旅客姓名,身份证号,订单号,电话号

机票预订系统的主要数据字典如下:

(1)航班信息

数据流来源:

航班管理

数据流去向:

航班安排

数据项组成:

(2)航班座位情况

数据流来源:

航班管理和订票情况

数据流去向:

旅客座位

数据项组成:

(3)旅客信息

确定旅客信息后管理人员输入系统

安排顾客的航班

(4)取票通知和账单信息

打印取票通知和账单

核对订票信息

(5)退票信息

旅客退票申请

订票信息申请退票

3概念结构设计

3.1概念结构设计的方法与步骤

1.概念结构设计的方法

概念设计阶段我采用自底向上的方法,即自顶向下的进行需求分析,然后再自底向上的进行概念结构设计。

对已经细化到无法再分的阶段逐步集成在一起,最终合成一个全局概念模式。

2.概念结构设计的步骤

第一步是进行局部视图的设计:

由于高层的数据流图只能反映系统的概貌,而中层流图能较好的反映系统中各局部应用的子系统组成。

因此我们先逐一的设计分E-R图。

第二步是进行视图的集成:

各子系统的E-R图设计好之后,下一步就是要将所有的分E-R图合成一个系统的总E-R图,一般有两个方式,多个分E-R图一次集成,另一种是一次集成两个分E-R图。

我想采用一次集成两个分E-R图的方式。

3.2局部E-R图设计

根据需求分析抽象出信息结构,可得该系统的E-R图。

(1)航班信息E-R图,如图3.1所示。

图3.1航班信息E-R图

 

(2)航班座位信息E-R图,如图3.2所示。

图3.2机票信息E-R图

(3)旅客E-R图,如图3.3所示。

图3.3旅客E-R图

(4)取票通知E-R图,如图3.4所示。

图3.4取票通知E-R图

(5)退票信息E-R图,如图3.5所示。

图3.5退票信息E-R图

3.3总体概念E-R图结构

经过逐步细化再进行每两个一集成初步形成一个E-R图,最后得到图3.6总体概念结构E-R图。

图3.6系统总体结构E-R图

4逻辑结构设计

4.1逻辑结构设计

(1)E-R图向关系模型的转换

将图3.6总体概念结构E-R图转化成关系模型。

退票信息(订单号,旅客姓名,联系方式,证件号码)

旅客(旅客姓名,证件号码,联系方式,性别)

航班信息表(航班号,票价,起飞地,目的地,起飞时间)

取票通知单(旅客姓名,取票时间,证件号码,航班号,座位号)

机票信息表(座位号,航班号,座位信息,机票类型)

(2)数据模型的优化

将转化的关系模式进行优化,最终达到第三范式。

①确定数据依赖

退票信息(订单号,旅客姓名,联系方式,证件号码)根据这个关系写出数据依赖

订单号→旅客姓名,订单号→联系方式,订单号→证件号码

旅客姓名→证件号码,旅客姓名→联系方式,旅客姓名→性别

航班信息表(航班号,票价,起飞地,目的地,起飞时间)

航班号→起飞地,航班号→票价,航班号→目的地,航班号→起飞时间

取票通知单(旅客姓名,取票时间,航班号,座位号)

旅客姓名→取票时间,旅客姓名→航班号,旅客姓名→座位号,

(座位号,航班号)→舱位类型,(座位号,航班号,座位信息)→机票类型

②对各关系模式间数据依赖进行极小化处理,消除冗余

旅客姓名→性别,旅客姓名→取票时间,旅客姓名→航班号,旅客姓名→座位号,旅客姓名→机票类型

航班号→起飞地,航班号→目的地,航班号→起飞时间

(座位号,航班号)→座位信息

③看这些模式是否符合要求,确定是否要对某些模式进行合并或者分解

最终分解成第三范式:

(订单号,联系方式,证件号码)(订单号,旅客姓名)(旅客姓名,取票时间,性别,机票类型)(旅客姓名,航班号)(旅客姓名,座位号)(航班号,座位号,票价)(航班号,起飞地,目的地,起飞时间)

(3)数据库的结构

根据总体结构图设计机票预定系统基本表结构,其相应标的定义如下:

表4-1航班信息系统的结构

字段名

数据类型

长度

约束

描述

flightnumber

decimal

主键

航班号

takeoffplace

varchar

50

不为空

起飞地

destination

目的地

flighttime

time

起飞时间

price

int

票价

表4-2航班座位信息表

seatnumber

座位号

seatmessage

座位信息

flighttickettype

机票类型

表4-3旅客信息系统的结构

passagername

旅客姓名

id

身份证号

telephonenumber

联系方式

sex

性别

表4-4取票和账单信息系统的结构

passagername

gettickettime

取票时间

表4-5退票信息系统的结构

orderform

订单号

证件号码

4.2数据库表的建立

根据数据库的基本表结构分别建立5个基本表:

(1)创建航班信息表

(2)创建航班座位信息表

(3)创建旅客信息表

(4)创建取票和账单信息表

(5)创建退票信息表

5物理结构设计

数据库物理设计是指设计出数据库的物理数据模型,它是数据库在物理设备上的具体实现,即数据库服务器物理空间上的表空间、表、字段、索引、视图、存储过程、触发器以及相应的数字字典的设计。

经过数据库的需求分析和概念模型设计,得到数据库的逻辑结构,现在可以设计好的逻辑结构在SQLserver中建立数据库及数据库的数据表。

5.1表的建立与数据载入

需要明确数据库需要建立几张表,以及每个表中所要包括的属性。

在建立表的过程中。

要对每个表进行字段属性的设置。

(至少包括5张表,每个表都有主键;

根据实际情况,建立视图)

在机票预订系统中,主要建立了5个表,分别是:

5.2视图建立

视图是查看数据库表中数据的一种方式。

视视图提供了存储预定义的查询语句作为数据库中的对象以备以后使用的能力。

视图是一种逻辑对象,是一种虚拟表。

在机票预订系统中,我建立了两个视图。

分别是航班和座位视图和旅客和取票信息视图。

他们分别通过飞机编号也就是flightnumber项和旅客信息也就是passagenumber项联系起来。

5.3索引建立

索引是一个单独的、物理的数据库结构,它是某个表中一列或若干列值的集合和相应的指向表中物理标识这些值的数据页的逻辑指针清单。

索引依赖于表建立,它提供了数据库中编排表中数据的内部方法。

在机票预订系统中,我建立了三个索引,分别是在航班信息表中建立了flightnumber索引,在旅客信息表中建立passagename索引,在航班座位信息表中建立了seatnumber索引。

索引类型为唯一性的非聚集索引。

5.4存储过程

我创建了三个存储过程,输出三个表的全部信息。

分别是航班信息表、航班座位信息表、旅客信息表。

命令为:

CREATEPROCaaa

AS

SELECT*

FROM航班信息

CREATEPROCbbb

FROM航班座位信息

CREATEPROCccc

FROM旅客信息

5.5触发器

触发器是一种实施复杂的完整性约束的特殊存储过程,它在SQLserver进行某个特定的表修改时由SQLServer自动执行。

触发器一般用于加强数据库的某些使用规则。

在机票管理系统中,我建立了一个DDL触发器,用于保护当前SQLServer服务器里的所有数据库不被删除。

具体代码为:

CREATETRIGGERnotdelete

ONallserver

FORDROP_DATABASE

PRINT’不能删除数据库’

ROLLBACK

GO

另外分别在航班信息表、航班座位信息表、旅客信息表、取票通知和账单这四个表中建立了四个触发器,对于表中的添加和更改数据,提示错误信息。

代码为:

CREATETRIGGERaONhangbanxinxi

FORINSERT,UPDATE

ASRAISERROR('

不能添加和更新数据'

16,1)

ROLLBACKTRANSACTION

CREATETRIGGERbONhangbanzuoweixinxi

CREATETRIGGERcONlvkexinxi

CREATETRIGGERdONqupiaotongzhihezhangdan

5.6创建登陆账户和添加数据库用户

在实训中,我利用SQL创建了一个“login1”的登陆账号。

密码为123456。

在一个数据库中,用户账号唯一标识一个用户,用户对数据库的访问权限以及对数据库对象的所有关系都是通过用户账号来控制的。

在机票预订系统中,我创建了一个用户名为user1的用户。

6数据流图及程序结构框图

6.1功能模块图

根据所需的功能,可以设计出系统的总体功能模块,如图6.1所示。

图6.1机票预订系统功能模块示意图

取票信息管理模块的细化功能模块如图6.2所示。

图6.2取票信息管理模块

退票信息管理模块的细化功能模块如图6.3所示。

图6.3退票信息管理模块

6.2数据流图

图6.40层数据流图

图6.51层数据流图

7界面设计与功能测试

7.1登录界面及代码

代码如下:

PrivateDeclareFunctionGetUserNameLib"

advapi32.dll"

Alias"

GetUserNameA"

(ByVallpbufferAsString,nSizeAsLong)AsLong

PublicOKAsBoolean

PrivateSubForm_Load()

DimsBufferAsString

DimlSizeAsLong

sBuffer=Space$(255)

lSize=Len(sBuffer)

CallGetUserName(sBuffer,lSize)

IflSize>

0Then

txtUserName.Text=Left$(sBuffer,lSize)

Else

txtUserName.Text=vbNullString

EndIf

EndSub

PrivateSubcmdCancel_Click()

OK=False

Me.Hide

PrivateSubcmdOK_Click()

'

'

ToDo:

createtestforcorrectpassword

checkforcorrectpassword

IftxtPassword.Text="

"

Then

OK=True

MsgBox"

InvalidPassword,tryagain!

,"

Login"

txtPassword.SetFocus

txtPassword.SelStart=0

txtPassword.SelLength=Len(txtPassword.Text)

7.2进入系统界面

PrivateSubMDIForm_Load()

Me.Left=GetSetting(App.Title,"

Settings"

"

MainLeft"

1000)

Me.Top=GetSetting(App.Title,"

MainTop"

Me.Width=GetSetting(App.Title,"

MainWidth"

6500)

Me.Height=GetSetting(App.Title,"

MainHeight"

EndSub

PrivateSubMDIForm_Unload(CancelAsInteger)

IfMe.WindowState<

>

vbMinimizedThen

SaveSettingApp.Title,"

Me.Left

Me.Top

Me.Width

Me.Height

PrivateSubmenuAirline_Click()

frmAirline.txtSQL="

select*fromairlineInfo"

frmAirline.Show0

PrivateSubmenuBookticket_Click()

frmTicket.txtSQL="

select*fromticketInfo"

frmTicket.Show0

PrivateSubmenuCarbin_Click()

frmService.txtSQL="

select*fromserviceInfo"

frmService.Show0

PrivateSubmenuCtype_Click()

frmcType.txtSQL="

select*fromcustomerType"

frmcType.Show0

PrivateSubmenuCustomer_Click()

frmCustomer.txtSQL="

select*fromcustomerInfo"

frmCustomer.Show0

PrivateSubmenuPlane_Click()

frmPlane.txtSQL="

select*fromplaneInfo"

frmPlane.Show0

PrivateSubsearchcustom_Click()

frmCustomer.Show1

7.3订票过程

ShowTitle

ShowData

PrivateSubForm_Resize()

IfMe.WindowState<

vbMinimizedAndfMainForm.WindowState<

边界处理

IfMe.ScaleHeight<

10*lblTitle.HeightThen

ExitSub

IfMe.ScaleWidth<

lblTitle.Width+lblTitle.Width/2Then

控制控件的位置

lblTitle.Top=lblTitle.Height

lblTitle.Left=(Me.Width-lblTitle.Width)/2

msgList.Top=lblTitle.Top+lblTitle.Height+lblTitle.Height/2

msgList.Width=Me.ScaleWidth-200

msgList.Left=Me.ScaleLeft+100

msgList.Height=Me.ScaleHei

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

当前位置:首页 > 人文社科 > 哲学历史

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

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