数据库课程设计 机票预定系统Word文档下载推荐.docx

上传人:b****4 文档编号:16375788 上传时间:2022-11-23 格式:DOCX 页数:17 大小:170.74KB
下载 相关 举报
数据库课程设计 机票预定系统Word文档下载推荐.docx_第1页
第1页 / 共17页
数据库课程设计 机票预定系统Word文档下载推荐.docx_第2页
第2页 / 共17页
数据库课程设计 机票预定系统Word文档下载推荐.docx_第3页
第3页 / 共17页
数据库课程设计 机票预定系统Word文档下载推荐.docx_第4页
第4页 / 共17页
数据库课程设计 机票预定系统Word文档下载推荐.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

数据库课程设计 机票预定系统Word文档下载推荐.docx

《数据库课程设计 机票预定系统Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《数据库课程设计 机票预定系统Word文档下载推荐.docx(17页珍藏版)》请在冰豆网上搜索。

数据库课程设计 机票预定系统Word文档下载推荐.docx

(5)退票信息管理功能

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

2、2功能模块图

(1)根据上述的功能,可以设计出系统的总体功能模块,如图2、1所示。

图2、1机票预订系统功能模块示意图

(2)取票信息管理模块的细化功能模块如图2、2所示。

图2、2取票信息管理模块

(3)退票信息管理模块的细化功能模块如图2、3所示。

图2、3退票信息管理模块

3系统数据库设计

3.1概念结构设计

根据需求分析抽象出信息结构,可得该系统的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图

根据分E-R图与需求分析,可得到总E-R图,如图3、6所示。

n

1

m

退票信息

航班信息

旅客

购买

包含

退票

取票通知

机票信息

姓名

性别

证件号码码

联系方式

起飞时间

航班编号

目的地

起飞地

票价

座位号

机票类型

座位信息码

旅客姓名

取票时间

订单号

证件号码

图3、6系统总体结构E-R图

3.2逻辑结构设计

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

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

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

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

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

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

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

(2)数据模型的优化

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

①确定数据依赖

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

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

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

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

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

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

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

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

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

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

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

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

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

最终分解成第三范式:

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

(3)数据库的结构

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

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

字段名

数据类型

长度

约束

描述

passagername

varchar

50

主键

id

decimal

不为空

telephonenumber

sex

表3-2退票信息系统的结构

orderform

表3-3航班信息系统的结构

flightnumber

航班号

takeoffplace

destination

flighttime

time

price

int

flighttype

航班型号

表3-4取票通知单系统的结构

passagername

gettickettime

seatnumber

flighttickettype

表3-5航班座位信息表

seatmessage

座位信息

3、3数据库表的建立

根据数据库的基本表结构分别建立六个基本表,这里给出具体的SQL语句如下。

(1)创建旅客信息表passager

createtablepassager

(passagernamevarchar(50)primarykey,

iddecimalnotnull,

telephonenumberdecimalnotnull,

sexvarchar(50)notnull

);

(2)创建退票信息表cancellations_message

createtablecancellations_message

(orderformdecimalprimarykey,

passagernamevarchar(50)notnull,

telephonenumberdecimalnotnull,

idvarchar(50)notnull

(3)创建航班信息表flight_message

createtableflight_message

(flightnumberdecimalprimarykey,

takeoffplacevarchar(50)notnull,

destinationvarchar(50)notnull,

flighttimetimenotnull,

flighttypedecimalnotnull,

priceintnotnull

(4)创建取票通知表ticket_message

createtablegetticket_message

gettickettimetimenotnull,

flightnumberdecimalnotnull,

seatnumberdecimalnotnull,,

flighttickettypevarchar(50)notnull

(5)创建座位信息表flight_seat_message

createtableflight_seat_message

(seatnumberdecimalprimarykey,

seatmessagevarchar(50)notnull,

4数据库编程

4、1数据库的连接

创建函数ExecuteSQL()

PublicFunctionExecuteSQL(ByValSQL_

AsString,MsgStringAsString)_

AsADODB、Recordset

//此函数功能为执行SQL语句,返回记录集对象

DimcnnAsADODB、Connection

DimrstAsADODB、Recordset

DimsTokens()AsString

OnErrorGoToExecuteSQL_Error//错误处理

sTokens()=Split(SQL)

Setcnn=NewADODB、Connection

cnn、openCONN//打开与数据库的连接

IfInStr("

INSERT,DELETE,UPDATE"

_//插入记录

UCase$(sToken(0)))Then

Cnn、ExecuteSQL

MsgString=sTokens(0)&

_

"

查询成功"

Else

Setrst=NewADODB、Recordset

Rst、OpenTrim$(SQL),cnn,_

adOpenKeyset,_

adLockOptimistic

SetExecuteSQL=rst

MsgString="

查询到"

&

rst、RecordCount&

_"

条记录"

EndIf

ExecuteSQL_Exit//切断与数据库的连接

Setrst=Nothing

Setcnn=Nothing

ExitFunction

4、2系统功能模块设计

设计类clsPlane,包含两个类成员与三个类方法,类的两个成员定义如下。

PublictxtSQLAsString

DimmrcAsADODB、Recordset

类的ShowData方法在窗口加载的时候用来显示数据库中的相关记录,这里通过控件MSFlexGrid控件来实现。

具体代码如下。

PublicSubShowData(ByValmsgListAsMSFlexGrid)

DimjAsInteger

DimiAsInteger

Setmrc=ExecuteSQL(txtSQL,MsgText)

WithmsgList

、Row=1

DoWhileNotmrc、EOF

、Rows=、Rows+1

Fori=1Tomrc、Fields、Count

IfNotIsNull(Trim(mrc、Fields(i–1)))Then

SelectCasemrc、Fields(i–1)、Type

CaseadDBDate

、TextMatrix(、Rows–1,i0=Format(mrc、Fields(i–1)

&

"

"

yyyy-mm-dd"

CaseElse

、TextMatrix(、Rows–1,i0=mrc、Fields(i–1)&

EndSelect

EndIf

Nexti

Mrc、MoveNext

Loop

EndWith

Mrc、Close

EndSub

类的Save方法用于保存记录,以及在修改记录后对记录进行更新,并在更新前首先判断就是否具有相同的ID记录,方法的具体代码如下。

PublicSubSave(txtString()AsString)

DimintCountAsInteger

DimMsgTextAsString//添加判断就是否有相同的ID记录

IfgintPmod=1Then

TxtSQL="

select*fromflight_messagewhereflightnumber='

Trim(txtString(0))&

Setmrc=ExecuteSQL(txtSQL,MsgText)

Ifmrc、EOF=FalseThen

MsgBox"

已经存在此编号的记录!

vbOKOnly+vbExclamation,"

警告"

ExitSub

Mrc、Close

EndIf

//先删除已有记录

txtSQL="

deletefromflight_messagewhereflightnumber='

//再加入行记录

select*fromflight_message"

mrc、AddNew

ForintCount=0To7

Mrc、Fields(intCount)=txtString(intCount)

NextintCount

mrc、Update

mrc、Close

EndSub

Delete方法用于删除记录,代码比较简单,在此不作过多赘述。

5功能测试

5、1登陆界面

在已经完成了程序各个功能模块的创建,现在来运行整个系统。

运行程序,出现如图5、1所示的登录窗口。

图5、1登录窗口

5、2各功能模块的实现

输入用户名与密码后,进入系统。

选择“航线信息管理|航线信息”菜单,将显示所有航线信息,如图5、2所示。

图5、2航线信息列表

在航线信息列表中单击“查询”按钮,并设置查询内容,如图5、3所示。

图5、3查询航线信息窗体

航线查询结果如图5、4所示。

图5、4航线信息查询结果

在机票信息列表中单击“添加”按钮,出现如图5、5所示的窗体,输入订票信息。

图5、5添加订票信息

单击“保存”按钮,出现如图5、6所示的对话框提示订票成功。

图5、6订票提示信息

在机票信息列表中,单击“查询”按钮,出现如图5、7所示的窗体,输入查询内容,可以得到剩余机票信息。

图5、7机票信息查询窗体

查询结果如图5、8所示。

图5、8机票信息查询结果

6结束语

经过两周的努力,本次课程设计终于完成了。

通过这次课程设计,使我对数据库这门课程有了更深入的理解,数据库就是一门实践性较强的课程。

通过这次课程设计,我明白了理论与实际应用相结合的重要性,掌握并熟练运用SQL语句以及VB的应用,提高了我的综合运用所学知识的能力。

在本次课程设计与过程中,由于时间不就是很长,再加上要求独立完成,系统需求分析上可能不就是很全面,程序中还存在很多缺,希望老师能给予批评与指导。

经过这次课程设计,我的知识得到了很大提高,经验也更加丰富。

希望能在今后的不断的学习中与努力中,把程序做得更好。

最后,感谢指导老师所给我的帮助。

参考文献

[1]陈艳峰,高文姬,邵蕴秋.《VisualBasic数据库项目案例导航》.北京:

清华大学出版社,2004

[2]尹建民,张海卿著.《VisualBasic、NET入门与进阶》.北京:

[3]郑阿奇,顾韵华,黄群著.《VisualBasic实用教程》.北京:

电子工业出版社,2004

[4]王珊,陈红.《数据库系统原理教程》.清华大学出版社,1998,7

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

当前位置:首页 > 工作范文 > 行政公文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1