数据库课程设计酒店管理信息系统.docx
《数据库课程设计酒店管理信息系统.docx》由会员分享,可在线阅读,更多相关《数据库课程设计酒店管理信息系统.docx(18页珍藏版)》请在冰豆网上搜索。
![数据库课程设计酒店管理信息系统.docx](https://file1.bdocx.com/fileroot1/2023-6/5/3f910cdd-a378-492b-b7f8-49615c78c14a/3f910cdd-a378-492b-b7f8-49615c78c14a1.gif)
数据库课程设计酒店管理信息系统
数据库课程设计酒店管理信息系统
课题酒店治理系统
班级0904
学号0942001458134
姓名罗浩
成绩
2010年10月30日
酒店治理信息系统
⒈编写目的
酒店在正常的运营中需要对客房资源、顾客信息、结算信息进行治理,利用宾馆治理信息系统及时了解各个环节中信息的变更,有利于提高治理效率。
⒉系统功能分析
系统开发的总体任务是实现宾馆各种信息的系统化、规范化和自动化。
要紧完成功能:
●有关客房标准的制定、标准信息的输入,包括标准编号、标准名称、房间面积、床位数量、住房单价、是否有空调、电视机、以及单独卫生间等。
●客房标准信息的修改、查询等。
●客房差不多信息的输入,包括客房编号、客房类型、客房位置、客房单价、备注等。
●客房差不多信息的查询、修改,包括客房编号、客房类型、客房位置、客房单价、备注等。
●剩余客房信息的查询等。
●订房信息的输入,包括客房编号、客房种类、客房位置、客房单价、顾客姓名、顾客身份证号码、入住日期、折扣、备注信息等。
●订房信息的修改和查询,包括客房编号、客房种类、客房位置、客房单价、顾客姓名、顾客身份证号码、入住日期、折扣、备注信息等。
●结算信息的输入,包括客房编号、客房种类、位置、客房单价、顾客姓名、顾客身份证号码、入住日期、折扣、结算日期、备注信息等。
●结算信息的修改和查询,包括客房编号、客房种类、客房位置、客房单价、顾客姓名、顾客身份证号码、入住日期、折扣、结日期、备注信息等。
⒊系统功能模块设计
按结构化程序设计思想,分析得出如下系统功能模块图
图Ⅰ系统功能模块图
⒋数据库设计
数据库设计步骤:
●数据库需求分析
●数据库概念结构设计
●数据库逻辑结构设计
①数据库需求分析
分析调查有关宾馆治理信息需求的基础上得本系统所处理的数据流程
图Ⅱ宾馆治理信息系统数据流程图
针对一样宾馆治理信息系统的需求,通过对宾馆治理过程的内容和流程分析,设计如下面所示的数据项和数据结构:
●客房标准信息,包括的数据项有:
标准编号、标准名称、房间面积、床位数量、住房单价、是否有空调、电视、、单独卫生间等。
●客房信息,包括的数据项有:
客房编号、客房种类、客房位置、客房单价、备注等。
●订房信息,包括的数据项有:
订房编号、客房编号、客房种类、客房位置、客房备注信息、顾客姓名、顾客身份证号码、入住时刻、折扣、备注等。
●结算信息,包括的数据项有:
订房编号、客房编号、客房种类、客房位置、客房备注信息、顾客姓名、顾客身份证号码、入住时刻、折扣、结算时刻、备注等。
②数据库概念结构设计
本系统依照以上的设计规划出的实体有:
客房标准信息实体、客房信息实体、订房信息实体、结算信息实体。
各个实体具体的描述E-R图如下:
客房标准信息实体E-R图
客房信息实体E-R图
订房信息实体E-R图
结算信息实体E-R图
实体之间关系E-R图
③数据库逻辑结构设计
第一将宾馆治理信息系统的数据库概念结构转化为SQL2000数据库系统所支持的实际数据模型,即:
数据库的逻辑结构。
其各个表格的设计结果如下
列名
数据类型
可否为空
说明
Typeid
Varchar
NOTNULL
标准编号
Typename
Varchar
NOTNULL
标准名称
Area
Numeric
NULL
房间面积
Bednum
Numeric
NULL
床位数量
Haircondition
Varchar
NULL
是否有空调
Htelephone
Varchar
NULL
是否有
Htelevision
Varchar
NULL
是否有电视
Htoilet
Varchar
NULL
是否有单独卫生间
Price
Numeric
NULL
单价
Roomtype客房标准信息表
列名
数据类型
可否为空
说明
roomNO
Varchar
NOTNULL
客房编号
Roomtype
Varchar
NOTNULL
客房种类
Roomposition
Varchar
NULL
客房位置
Roomprice
Numeric
NULL
单价
Putup
Varchar
NOTNULL
是否被预定
Roommemo
Text
NULL
备注
Rooms客房信息表
列名
数据类型
可否为空
说 明
Bookno
Varchar
NOTNULL
订房编号
Customname
Varchar
NOTNULL
顾客姓名
CustomID
Varchar
NOTNULL
身份证号码
Roomno
Varchar
NOTNULL
客房编号
Indate
Datetime
NULL
入住日期
Discount
Numeric
NULL
折扣
Inmeno
Text
NULL
备注
Checkdate
Datetime
NULL
结算日期
Amount
Numeric
NULL
金额
Bookin订房信息表
⒌数据库结构的实现
利用SQL2000数据库系统中的查询分析实现数据库的逻辑结构,其表格如下:
创建系统用户表格user_Info
CREATETABLE[dbo].[user_Info1](
[user_ID][char](10)COLLATEChinese_PRC_CI_ASNOTNULL,
[user_PWD][char](10)COLLATEChinese_PRC_CI_ASNULL,
[user_Des][char](10)COLLATEChinese_PRC_CI_ASNULL
)ON[PRIMARY]
创建客房标准信息表格 roomtype
CREATETABLE[dbo].[roomtype](
[typeid][char](10)COLLATEChinese_PRC_CI_ASNOTNULL,
[typename][char](10)COLLATEChinese_PRC_CI_ASNOTNULL,
[area][numeric](5,0)NULL,
[bednum][numeric](2,0)NULL,
[haircondition][char]
(2)COLLATEChinese_PRC_CI_ASNULL,
[htelephone][char]
(2)COLLATEChinese_PRC_CI_ASNULL,
[htelevision][char]
(2)COLLATEChinese_PRC_CI_ASNULL,
[htoilet][char]
(2)COLLATEChinese_PRC_CI_ASNULL,
[price][numeric](10,2)NULL
)ON[PRIMARY]
创建客房信息表格 rooms
CREATETABLE[dbo].[rooms](
[roomNO][char](10)COLLATEChinese_PRC_CI_ASNOTNULL,
[roomtype][char](10)COLLATEChinese_PRC_CI_ASNOTNULL,
[roomposition][char](20)COLLATEChinese_PRC_CI_ASNULL,
[roomprice][numeric](10,2)NULL,
[putup][char]
(2)COLLATEChinese_PRC_CI_ASNOTNULL,
[roommemo][text]COLLATEChinese_PRC_CI_ASNULL
)ON[PRIMARY]TEXTIMAGE_ON[PRIMARY]
创建订房信息表bookin
CREATETABLE[dbo].[bookin](
[bookno][char](14)COLLATEChinese_PRC_CI_ASNOTNULL,
[customname][char](10)COLLATEChinese_PRC_CI_ASNOTNULL,
[customID][char](18)COLLATEChinese_PRC_CI_ASNOTNULL,
[roomno][char](10)COLLATEChinese_PRC_CI_ASNOTNULL,
[indate][datetime]NULL,
[discount][numeric](2,0)NULL,
[inmemo][text]COLLATEChinese_PRC_CI_ASNULL,
[checkdate][datetime]NULL,
[ammount][numeric](10,2)NULL
)ON[PRIMARY]TEXTIMAGE_ON[PRIMARY]
⒍宾馆治理信息系统具体程序实现
客房信息治理模块的创建
客房信息治理模块要紧实现如下功能:
·添加客房信息
·修改客房信息
·删除客房信息
·查询客房信息
具体实现代码如下:
PrivateSubFrom_Load()‘载入窗体时,自动添加客房信息种类
DimsSqlAsString
DimintCountAsInteger
DimMsgTextAsString
DimmrccAsADODB.Recordset
IfgintRmode=1Then‘判定是否处于添加状态
Me.Caption=me.Caption&“添加”
txtSQL=”selectDISTINCTtypenamefromroomtype”
Setmrc=ExecuteSQL(txtSQL,MsgText)
IfNotmrc.EOFThen
DoWhileNotmrc.EOF
cboItem(0).AddItemTrim(mrc.Fields(0))
mrc.MoveNext
Loop
cboItem(0).ListIndex=0‘显示记录内容
Else
MsgBox“请先进行客房标准设置!
”,vbOKOnly+vbExclamation,“警告”
cmdSave.Enabled=False
ExitSub
EndIf
mrc.Close
ElseIfgintRmode=2Then‘判定是否处于修改状态
Setmrcc=ExecuteSQL(txtSQL,MsgText)‘设置SQL语句显示当前选择记录
Ifmrcc.EOF=FalseThen
Withmrcc
txtItem(0)=.Fields(0)
ForintCount=1To2
IfNotIsNull(.Fields(intCount+1))Then‘判定内容是否为空
txtItem(intCount)=.Fields(intCount+1)
EndIf
NextintCount
txtItem(3)=.Fields(5)
txtSQL=”selectDISTINCTtypenamefromroomtype”
Setmrc=ExecuteSQL(txtSQL,MsgText)
IfNotmrc.EOFThen
DoWhileNotmrc.EOF
cboItem(0).AddItemTrim(mrc.Fields(0))
mrc.MoveNext
Loop
cboItem(0).ListIndex=0
Else
MsgBox“请先进行客房标准设置!
”,vbOKOnly+vbExclamation,“警告”
cmdSave.Enabled=False
ExitSub
EndIf
mrc.Close
EndWith
EndIf
mrcc.Close
Me.Caption=Me.Caption&“修改”
EndIf
mblChange=False
EndSub
PrivateSubcmdSave_Click()‘单击储存按钮触发事件
DimintCountAsInteger
DimsMegAsString
DimmrccAsADODB.Recordset
DimMsgtextAsString
ForintCount=0To3
IfTrim(TxtItem(intCount)&””)=””Then
SelectCaseintCount
Case0
sMeg=“客房编号”
Case1
sMeg=“客房位置”
EndSelect
sMeg=sMeg&“不能为空!
”
MsgBoxsMeg,vbOKOnly+vbExclamation,“警告”
txtItem(intCount).SetFocus
ExitSub
EndIf
NextintCount
IfgintRmode=1Then‘判定是否有重复记录
txtSQL=”select*fromroomswhereroomNO=‘”&Trim(txtItem(0))&”’”
Setmrc=ExecuteSQL(txtSQL,msgText)
Ifmrc.EOF=FalseThen
MsgBox“差不多存在此客房编号的记录!
”,vbOKOnly+vbExclamation,“警告”
txtItem(0).SetFocus
ExitSub
EndIf
mrc.Close
EndIf
IfgintRmode=2Then‘判定是否处于修改状态
txtSQL=”deletefromroomswhereroomNO=‘”&Trim(txtItem(0))&”’”
Setmrc=ExecuteSQL(txtSQL,MsgText)
EndIf
txtSQL=”select*fromrooms”‘再加入新记录
Setmrc=ExecuteSQL(txtSQL,MsgText)
mrc.AddNew‘为数据库对象添加记录
mrc.Fields(0)=Trim(txtItem(0))
mrc.Fields
(1)=Trim(txtItem(0))
ForintCount=1To2
IfTrim(txtItem(intCount)&””)=””Then
mrc.Fields(intCount+1)=Null
Else
mrc.Fields(intCount+1)=Trim(txtItem(intCount))
EndIf
NextintCount
mrc.Fields(4)=””
mrc.Fields(5)=Trim(txtItem(3))
mrc.Update
mrc.Close
IfgintRmode=1Then
ForintCount=0To3
txtItem(intCount)=””
NextintCount
mblChange=False
IfflagReditThen
UnloadfrmRoom
frmRoom.txtSQL=”select*fromrooms”‘重新显示数据
frmRoom.Show
EndIf
ElseIfgintRmode=2Then
UnloadMe
IfflagReditThen
UnloadfrmRoom
EndIf
frmRoom.txtSQL=”select*fromrooms”
frmRoom.Show
EndIf
EndSub
·修改客房信息
PrivateSubmenuModifyroom_Click()‘选择修改房间信息,触menuModifyroom的Click事件,程序判定为修改状态后,第一删除原有记录,然后把新内容加入到数据库中
DimintCountAsInteger
IfflagReditThen‘判定记录窗体是否打开
IffrmRoom.msgList.Rows>1Then‘判定客房信息列表内容是否为空
gintRmode=2‘设置为修改状态
intCount=frmRoom.msgList.Row‘纪录当前记录位置
frmRoom1.txtSQL=”select*fromroomswhereroomNO=’”&Trim(frmRoom.msgList.TextMatrix(intCount,1))&”’”
frmRoom1.Show
Else
CallmenuAddroom_Click‘添加记录
EndIf
Else
frmRoom.txtSQL=”select*fromrooms”
frmRoom.Show
EndIf
EndSub
·删除客房信息
PrivateSubmenuDeleteroom_Click()
DimtxtSQLAsString
DimintCountAsInteger
DimmrcAsADODB.Recordset
DimMsgTextAsString
IfflagTeditThen
IffrmRoom.msgList.Rows>1Then‘判定客房信息列表内容是否为空
IfMsgBox(“确实要删除这条文件记录么?
”,vbOKCancel+vbExclamation,“警告”)=vbOKThen
intCount=frmRoom.msgList.Row‘记载当前记录位置
txtSQL=”deletefromroomswhereroomNO=‘”&Trim(frmRoom.msgList.TextMatrix(intCount,1)&”’”
Setmrc=ExecuteSQL(txtSQL,MsgText)‘执行删除操作
UnloadfrmRoom
frmRoom.txtSQL=”select*fromrooms”
frmRoom.Show
EndIf
EndIf
EndIf
EndSub
·查询客房信息
PrivateSubFrom_Load()‘载入窗体时,将自动加入所有记录的入库时刻
DimiAsInteger
DimjAsInteger
DimsSqlAsString
DimtxtSQLAsString
DimMsgTextAsString
DimmrcAsADODB.Recordset
txtSQL=”selectDISTINCTtypenamefromroomtype”‘初始化客房种类
Setmrc=ExecuteSQL(txtSQL,MsgText)
IfNotmrc.EOFThen
DoWhileNotmrc.EOF
Combo1.AddItemTrim(mrc.Fields(0))
Mrc.MoveNext
Loop
Combo1.ListIndex=0
Else
MsgBox“请先进行客房标准设置!
”,vbOKOnly+vbExclamation,”警告”
ExitSub
EndIf
mrc.Close
EndSub
PrivateSubcmdOK_Click()‘设置完查询内容和方式后,单击cmdOk按钮查询
DimsQSqlAsString
IfchkItem(0).Value=vbCheckedThen
sQSql=”roomNO=’”&Trim(txtItem(0)&””)&”’”
EndIf
IfchkItem
(1).Value=vbCheckedThen
IfTrim(sQSql&””)=””Then
sQSql=”roomtype=’”&Trim(Combo1&””)&”’”
Else
EndIf
EndIf
IfTrim(sQSql)=””Then
MsgBox“请设置查询条件!
”,vbOKOnly+vbExclamation,“警告”
ExitSub
Else
IfflagReditThen
UnloadfrmRoom
EndIf
frmRoom.txtSQL=”select*fromroomswhere”&sQSql
frmRoom.Show
EndIf
Me.Hide
EndSub
7.小结
关于本次课程设计要紧从三方面,即知识、技能和态度,学生采纳自我评估方式来检查自己,如此能够产生这种日常性的,内省方式的自我评估,以检查自己的学习进度和成绩,改进学习方法和增强学习自信心。