1、计算机科学与工程系数据库系统课程设计报告题目:酒店管理系统课程代号:0680036课程名称:数据库系统课程设计学号:姓名:班级:指导教师完成日期:2011年4月目录第一章 引言第二章 系统分析与设计2。1需求分析2。2结构设计2。3数据库设计第三章 系统开发及实现3。1 创建主窗体3。2 创建子窗体3。3 建立公共模块第四章 总结参考文献附录(附部分源代码)第一章 引言酒店管理系统是现代服务行业不可缺少的一个组成环节.酒店管理信息系统是一个由人、计算机和数据库组成的进行酒店经营管理的系统,通过对信息的收集、传递、整理、加工、维护和使用,提高管理水平和效率,从而实现酒店管理的自动化、规范化和人性
2、化。本文简要介绍了基于Microsoft和VB程序语言开发实现的酒店管理系统,着重阐述了该系统开发实现过程,从系统的需求分析、方案论证、模块设计、数据设计、详细设计到系统测试等各个环节都进行了较为详尽的分析和描述。关键词:酒店管理系统、Access、数据库、VB第二章系统分析与设计2。1需求分析在进行一个项目的设计之前,首先要进行必要的需求分析。酒店需要管理各种人员和入住信息,希望实现酒店的信息化管理,通过建立一个酒店管理系统来管理酒店的日常业务。其完成功能如下:1、能够实现对客人的登记信息查询,包括逐个浏览,以及对客人资料的增加、删除和编辑操作.2、能够的酒店人员值班情况进行管理。3、管理人
3、员也可以直接增加和删除用户信息。系统功能模块图如图1所示。酒店管理系统人事管理客户入住系统管理客户信息查询客户投诉值班管理散客入住密码修改团队入住新增用户图1 系统的功能模块图根据功能模块图设计划出的实体有散客入住实体、团队入住实体、投诉管理实体、值班管理实体。散客入住实体ER如图2所示。团队入住实体E-R如图3所示投诉管理实体E-R图如图4所示值班管理实体ER图如图5所示散客入住实体姓名房价性别房号离店日抵达日证件号码图2 散客入住实体E-R图团队入住实体负责人姓名团队名称房间号码备注入住天数抵达日证件号码 图3 团队入住实体E-R图投诉管理实体投诉对象投诉日期投诉内容编号处理意见受诉日期受
4、诉部门图4 投诉管理实体ER图值班管理实体值班人值班截止时间记事值班开始日期值班开始日期值班截止日期图5 值班管理实体ER图2。2结构设计使用windows操作系统、开发维护系统即visual basic软件系统、一套数据库系统Access即可。他们之间的关系如图6所示。数据库数据库应用程序开发人员用户用户用户图6 结构关系图根据上面的需求分析,设计好数据库系统,然后开发应用程序可以考虑窗体的系统,每一个窗体实现不同的功能,可以设计以下几个模块.客人入住模块:用来实现登记入住的增加、删除和修改等操作.客人信息查询模块:用来实现对客人信息的浏览和查询.值班管理模块:用来实现对工作人员值班情况的增
5、加、删除和修改等操作。系统管理模块:用来实现用户的增加、删除和修改等操作。2。3数据库设计这里数据库采用access,用ADO作为连接数据对象。2.3。1建立access数据库启动access,建立一个空的数据库jiudian.mbd,如图7所示。图7 jiudian。mdb使用程序设计器建立系统需要的表格如下:散客资料表,如图8所示。团队资料表,如图9所示。值班管理表,如图10所示。系统管理表,如图11所示。投诉管理表,如图12所示。图8 散客资料表 图9 团队资料表图10 值班管理表 图11系统管理表 图12 投诉管理表2.3。2连接数据库在程序设计的公共模块中,先定义ADO链接对象.语句
6、如下:Public conn As New ADODB。Connection 标记连接对象然后在子程序中,用如下的语句即可打开数据库:Dim connectionstring As Stringconnectionstring = ”provider=Microsoft。Jet。oledb。4。0;” & _ ”data source=jiudian。mdb”conn。Open connectionstring图12 引用ADO连接数据库第三章系统开发与实现 这是一个多文档界面(MDI)应用程序,如图13所示,可以同时显示多个文档,每个文档显示在各个窗体中.MDI应用程序中常有包含子菜单“窗体
7、选项,用于在窗体或文档间进行切换。菜单应用程序中,有5个菜单选项,每个选项对应着ER图中的一个子项目。图13 多文档界面3.1 创建主窗体 首先创建一个工程,命名为酒店管理系统.该窗体属性如表1所示.属性值 Caption 酒店管理系统 WindowState Maxsize表1 主窗体的属性图14 菜单编辑器在主窗体的工具栏中,选菜单编辑器,创建如图14所示的菜单结构.创建一些菜单项,如表2 所示.表2 菜单项表 菜单名称Text属性功能描述MenuItem1系统管理顶级菜单,包含子菜单MenuItem2新增用户调出用户窗体MenuItem3修改密码调出密码窗体MenuItem4退出系统推出
8、MenuItem5客人入住顶级菜单,包含子菜单MenuItem6散客入住调出散客入住信息窗体MenuItem7团队入住调出团队入住信息窗体MenuItem8客人信息查询调出查询窗体MenuItem9人事管理顶级菜单,包含子菜单MenuItem10客户投诉管理调出客户投诉信息窗体MenuItem11值班管理调出值班信息窗体MenuItem12关于调出对系统的要求主窗体如图15所示.图15 主窗体3.2 创建各个子窗体“工程”“添加窗体”命令,添加子窗体。把窗体的属性MIDChild改成Ture,这个窗体则成为MID子窗体.这个项目中,要创建的子窗体如表3所示.下面分别是各个子窗体,以及他们所使用
9、的控件,如表3所示。表3 所有子窗体子窗体名Text散客入住frmonly_client团队入住Frmdouble_client增加用户frmadduser修改密码frmchangepwd客人资料frmdatamanage查询输出frmfind关于frmAbout用户登录frmlogin客人投诉管理frmkhts值班管理frmzhiban3.2。1散客入住子窗体散客入住子窗体如图16所示,其控件如表4所示。图16 散客入住子窗体表4 散客入住子窗口控件控件类型控件Name控件TextFrame1散客入住FrameFrame2(空)DateGridDateGrid1(空)Commend1新增记录
10、Commend2修改记录CommendCommend3删除记录Commend4取消Commend5退出3.2。2增加用户子窗体增加用户子窗体如图17所示,其控件如表5所示.图17增加用户子窗体表5 增加用户控件表控 件 类 别控件Name控件TextLabel1输入用户名LabelLabel2输入密码Label3确认密码Label4选择权限Text1(空)TextBoxText2(空)Text3(空)ComboBoxComb1(空)CommandButtonCommand1确认Command2取消3。2.3修改密码子窗体修改密码子窗体如图18所示,其控件如表6所示。图18修改密码子窗体表6修改
11、密码窗体控 件 类 别控件Name控件TextLabelLabel1新密码Label2确认密码TextBoxText1(空)Text2(空)CommandButtonCommand1确定Command2取消3.2。4团队入住子窗体团队入住子窗体如图19所示,其控件如表7所示图19 团队入住子窗体表7 团队入住子窗口控件控件类型控件Name控件TextFrameFrame1团队入住Frame2(空)DataGridDataGrid1(空)CommandButtonCommand1新增记录Command2修改记录Command3删除记录Command4取消Command5退出3.2。5查询子窗体查
12、询子窗体如图20所示,其控件如表8所示图20 查询子窗体表8 查询子控件控件类别控件Name控件TextOptionButtonOption1按房号Option2按抵达日Lable1从LableLable2到Lable3从Lable4年Lable5月Lable6日Lable7到LableLable8年Lable9月Lable10日Combo(0 )CoboBoxCombol(空)Combo(1 )CoboBoxCombol(空)Combo(0 )CoboBoxComboy(空)Combo(1 )CoboBoxComboy(空)Combo(0 )CoboBoxCombom(空)Combo(1 )
13、CoboBoxCombom(空)Combo(0 )CoboBoxCombod(空)Combo(1 )CoboBoxCombod(空)CommandButtonCommand1查询Command2取消3。2。6用户登录子窗体用户登录子窗体如图21所示,其控件如表9所示图21用户登录子窗体表9用户登录子窗口控件控件类别控件Name控件TextLabelLabel1用户名Label2密码TextBoxText1(空)Text2(空)CommandButtonCommand1确定Command2取消3.2。7值班管理子窗体值班管理子窗体如图22所示,其控件如表10所示图22值班管理子窗体表10值班管理
14、子窗口控件控件类别控件Name控件TextFrameFrame1值班管理DatagridDataGrid1(空)CmdAdd增加记录CommandButtonCmdDcl删除记录CmdCanccl取消3。2.8投诉管理子窗体投诉管理子窗体如图23所示,其控件如表11所示图23投诉管理子窗体表11 投诉管理子窗体控件控件类别控件Name控件属性控件属性值FrameFrame1Caption投诉信息Frame2Caption(空)控件类别控件Name控件属性控件属性值Label1Caption投诉编号Label2Caption投诉日期Label3Caption投诉对象LabelLabel4Capt
15、ion投诉内容Label5Caption受诉部门Label6Caption受诉日期Label7Caption处理意见DataGrid1DataSourceAdodc1AllowAddNewTureDataGridAllowDeleteTureAllowUpdataTureAllowArrowsTureCommand1上一条(空)Command2下一条(空)Command3第一条(空)CommandButtonCommand4末一条(空)Command5增加记录(空)Command6删除记录(空)Command7取消(空)AdodcAdodc1CommunationStringJiudian。m
16、dbRecordSource投诉管理TextText1Text(空)DataField投诉编号DataSourceAdodc1Text2Text(空)DataField投诉日期DataSourceAdodc1Text3Text(空)DataField投诉对象DataSourceAdodc1Text4Text(空)TextDataField投诉内容DataSourceAdodc1Text5Text(空)DataField受诉部门DataSourceAdodc1Text6Text(空)DataField受诉日期DataSourceAdodc1Text7Text(空)DataField处理意见Dat
17、aSourceAdodc13。3 建立公共模块建立公共模块可以提高代码效率,同时使得修改和维护代码都很方便.创建公共模块的步骤如下:(1)“工程”“添加模块(2)选择模块图标后,打开,着这个模块已经添加到项目中了.默认情况下名为modulel.(3)在模块中定义整个项目的公共变量。Public conn As New ADODB。Connection 标记连接对象Public userID As String 标记当前用户IDPublic userpow As String 标记用户权限Public find As Boolean 标记查询Public sqlfind As String 查询
18、语句Public rs_data1 As New ADODB。RecordsetPublic findok As BooleanPublic frmdata As Boolean第四章 总结通过本次设计,设计的基本思想方法,能够独立编写小型的数据库程序,通过数据库系统应用课题的实践,进一步提高分析问题解决问题的能力及软件开发过程的能力。遗憾的是对数据库设计工作的认识仅仅停留在表面,只是在参考着书做,借被人的思想,亲自操作却尽力很多困难,所以未能领会其精髓。但时通过这次数据库设计,加深了我对数据库设计基本知识的理解,丰富了我做数据库设计的实际技术,虽然学的不精,但让我对数据库产生了浓厚的兴趣,也
19、使我对数据库有了深层次的感性和理性认识。认识到要做好一项工作,既要注重理论知识的学习,更重要的是要把实践与理论两者紧密相结合。参考文献1 王 珊,萨师煊编译.数据库系统概论. 北京:高等教育出版社,19832 张跃延,王小科,许文武。数据库开发案例精选。人民邮电出版社,2007,3 Connolly。T. 数据库设计/设计师实现与管理。 电子工业出版社,20064钱雪忠,甸海驰,陈国俊编著。数据库原理及技术课程设计。 北京:清华大学出版社,20095谭浩强编译。Visual basic程序设计。北京:清华大学出版社,2006附录:代码设计。291主窗体代设计本项目中,子菜单事件都是click事
20、件,主窗体代码.下面是响应“新增用户”子菜单click事件,调出新增用窗体代码.下面是响应“新增用户子菜单click事件,调出新增用窗体代码.下面是响应“新增用户”子菜单click事件,调出新增用窗体代码.下面是响应“新增用户”子菜单click事件,调出新增用窗体代码。Private Sub about_Click()frmAbout。ShowEnd SubPrivate Sub add_user_Click()frmadduser。ShowEnd SubPrivate Sub double_check_Click()frmfind_double。ShowEnd SubPrivate Sub
21、check_Click()frmfind.ShowEnd SubPrivate Sub double_client_Click()frmdouble_client。ShowEnd SubPrivate Sub exit_Click()Unload MeEnd SubPrivate Sub khts_Click()frmkhts。ShowEnd SubPrivate Sub MDIForm_Load()frmdata = Falsefind = FalseEnd SubPrivate Sub modify_pw_Click()frmchangepwd.ShowEnd SubPrivate Sub
22、 only_check_Click()frmfind.ShowEnd SubPrivate Sub only_client_Click()frmonly_client.ShowEnd SubPrivate Sub zbgl_Click()frmzhiban。ShowEnd Sub2 子窗体的代码在各个子窗体建立好后,就可以根据各个子窗体的功能给他们添加相应代码了.(1)散客入住子窗体代码本窗口用来录入散客入住信息,用ADO来连接数据库,是本窗体的重点。采用MDI的子程序,所以运行后,它出现在主程序界面下,下面的代码是定义变量的。Option ExplicitDim rs_client As N
23、ew ADODB。Recordset新增用户按钮代码Option ExplicitDim rs_client As New ADODB.RecordsetPrivate Sub Command1_Click()On Error GoTo adderrorIf Command1。Caption = 新增记录” Then 当此按钮的状态为为“增加记录”时 Command1。Caption = ”确定” 按钮名称改为“确定” Command2。Enabled = False 删除与修改按钮不可用 Command3.Enabled = False Command4.Enabled = True 取消按
24、钮可用 DataGrid1。AllowAddNew = True DataGrid1.AllowUpdate = True 设定datagrid可以增加记录ElseIf Not IsNull(DataGrid1。Bookmark) Then If Trim(DataGrid1.Columns(”房号)。CellText(DataGrid1.Bookmark)) = ” Then MsgBox 房号不能为空!, vbOKOnly + vbExclamation, ” Exit Sub End If If Trim(DataGrid1。Columns(”房价”)。CellText(DataGrid
25、1。Bookmark) = ” Then MsgBox 房价不能为空!, vbOKOnly + vbExclamation, Exit Sub End If If Trim(DataGrid1.Columns(姓名”).CellText(DataGrid1。Bookmark) = ” Then MsgBox 姓名不能为空!”, vbOKOnly + vbExclamation, ” Exit Sub End If If Trim(DataGrid1。Columns(”性别)。CellText(DataGrid1。Bookmark)) = ” Then MsgBox ”性别不能为空!”, vbO
26、KOnly + vbExclamation, ” Exit Sub End If If Not IsDate(Trim(DataGrid1。Columns(”抵达日)。CellText(DataGrid1.Bookmark)) Then MsgBox ”请按照格式hhmm输入抵达日”, vbOKOnly + vbExclamation, ” Exit Sub End If If Not IsDate(Trim(DataGrid1.Columns(”离店日”)。CellText(DataGrid1。Bookmark)) Then MsgBox 请按照格式hhmm输入离店日, vbOKOnly +
27、 vbExclamation, ” Exit Sub End If rs_client。Update MsgBox 添加信息成功!, vbOKOnly + vbExclamation, DataGrid1。AllowAddNew = False DataGrid1.AllowUpdate = FalseElse MsgBox 没有添加信息!”, vbOKOnly + vbExclamation, ”End If Command1.Caption = ”新增记录 Command2.Enabled = True Command3.Enabled = True Command4.Enabled =
28、FalseEnd Ifadderror:If Err。Number 0 Then MsgBox Err。DescriptionEnd IfEnd SubPrivate Sub Command2_Click()Dim answer As StringOn Error GoTo cmdmodifyIf Command2.Caption = 修改记录 Then answer = MsgBox(确定要修改吗?”, vbYesNo, ”) If answer = vbYes Then Command2。Caption = 确定” Command1。Enabled = False Command3。Ena
29、bled = False Command4。Enabled = True DataGrid1。AllowUpdate = True Else Exit Sub End IfElse If Not IsNull(DataGrid1。Bookmark) Then rs_client.Update End If Command2。Caption = 修改记录” Command1。Enabled = True Command3.Enabled = True Command4.Enabled = False DataGrid1.AllowUpdate = False MsgBox ”修改成功!, vbO
30、KOnly + vbExclamation, ”End Ifcmdmodify:If Err.Number 0 Then MsgBox Err。DescriptionEnd IfEnd SubPrivate Sub Command4_Click()If Command4.Caption = ”确定” Then rs_client。Cancel DataGrid1.ReBind DataGrid1.AllowAddNew = False DataGrid1。AllowUpdate = False Command1.Caption = 新增记录 Command2。Enabled = True Co
31、mmand3。Enabled = True Command4。Enabled = FalseElseIf Command2.Caption = ”确定 Then rs_client。Cancel DataGrid1.ReBind DataGrid1。Refresh DataGrid1.AllowUpdate = False Command2。Caption = 修改记录” Command1.Enabled = True Command3。Enabled = True Command4。Enabled = FalseEnd IfFrame2。Enabled = TrueEnd SubPrivat
32、e Sub Command5_Click()Unload MeEnd SubPrivate Sub DataGrid1_Click()End SubPrivate Sub Form_Load()Dim sql As StringOn Error GoTo loaderrorsql = select from 散客资料”rs_client。CursorLocation = adUseClientrs_client.Open sql, conn, adOpenKeyset, adLockPessimistic 打开数据库设定datagrid控件属性DataGrid1.AllowAddNew = F
33、alse 不可增加DataGrid1。AllowDelete = False 不可删除DataGrid1。AllowUpdate = FalseSet DataGrid1。DataSource = rs_clientCommand4。Enabled = FalseExit Subloaderror: MsgBox Err。DescriptionEnd SubPrivate Sub Form_Unload(Cancel As Integer)Set DataGrid1。DataSource = Nothingrs_client。CloseEnd Sub(1) 团队入住子窗体代码本窗口是用来录入团
34、队入住信息,也是用ADO来连接数据库的.Option ExplicitDim rs_dclient As New ADODB.RecordsetPrivate Sub Command1_Click()On Error GoTo adderrorIf Command1。Caption = 新增记录” Then 当此按钮的状态为为“增加记录时 Command1.Caption = 确定” 按钮名称改为“确定” Command2。Enabled = False 删除与修改按钮不可用 Command3。Enabled = False Command4.Enabled = True 取消按钮可用 Dat
35、aGrid1。AllowAddNew = True DataGrid1.AllowUpdate = True 设定datagrid可以增加记录ElseIf Not IsNull(DataGrid1。Bookmark) Then If Trim(DataGrid1.Columns(”团队名称)。CellText(DataGrid1.Bookmark) = ” Then MsgBox ”团队名称不能为空!”, vbOKOnly + vbExclamation, ” Exit Sub End If If Trim(DataGrid1。Columns(”负责人姓名”)。CellText(DataGri
36、d1。Bookmark)) = ” Then MsgBox ”负责人姓名不能为空!”, vbOKOnly + vbExclamation, ” Exit Sub End If If Trim(DataGrid1.Columns(”证件号码”)。CellText(DataGrid1。Bookmark)) = ” Then MsgBox 证件号码不能为空!”, vbOKOnly + vbExclamation, ” Exit Sub End If If Trim(DataGrid1.Columns(”房间号码).CellText(DataGrid1.Bookmark)) = ” Then MsgB
37、ox ”房间号码!”, vbOKOnly + vbExclamation, ” Exit Sub End If rs_dclient。Update MsgBox ”添加信息成功!, vbOKOnly + vbExclamation, ” DataGrid1.AllowAddNew = False DataGrid1。AllowUpdate = FalseElse MsgBox 没有添加信息!”, vbOKOnly + vbExclamation, ”End If Command1。Caption = ”新增记录 Command2.Enabled = True Command3。Enabled
38、= True Command4。Enabled = FalseEnd Ifadderror:If Err.Number 0 Then MsgBox Err。DescriptionEnd IfEnd SubPrivate Sub Command2_Click()Dim answer As StringOn Error GoTo cmdmodifyIf Command2.Caption = 修改记录” Then answer = MsgBox(确定要修改吗?”, vbYesNo, ”) If answer = vbYes Then Command2.Caption = 确定 Command1。En
39、abled = False Command3.Enabled = False Command4。Enabled = True DataGrid1.AllowUpdate = True Else Exit Sub End IfElse If Not IsNull(DataGrid1.Bookmark) Then rs_dclient。Update End If Command2。Caption = 修改记录” Command1。Enabled = True Command3。Enabled = True Command4.Enabled = False DataGrid1。AllowUpdate = False MsgBox ”修改成功!”, vbOKOnly + vbExclamation, ”
©2010-2025 宁波自信网络信息技术有限公司 版权所有
客服电话:4008-655-100 投诉/维权电话:4009-655-100