宾馆管理信息系统论文说明.docx
- 文档编号:26653743
- 上传时间:2023-06-21
- 格式:DOCX
- 页数:50
- 大小:190.24KB
宾馆管理信息系统论文说明.docx
《宾馆管理信息系统论文说明.docx》由会员分享,可在线阅读,更多相关《宾馆管理信息系统论文说明.docx(50页珍藏版)》请在冰豆网上搜索。
宾馆管理信息系统论文说明
宾馆管理信息系统
系统平台:
Windows2000
数据库服务器:
MicrosoftSQLServer2000
开发工具:
VisualBasic6.0
系统开发人员:
⒈编写目的
宾馆在正常的运营中需要对客房资源、顾客信息、结算信息进行管理,利用宾馆管理信息系统及时了解各个环节中信息的变更,有利于提高管理效率。
⒉系统功能分析
系统开发的总体任务是实现宾馆各种信息的系统化、规范化和自动化。
主要完成功能:
●有关客房标准的制定、标准信息的输入,包括标准编号、标准名称、房间面积、床位数量、住房单价、是否有空调、电视机、电话以及单独卫生间等。
●客房标准信息的修改、查询等。
●客房基本信息的输入,包括客房编号、客房类型、客房位置、客房单价、备注等。
●客房基本信息的查询、修改,包括客房编号、客房类型、客房位置、客房单价、备注等。
●剩余客房信息的查询等。
●订房信息的输入,包括客房编号、客房种类、客房位置、客房单价、顾客姓名、顾客身份证号码、入住日期、折扣、备注信息等。
●订房信息的修改和查询,包括客房编号、客房种类、客房位置、客房单价、顾客姓名、顾客身份证号码、入住日期、折扣、备注信息等。
●结算信息的输入,包括客房编号、客房种类、位置、客房单价、顾客姓名、顾客身份证号码、入住日期、折扣、结算日期、备注信息等。
●结算信息的修改和查询,包括客房编号、客房种类、客房位置、客房单价、顾客姓名、顾客身份证号码、入住日期、折扣、结日期、备注信息等。
⒊系统功能模块设计
按结构化程序设计思想,分析得出如下系统功能模块图
图Ⅰ系统功能模块图
⒋数据库设计
数据库设计步骤:
●数据库需求分析
●数据库概念结构设计
●数据库逻辑结构设计
①数据库需求分析
分析调查有关宾馆管理信息需求的基础上得本系统所处理的数据流程
图Ⅱ宾馆管理信息系统数据流程图
针对一般宾馆管理信息系统的需求,通过对宾馆管理过程的内容和流程分析,设计如下面所示的数据项和数据结构:
●客房标准信息,包括的数据项有:
标准编号、标准名称、房间面积、床位数量、住房单价、是否有空调、电视、电话、单独卫生间等。
●客房信息,包括的数据项有:
客房编号、客房种类、客房位置、客房单价、备注等。
●订房信息,包括的数据项有:
订房编号、客房编号、客房种类、客房位置、客房备注信息、顾客姓名、顾客身份证号码、入住时间、折扣、备注等。
●结算信息,包括的数据项有:
订房编号、客房编号、客房种类、客房位置、客房备注信息、顾客姓名、顾客身份证号码、入住时间、折扣、结算时间、备注等。
②数据库概念结构设计
本系统根据以上的设计规划出的实体有:
客房标准信息实体、客房信息实体、订房信息实体、结算信息实体。
各个实体具体的描述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]
⒍宾馆管理信息系统具体程序实现
⑴创建公用模块Module1.bas
添加公共数据操作函数,用以执行各种SQL语句。
添加函数ExecuteSQL,代码如下:
PublicFunctionExecuteSQL(ByValSQLAsString,MsgStringAsString)_AsADODB.Recordset
‘执行SQL语句,并返回记录集对象
DimcnnAsADODB.Connection
DimrstAsADODB.Recordset
DimsTokens()AsString
‘异常处理
OnErrorGoToExecuteSQL_Error’
‘用Split函数产生一个包含各个子串的数组
sTokens=Split(SQL)
Setcnn=NEWADODB.Connection
‘打开连接
cnn.OpenConnectString
IfInStr(“INSERT,DELETE,UPDATE”,UCase$(sTokens(0)))Then
Cnn.ExecuteSQL
MsgString=sTokens(0)&”querysuccessful”
Else
Setrst=NEWADODO.Recordset
rst.OpenTrim$(SQL),cnn,adOpenKeyset,adLockOptimistic
rst.MoveLast
getRecordCount
‘返回记录集对象
SetExecuteSQL=rst
MsgString=”查询到”&rst.RecordCount&”条记录”
EndIf
ExecuteSQL_Exit:
Setrst=Nothing
Setcnn=Nothing
ExitFunction
ExecuteSQL_Error:
MsgString=”查询错误:
”&Err.Description
ResumeExecuteSQL_Exit
EndFunction
PublicSubEnterToTab(KeyascAsInteger)
‘判断是否为回车键
IfKeyasc=13Then‘Keyasc用来保存当前按键
‘转换成Tab键
SendKeys”{TAB}”
EndIf
Endsub
‘添加全局变量,用来记录各个窗口的读写状态,代码如下:
PublicflagTeditAsBoolean‘标示是否进入修改的窗体
PublicflagReditAsBoolean
PublicflagBeditAsBoolean
PublicflagCeditAsBoolean
PublicgintCmodeAsInteger
PublicgintTmodeAsInteger’记录是添加还是修改状态,1为添加,2为修改
PublicgintRmodeAsInteger
PublicgintBmodeAsInteger
PublicflagSeditAsBoolean
⑵系统用户管理模块的创建
用户管理模块主要实现:
·用户登陆。
·添加用户。
·修改用户
具体客房标准添加代码:
PrivateSubForm_Load()‘载入窗体后,判断所处状态
DimintCountAsInteger
DimMsgTextAsString
DimiAsInteger
IfgintTmode=1Then‘判断是否属于添加状态
Me.Caption=Me.Caption&”添加”
Fori=0To3
Combo1(i).AddItem”否”
Combo1(i).AddItem”是”
Combo1(i).ListIndex=0
Nexti
ElseIfgintTmode=2Then‘判断是否处于修改状态
Setmrc=ExecuteSql(txtSQL,MsgText)
Ifmrc.EOF=falseThen
Withmrc
ForintCount=0To3
txtItem(intCount)=.Fields(intCount)
NextintCount
txtItem(4)=.Fileds(8)
Fori=0To3
Combo1(i).Additem”否”
Combo1(i).Additem”是”
Combo1(i).ListIndex=0
Nexti
EndWith
txtItem(0).Enabled=False
EndIf
Me.Caption=Me.caption&”修改”
EndIf
mblChang=False
EndSub
PrivateSubcmd_Click()’用户输入内容完毕后,单击cmdSave按钮触发Click事件
DimintCountAsInteger
DimsMegAsString
DimMsgTextAsString
ForintCount=0To4‘判断是否输入内容
IfTrim(txtItem(intCount)&””)=””Then
SelectCaseintCount
Case0
sMeg=”标准编号”
Case1
sMeg=”标准名称”
Case2
sMeg=”房间面积”
Case3
sMeg=”床位数量”
Case4
sMeg=”床位单价”
EndSelect
sMeg=sMeg&”不能为空!
”
MsgBoxsMeg,vbOkOnly+vbExclamation,”警告”
txtItem(intCount).SetFocus
ExitSub
Endif
NextintCount‘判断输入内容是否为数字
ForintCount=2To4
IfNotIsNumeric(Trim(txtItem(intCount)))Then
SelectCaseintCount
Case2
sMeg=”房间面积”
Case3
sMeg=”床位数量”
Case4
sMeg=”床位单价”
EndSelect
sMeg=sMeg&”请输入数字!
”
MsgBoxsMeg,vbOKOnly+vbExclamation,”警告”
txtItem(intCount).SeFocus
ExitSub
EndIf
NextintCount
IfgintTmode=1Then‘判断是否有相同ID记录
txtSQL=”select*fromroomtypewheretypeid_=’”&Trim(txtItem(0))&”’”
Setmrc=ExecuteSQL(txtSQL,MsgText)
Ifmrc.EOF=FalseThen
MsgBox“已经存在此标准编号的记录!
”,vbOKOnly+vbExclamation,”警告”
txtItem(0).SetFocus
ExitSub
EndIf
Mrc.Close
EndIf
txtSQL=”select*fromroomtypewheretypeid<>’”&Trim(txtItem(0))&”’andtypename=’”&Trim(txtItem
(1))&”’”
Setmrc=ExecuteSQL(txtSQL,MsgText)
Ifmrc.EOF=FalseThen
MsgBox”已经存在相同客房标准的记录!
”,vbOKOnly+vbExclamation,“警告”
txtItem
(1).Setfocus
ExitSub
EndIf
txtSQL=”deletefromroomtypewheretypeid=’”&Trim(txtItem(0))&”’”‘删除已有记录
Setmrc=ExecuteSQL(txtSQL,MsgText)
txtSQL=”select*fromroottype”‘添加新记录
Setmrc=ExecuteSQL(txtSQL,MsgText)
mrc.AddNew
ForintCount=0To3
mrc.Fields(intCount)=Trim(txtItem(intCount))
NextintCount
ForintCount=0To3
mrc.Fields(intCount+4)=Trim(Combo1(intCount))
NextintCount
mrc.Fields(8)=Trim(txtItem(4))
mrc.Update‘更新数据库
mrc.Close
ifgintTmode=1Then‘判断是否属于添加状态
MsgBox“添加纪录成功!
”,vbOKOnly+vbExclamtion,“添加记录”
ForintCount=0To4
txtItem(intCount)=””‘清除已经输入的内容
NextintCount
ForintCount=0To3
Combo1(intCount).ListIndex=0
NextintCount
mblChange=False’判断是否打开窗口
ifflagTeditThen
UnloadfrmRoomtype
frmRoomtype.txtSQL=“select*fromroomtype”
frmRoomtype.Show
EndIf
ElseIfgintTmode=2Then‘判断是否处于修改状态
UnloadMe
IfflagTeditThen
UnloadfrmRoomtype
EndIf
frmRoomtype.txtSQL=”select*fromroomtype”
frmRoomtype.Show
EndIf
EndSub
PrivateSubtxtItem_GotFocus(IndexAsInteger)’文本框获得焦点时触发该事件,即自动选中输入的内容,便于修改
txtItem(Index).SelStart=0
txtItem(Index).SelLength=Len(txtItem(Index))
EndSub
PrivateSubcmdExit_Click()’单击按钮cmdExit取消添加信息
IfmblChangeAndcmdSave.EnabledThen
IfMsgBox(“保存当前记录的变化吗?
”,vbOKCancel+vbExclamation,”警告”)=vbOKThen‘保存
CallcmdSave_Click
EndIf
EndIf
UnloadMe
EndSub
PrivateSubtxtItem_KeyDown(IndexAsInteger,KeyCodeAsInteger,Shift_AsInteger)‘输入完内容,单击回车键将自动进入下一个文本框,触发文本框的Keydown事件
EnterToTabKeyCode
EndSub
⑶修改客房标准窗体的创建
PrivateSubFrom_Load()
ShowTitle
ShowData
flagTedit=True
EndSub
PrivateSubShowTitle()‘调用showTitle函数,显示表头
DimiAsInteger
WithmsgList
.Cols=10
.TextMatrix(0,1)=”标准编号”
.TextMatrix(0,2)=”标准名称”
.TextMatrix(0,3)=”房间面积”
.TextMatrix(0,4)=”床位数量”
.TextMatrix(0,5)=”是否有空调”
.TextMatrix(0,6)=”是否有电话”
.TextMatrix(0,7)=”是否有电视”
.TextMatrix(0,8)=”是否有卫生间”
.TextMatrix(0,9)=”房间单价”
.FixedRows=1‘固定表头
Fori=0To9‘设置各列的对齐方式
.ColAlignment(i)=0
Nexti
.FillStyle=flexFillRepeat‘表头项居中
.Col=0
.Row=0
.RowSel=1
.ColSel=.Cols-1
.CellAlignment=4
.ColWidth(0)=300‘设置单元大小
.ColWidth
(1)=1000
.ColWidth
(2)=2000
.ColWidth(3)=2000
.ColWidth(4)=1000
.ColWidth(5)=1000
.ColWidth(6)=1000
.ColWidth(7)=1000
.ColWidth(8)=1000
.ColWidth(9)=1000
.Row=1
EndWith
EndSub
PrivateSubShowData()‘调用showData函数,显示记录列表
DimiAsInteger
Setmrc=ExecuteSQL(txtSQL,MsgText)‘根据需要设置SQL语句,显示需要的记录
WithmsgList
.Rows=1
DoWhileNotmrc.EOF
.Rows=Rows+1
Fori=1Tomrc.Fields.Count
SelectCasemrc
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 宾馆 管理信息系统 论文 说明