数据库课程设计酒店管理系统.docx
《数据库课程设计酒店管理系统.docx》由会员分享,可在线阅读,更多相关《数据库课程设计酒店管理系统.docx(58页珍藏版)》请在冰豆网上搜索。
数据库课程设计酒店管理系统
第一章引言
第二章系统分析与设计
2.1需求分析
2.2结构设计
2.3数据库设计
第三章系统开发及实现
3.1创建主窗体
3.2创建子窗体
3.3建立公共模块
第四章总结
参考文献
附录(附部分源代码)
第一章引言
酒店管理系统是现代服务行业不可缺少的一个组成环节。
酒店管理信息系统是一个由人、计算机和数据库组成的进行酒店经营管理的系统,通过对信息的收集、传递、整理、加工、维护和使用,提高管理水平和效率,从而实现酒店管理的自动化、规范化和人性化。
本文简要介绍了基于Microsoft和VB程序语言开发实现的酒店管理系统,着重阐述了该系统开发实现过程,从系统的需求分析、方案论证、模块设计、数据设计、详细设计到系统测试等各个环节都进行了较为详尽的分析和描述。
关键词:
酒店管理系统、Access、数据库、VB
第二章系统分析与设计
2.1需求分析
在进行一个项目的设计之前,首先要进行必要的需求分析。
酒店需要管理各种人员和入住信息,希望实现酒店的信息化管理,通过建立一个酒店管理系统来管理酒店的日常业务。
其完成功能如下:
1、能够实现对客人的登记信息查询,包括逐个浏览,以及对客人资料的增加、删除和编辑操作。
2、能够的酒店人员值班情况进行管理。
3、管理人员也可以直接增加和删除用户信息。
系统功能模块图如图1所示。
图1系统的功能模块图
根据功能模块图设计划出的实体有散客入住实体、团队入住实体、投诉管理实体、值班管理实体。
散客入住实体E-R如图2所示。
团队入住实体E-R如图3所示
投诉管理实体E-R图如图4所示
值班管理实体E-R图如图5所示
图2散客入住实体E-R图
图3团队入住实体E-R图
图4投诉管理实体E-R图
图5值班管理实体E-R图
2.2结构设计
使用windows操作系统、开发维护系统即visualbasic软件系统、一套数据库系统Access即可。
他们之间的关系如图6所示。
图6结构关系图
根据上面的需求分析,设计好数据库系统,然后开发应用程序可以考虑窗体的系统,每一个窗体实现不同的功能,可以设计以下几个模块。
·客人入住模块:
用来实现登记入住的增加、删除和修改等操作。
·客人信息查询模块:
用来实现对客人信息的浏览和查询。
·值班管理模块:
用来实现对工作人员值班情况的增加、删除和修改等操作。
·系统管理模块:
用来实现用户的增加、删除和修改等操作。
2.3数据库设计
这里数据库采用access,用ADO作为连接数据对象。
2.3.1建立access数据库
启动access,建立一个空的数据库jiudian.mbd,如图7所示。
图7jiudian.mdb
使用程序设计器建立系统需要的表格如下:
散客资料表,如图8所示。
团队资料表,如图9所示。
值班管理表,如图10所示。
系统管理表,如图11所示。
投诉管理表,如图12所示。
图8散客资料表图9团队资料表
图10值班管理表图11系统管理表
图12投诉管理表
2.3.2连接数据库
在程序设计的公共模块中,先定义ADO链接对象。
语句如下:
PublicconnAsNewADODB.Connection'标记连接对象
然后在子程序中,用如下的语句即可打开数据库:
DimconnectionstringAsString
connectionstring="provider=Microsoft.Jet.oledb.4.0;"&_
"datasource=jiudian.mdb"
conn.Openconnectionstring
图12引用ADO连接数据库
第三章系统开发与实现
这是一个多文档界面(MDI)应用程序,如图13所示,可以同时显示多个文档,每个文档显示在各个窗体中。
MDI应用程序中常有包含子菜单“窗体”选项,用于在窗体或文档间进行切换。
菜单应用程序中,有5个菜单选项,每个选项对应着E-R图中的一个子项目。
图13多文档界面
3.1创建主窗体
首先创建一个工程,命名为酒店管理系统。
该窗体属性如表1所示。
属性
值
Caption
酒店管理系统
WindowState
Maxsize
表1主窗体的属性
图14菜单编辑器
在主窗体的工具栏中,选菜单编辑器,创建如图14所示的菜单结构。
创建一些菜单项,如表2所示。
表2菜单项表
菜单名称
Text属性
功能描述
MenuItem1
系统管理
顶级菜单,包含子菜单
MenuItem2
新增用户
调出用户窗体
MenuItem3
修改密码
调出密码窗体
MenuItem4
退出系统
推出
MenuItem5
客人入住
顶级菜单,包含子菜单
MenuItem6
散客入住
调出散客入住信息窗体
MenuItem7
团队入住
调出团队入住信息窗体
MenuItem8
客人信息查询
调出查询窗体
MenuItem9
人事管理
顶级菜单,包含子菜单
MenuItem10
客户投诉管理
调出客户投诉信息窗体
MenuItem11
值班管理
调出值班信息窗体
MenuItem12
关于
调出对系统的要求
主窗体如图15所示。
图15主窗体
3.2创建各个子窗体
“工程”—“添加窗体”命令,添加子窗体。
把窗体的属性MIDChild改成Ture,这个窗体则成为MID子窗体。
这个项目中,要创建的子窗体如表3所示。
下面分别是各个子窗体,以及他们所使用的控件,如表3所示。
表3所有子窗体
子窗体名
Text
散客入住
frmonly_client
团队入住
Frmdouble_client
增加用户
frmadduser
修改密码
frmchangepwd
客人资料
frmdatamanage
查询输出
frmfind
关于
frmAbout
用户登录
frmlogin
客人投诉管理
frmkhts
值班管理
frmzhiban
3.2.1散客入住子窗体
散客入住子窗体如图16所示,其控件如表4所示。
图16散客入住子窗体
表4散客入住子窗口控件
控件类型
控件Name
控件Text
Frame1
散客入住
Frame
Frame2
(空)
DateGrid
DateGrid1
(空)
Commend1
新增记录
Commend2
修改记录
Commend
Commend3
删除记录
Commend4
取消
Commend5
退出
3.2.2增加用户子窗体
增加用户子窗体如图17所示,其控件如表5所示。
图17增加用户子窗体
表5增加用户控件表
控件类别
控件Name
控件Text
Label1
输入用户名
Label
Label2
输入密码
Label3
确认密码
Label4
选择权限
Text1
(空)
TextBox
Text2
(空)
Text3
(空)
ComboBox
Comb1
(空)
CommandButton
Command1
确认
Command2
取消
3.2.3修改密码子窗体
修改密码子窗体如图18所示,其控件如表6所示。
图18修改密码子窗体
表6修改密码窗体
控件类别
控件Name
控件Text
Label
Label1
新密码
Label2
确认密码
TextBox
Text1
(空)
Text2
(空)
CommandButton
Command1
确定
Command2
取消
3.2.4团队入住子窗体
团队入住子窗体如图19所示,其控件如表7所示
图19团队入住子窗体
表7团队入住子窗口控件
控件类型
控件Name
控件Text
Frame
Frame1
团队入住
Frame2
(空)
DataGrid
DataGrid1
(空)
CommandButton
Command1
新增记录
Command2
修改记录
Command3
删除记录
Command4
取消
Command5
退出
3.2.5查询子窗体
查询子窗体如图20所示,其控件如表8所示
图20查询子窗体
表8查询子控件
控件类别
控件Name
控件Text
OptionButton
Option1
按房号
Option2
按抵达日
Lable1
从
Lable
Lable2
到
Lable3
从
Lable4
年
Lable5
月
Lable6
日
Lable7
到
Lable
Lable8
年
Lable9
月
Lable10
日
Combo(0)CoboBox
Combol
(空)
Combo
(1)CoboBox
Combol
(空)
Combo(0)CoboBox
Comboy
(空)
Combo
(1)CoboBox
Comboy
(空)
Combo(0)CoboBox
Combom
(空)
Combo
(1)CoboBox
Combom
(空)
Combo(0)CoboBox
Combod
(空)
Combo
(1)CoboBox
Combod
(空)
CommandButton
Command1
查询
Command2
取消
3.2.6用户登录子窗体
用户登录子窗体如图21所示,其控件如表9所示
图21用户登录子窗体
表9用户登录子窗口控件
控件类别
控件Name
控件Text
Label
Label1
用户名
Label2
密码
TextBox
Text1
(空)
Text2
(空)
CommandButton
Command1
确定
Command2
取消
3.2.7值班管理子窗体
值班管理子窗体如图22所示,其控件如表10所示
图22值班管理子窗体
表10值班管理子窗口控件
控件类别
控件Name
控件Text
Frame
Frame1
值班管理
Datagrid
DataGrid1
(空)
CmdAdd
增加记录
CommandButton
CmdDcl
删除记录
CmdCanccl
取消
3.2.8投诉管理子窗体
投诉管理子窗体如图23所示,其控件如表11所示
图23投诉管理子窗体
表11投诉管理子窗体控件
控件类别
控件Name
控件属性
控件属性值
Frame
Frame1
Caption
投诉信息
Frame2
Caption
(空)
控件类别
控件Name
控件属性
控件属性值
Label1
Caption
投诉编号
Label2
Caption
投诉日期
Label3
Caption
投诉对象
Label
Label4
Caption
投诉内容
Label5
Caption
受诉部门
Label6
Caption
受诉日期
Label7
Caption
处理意见
DataGrid1
DataSource
Adodc1
AllowAddNew
Ture
DataGrid
AllowDelete
Ture
AllowUpdata
Ture
AllowArrows
Ture
Command1
上一条
(空)
Command2
下一条
(空)
Command3
第一条
(空)
CommandButton
Command4
末一条
(空)
Command5
增加记录
(空)
Command6
删除记录
(空)
Command7
取消
(空)
Adodc
Adodc1
CommunationString
Jiudian.mdb
RecordSource
投诉管理
Text
Text1
Text
(空)
DataField
投诉编号
DataSource
Adodc1
Text2
Text
(空)
DataField
投诉日期
DataSource
Adodc1
Text3
Text
(空)
DataField
投诉对象
DataSource
Adodc1
Text4
Text
(空)
Text
DataField
投诉内容
DataSource
Adodc1
Text5
Text
(空)
DataField
受诉部门
DataSource
Adodc1
Text6
Text
(空)
DataField
受诉日期
DataSource
Adodc1
Text7
Text
(空)
DataField
处理意见
DataSource
Adodc1
3.3建立公共模块
建立公共模块可以提高代码效率,同时使得修改和维护代码都很方便。
创建公共模块的步骤如下:
(1)“工程”—“添加模块”
(2)选择模块图标后,打开,着这个模块已经添加到项目中了。
默认情况下名为modulel。
(3)在模块中定义整个项目的公共变量。
PublicconnAsNewADODB.Connection'标记连接对象
PublicuserIDAsString'标记当前用户ID
PublicuserpowAsString'标记用户权限
PublicfindAsBoolean'标记查询
PublicsqlfindAsString'查询语句
Publicrs_data1AsNewADODB.Recordset
PublicfindokAsBoolean
PublicfrmdataAsBoolean
第四章总结
通过本次设计,设计的基本思想方法,能够独立编写小型的数据库程序,通过数据库系统应用课题的实践,进一步提高分析问题解决问题的能力及软件开发过程的能力。
遗憾的是对数据库设计工作的认识仅仅停留在表面,只是在参考着书做,借被人的思想,亲自操作却尽力很多困难,所以未能领会其精髓。
但时通过这次数据库设计,加深了我对数据库设计基本知识的理解,丰富了我做数据库设计的实际技术,虽然学的不精,但让我对数据库产生了浓厚的兴趣,也使我对数据库有了深层次的感性和理性认识。
认识到要做好一项工作,既要注重理论知识的学习,更重要的是要把实践与理论两者紧密相结合。
参考文献
[1]王珊,萨师煊编译.数据库系统概论.北京:
高等教育出版社,1983
[2]张跃延,王小科,许文武.数据库开发案例精选.人民邮电出版社,2007,
[3]Connolly.T.数据库设计/设计师实现与管理.电子工业出版社,2006
[4]钱雪忠,甸海驰,陈国俊编著.数据库原理及技术课程设计.北京:
清华大学出版社,2009
[5]谭浩强编译.Visualbasic程序设计.北京:
清华大学出版社,2006
附录:
代码设计
.
1主窗体代设计
本项目中,子菜单事件都是click事件,主窗体代码。
下面是响应“新增用户”子菜单click事件,调出新增用窗体代码。
下面是响应“新增用户”子菜单click事件,调出新增用窗体代码。
下面是响应“新增用户”子菜单click事件,调出新增用窗体代码。
下面是响应“新增用户”子菜单click事件,调出新增用窗体代码。
PrivateSubabout_Click()
frmAbout.Show
EndSub
PrivateSubadd_user_Click()
frmadduser.Show
EndSub
PrivateSubdouble_check_Click()
frmfind_double.Show
EndSub
PrivateSubcheck_Click()
frmfind.Show
EndSub
PrivateSubdouble_client_Click()
frmdouble_client.Show
EndSub
PrivateSubexit_Click()
UnloadMe
EndSub
PrivateSubkhts_Click()
frmkhts.Show
EndSub
PrivateSubMDIForm_Load()
frmdata=False
find=False
EndSub
PrivateSubmodify_pw_Click()
frmchangepwd.Show
EndSub
PrivateSubonly_check_Click()
frmfind.Show
EndSub
PrivateSubonly_client_Click()
frmonly_client.Show
EndSub
PrivateSubzbgl_Click()
frmzhiban.Show
EndSub
2子窗体的代码
在各个子窗体建立好后,就可以根据各个子窗体的功能给他们添加相应代码了。
(1)散客入住子窗体代码
本窗口用来录入散客入住信息,用ADO来连接数据库,是本窗体的重点。
采用MDI的子程序,所以运行后,它出现在主程序界面下,
下面的代码是定义变量的。
OptionExplicit
Dimrs_clientAsNewADODB.Recordset
新增用户按钮代码
OptionExplicit
Dimrs_clientAsNewADODB.Recordset
PrivateSubCommand1_Click()
OnErrorGoToadderror
IfCommand1.Caption="新增记录"Then'当此按钮的状态为为“增加记录”时
Command1.Caption="确定"'按钮名称改为“确定”
Command2.Enabled=False'删除与修改按钮不可用
Command3.Enabled=False
Command4.Enabled=True'取消按钮可用
DataGrid1.AllowAddNew=True
DataGrid1.AllowUpdate=True'设定datagrid可以增加记录
Else
IfNotIsNull(DataGrid1.Bookmark)Then
IfTrim(DataGrid1.Columns("房号").CellText(DataGrid1.Bookmark))=""Then
MsgBox"房号不能为空!
",vbOKOnly+vbExclamation,""
ExitSub
EndIf
IfTrim(DataGrid1.Columns("房价").CellText(DataGrid1.Bookmark))=""Then
MsgBox"房价不能为空!
",vbOKOnly+vbExclamation,""
ExitSub
EndIf
IfTrim(DataGrid1.Columns("姓名").CellText(DataGrid1.Bookmark))=""Then
MsgBox"姓名不能为空!
",vbOKOnly+vbExclamation,""
ExitSub
EndIf
IfTrim(DataGrid1.Columns("性别").CellText(DataGrid1.Bookmark))=""Then
MsgBox"性别不能为空!
",vbOKOnly+vbExclamation,""
ExitSub
EndIf
IfNotIsDate(Trim(DataGrid1.Columns("抵达日").CellText(DataGrid1.Bookmark)))Then
MsgBox"请按照格式hh-mm输入抵达日",vbOKOnly+vbExclamation,""
ExitSub
EndIf
IfNotIsDate(Trim(DataGrid1.Columns("离店日").CellText(DataGrid1.Bookmark)))Then
MsgBox"请按照格式hh-mm输入离店日",vbOKOnly+vbExclamation,""
ExitSub
EndIf
rs_client.Update
MsgBox"添加信息成功!
",vbOKOnly+vbExclamation,""
DataGrid1.AllowAddNew=False
DataGrid1.AllowUpdate=False
Else
MsgBox"没有添加信息!
",vbOKOnly+vbExclamation,""
EndIf
Command1.Caption="新增记录"
Command2.Enabled=True
Command3.Enabled=True
Command4.Enabled=False
EndIf
adderror:
IfErr.Number<>0Then
MsgBoxErr.Description
EndIf
EndSub
PrivateSubCommand2_Click()
DimanswerAsString
OnErrorGoTocmdmodify
IfCommand2.Caption="修改记录"Then
answer=MsgBox("确定要修改吗?
",vbYesNo,"")
Ifanswer=vbYesThen
Command2.Caption="确定"
Command1.Enabled=False
Command3.Enabled=False
Command4.Enabled=True
DataGrid1.AllowUpdate=True
Else
ExitSub
EndIf
Else
IfNotIsNull(DataGrid1.Bookmark)Then
rs_client.Update
EndIf
Command2.Caption="修改记录"
Command1.Enabled=True