数据库课程设计(酒店管理系统)_第1页
数据库课程设计(酒店管理系统)_第2页
数据库课程设计(酒店管理系统)_第3页
数据库课程设计(酒店管理系统)_第4页
免费预览已结束,剩余37页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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系统的功能模块图根据功能模块图设计划出的实体有散客入住实体、团队入住实体、投诉管理实体、值班管理实体。散客入住实体E-R 如图 2 所示。团队入住实体E-R 如图 3 所示投诉管理实体E-R 图如图 4 所示值班管理实体E-R 图如图 5 所示'.房价姓名图 2 散客入住实体E-R 图房号散客入住实体性别离店日证件号码抵达日团队名称负责人姓名图 3 团队入住实体E-R 图备注团队入住实体房

4、间号码入住天数证件号码抵达日投诉日期投诉对象图 4 投诉管理实体E-R 图'.编号投诉管理实体投诉内容.值班截止时间值班人值班开始日期值班管理实体记事值班开始日期值班截止日期图 5 值班管理实体E-R 图2.2 结构设计使用 windows 操作系统、 开发维护系统即 visual basic 软件系统、 一套数据库系统 Access 即可。他们之间的关系如图 6 所示。数据库开发人员数据库应用程序用户用户用户图 6 结构关系图根据上面的需求分析,设计好数据库系统,然后开发应用程序可以考虑窗体的系统,每一个窗体实现不同的功能,可以设计以下几个模块。·客人入住模块:用来实现登记

5、入住的增加、删除和修改等操作。·客人信息查询模块:用来实现对客人信息的浏览和查询。·值班管理模块:用来实现对工作人员值班情况的增加、删除和修改等操作。·系统管理模块:用来实现用户的增加、删除和修改等操作。2.3 数据库设计'.这里数据库采用access,用 ADO 作为连接数据对象。建立 access 数据库启动 access,建立一个空的数据库jiudian.mbd ,如图 7 所示。图 7jiudian.mdb使用程序设计器建立系统需要的表格如下:散客资料表,如图8 所示。团队资料表,如图9 所示。值班管理表,如图10 所示。系统管理表,如图11 所示

6、。投诉管理表,如图12 所示。'.图 8 散客资料表图 9 团队资料表图 10 值班管理表图 11 系统管理表图 12 投诉管理表连接数据库在程序设计的公共模块中,先定义ADO 链接对象。语句如下:Public conn As New ADODB.Connection'标记连接对象然后在子程序中,用如下的语句即可打开数据库:Dim connectionstring As String'."data source=jiudian.mdb"conn.Open connectionstring图 12 引用 ADO 连接数据库'.第三章系统开发与实

7、现这是一个多文档界面( MDI )应用程序,如图 13 所示,可以同时显示多个文档,每个文档显示在各个窗体中。 MDI 应用程序中常有包含子菜单“窗体”选项,用于在窗体或文档间进行切换。菜单应用程序中,有5 个菜单选项,每个选项对应着E-R 图中的一个子项目。图 13 多文档界面3.1 创建主窗体首先创建一个工程,命名为酒店管理系统。该窗体属性如表1 所示。表 1主窗体的属性属性值Caption酒店管理系统WindowStateMaxsize'.图 14菜单编辑器在主窗体的工具栏中,选菜单编辑器,创建如图14 所示的菜单结构。创建一些菜单项,如表2 所示。表 2菜单项表菜单名称Text

8、 属性功能描述MenuItem1系统管理顶级菜单,包含子菜单MenuItem2新增用户调出用户窗体MenuItem3修改密码调出密码窗体MenuItem4退出系统推出MenuItem5客人入住顶级菜单,包含子菜单MenuItem6散客入住调出散客入住信息窗体MenuItem7团队入住调出团队入住信息窗体MenuItem8客人信息查询调出查询窗体MenuItem9人事管理顶级菜单,包含子菜单MenuItem10客户投诉管理调出客户投诉信息窗体MenuItem11值班管理调出值班信息窗体MenuItem12关于调出对系统的要求主窗体如图15 所示。图 15 主窗体'.3.2创建各个子窗体“

9、工程” “添加窗体”命令,添加子窗体。把窗体的属性MIDChild 改成 Ture,这个窗体则成为MID 子窗体。这个项目中,要创建的子窗体如表3 所示。下面分别是各个子窗体,以及他们所使用的控件,如表3 所示。表 3所有子窗体子窗体名Text散客入住frmonly_client团队入住Frmdouble_client增加用户frmadduser修改密码frmchangepwd客人资料frmdatamanage查询输出frmfind关于frmAbout用户登录frmlogin客人投诉管理frmkhts值班管理frmzhiban散客入住子窗体散客入住子窗体如图16 所示,其控件如表4 所示。图

10、16散客入住子窗体'.表 4散客入住子窗口控件控件类型控件 Name控件 TextFrame1散客入住FrameFrame2(空 )DateGridDateGrid1(空 )Commend1新增记录Commend2修改记录CommendCommend3删除记录Commend4取消Commend5退出增加用户子窗体增加用户子窗体如图17 所示,其控件如表5 所示。图 17 增加用户子窗体表 5增加用户控件表控件类别控件 Name控件 TextLabel1输入用户名LabelLabel2输入密码Label3确认密码Label4选择权限Text1(空)TextBoxText2(空)Text3

11、(空)ComboBoxComb1(空)CommandButtonCommand1确认Command2取消修改密码子窗体修改密码子窗体如图18 所示,其控件如表6 所示。'.图 18 修改密码子窗体表 6 修改密码窗体控件类别控件 Name控件 TextLabelLabel1新密码Label2确认密码TextBoxText1(空)Text2(空)CommandButtonCommand1确定Command2取消团队入住子窗体团队入住子窗体如图19 所示,其控件如表7 所示图 19团队入住子窗体'.表 7团队入住子窗口控件控件类型控件 Name控件 TextFrameFrame1团

12、队入住Frame2(空)DataGridDataGrid1(空)CommandButtonCommand1新增记录Command2修改记录Command3删除记录Command4取消Command5退出查询子窗体查询子窗体如图20 所示,其控件如表8 所示图 20查询子窗体表 8查询子控件控件类别控件 Name控件 TextOptionButtonOption1按房号Option2按抵达日Lable1从LableLable2到Lable3从Lable4年Lable5月Lable6日Lable7到LableLable8年Lable9月Lable10日Combo(0 )CoboBoxCombol(

13、空)'.Combo(1 )CoboBoxCombol(空)Combo(0 )CoboBoxComboy(空)Combo(1 )CoboBoxComboy(空)Combo(0 )CoboBoxCombom(空)Combo(1 )CoboBoxCombom(空)Combo(0 )CoboBoxCombod(空)Combo(1 )CoboBoxCombod(空)CommandButtonCommand1查询Command2取消用户登录子窗体用户登录子窗体如图21 所示,其控件如表9 所示图 21 用户登录子窗体表 9 用户登录子窗口控件控件类别控件 Name控件 TextLabelLabel

14、1用户名Label2密码TextBoxText1(空)Text2(空)CommandButtonCommand1确定Command2取消值班管理子窗体值班管理子窗体如图22 所示,其控件如表10 所示'.图 22值班管理子窗体表 10值班管理子窗口控件控件类别控件 Name控件 TextFrameFrame1值班管理DatagridDataGrid1(空)CmdAdd增加记录CommandButtonCmdDcl删除记录CmdCanccl取消投诉管理子窗体投诉管理子窗体如图23 所示,其控件如表11 所示'.图 23 投诉管理子窗体表 11投诉管理子窗体控件控件类别控件 Nam

15、e控件属性控件属性值FrameFrame1Caption投诉信息Frame2Caption(空)控件类别控件 Name控件属性控件属性值Label1Caption投诉编号Label2Caption投诉日期Label3Caption投诉对象LabelLabel4Caption投诉内容Label5Caption受诉部门Label6Caption受诉日期Label7Caption处理意见DataSourceAdodc1AllowAddNewTureDataGridDataGrid1AllowDeleteTureAllowUpdataTureAllowArrowsTureCommand1上一条(空)C

16、ommand2下一条(空)Command3第一条(空)CommandButtonCommand4末一条(空)Command5增加记录(空)Command6删除记录(空)Command7取消(空)AdodcAdodc1CommunationStringJiudian.mdbRecordSource投诉管理Text(空)Text1DataField投诉编号DataSourceAdodc1Text(空)TextText2DataField投诉日期DataSourceAdodc1Text(空)Text3DataField投诉对象DataSourceAdodc1Text(空)Text4DataField

17、投诉内容DataSourceAdodc1Text(空)Text5DataField受诉部门'.TextDataSourceAdodc1Text(空)Text6DataField受诉日期DataSourceAdodc1Text(空)Text7DataField处理意见DataSourceAdodc13.3建立公共模块建立公共模块可以提高代码效率, 同时使得修改和维护代码都很方便。 创建公共模块的步骤如下:( 1)“工程” “添加模块”( 2)选择模块图标后,打开,着这个模块已经添加到项目中了。默认情况下名为modulel 。( 3)在模块中定义整个项目的公共变量。Public conn

18、As New ADODB.Connection'标记连接对象Public userID As String'标记当前用户IDPublic userpow As String'标记用户权限Public find As Boolean'标记查询Public sqlfind As String'查询语句Public rs_data1 As New ADODB.RecordsetPublic findok As BooleanPublic frmdata As Boolean'.第四章总结通过本次设计, 设计的基本思想方法, 能够独立编写小型的数据库程序

19、, 通过数据库系统应用课题的实践, 进一步提高分析问题解决问题的能力及软件开发过程的能力。遗憾的是对数据库设计工作的认识仅仅停留在表面, 只是在参考着书做, 借被人的思想, 亲自操作却尽力很多困难, 所以未能领会其精髓。 但时通过这次数据库设计,加深了我对数据库设计基本知识的理解, 丰富了我做数据库设计的实际技术,虽然学的不精, 但让我对数据库产生了浓厚的兴趣, 也使我对数据库有了深层次的感性和理性认识。 认识到要做好一项工作, 既要注重理论知识的学习,更重要的是要把实践与理论两者紧密相结合。参考文献1 王 珊,萨师煊编译 .数据库系统概论 . 北京:高等教育出版社, 19832 张跃延,王小

20、科,许文武 . 数据库开发案例精选 . 人民邮电出版社, 2007,3 Connolly.T. 数据库设计 /设计师实现与管理 . 电子工业出版社, 20064 钱雪忠,甸海驰,陈国俊编著 .数据库原理及技术课程设计 . 北京:清华大学出版社, 20095 谭浩强编译 . Visual basic 程序设计 .北京:清华大学出版社, 2006'.附录:代码设计.1 主窗体代设计本项目中,子菜单事件都是click下面是响应“新增用户”子菜单下面是响应“新增用户”子菜单下面是响应“新增用户”子菜单下面是响应“新增用户”子菜单Private Sub about_Click()frmAbout

21、.ShowEnd SubPrivate Sub add_user_Click()frmadduser.ShowEnd SubPrivate Sub double_check_Click()frmfind_double.ShowEnd SubPrivate Sub check_Click()frmfind.ShowEnd SubPrivate Sub double_client_Click()frmdouble_client.ShowEnd SubPrivate Sub exit_Click()Unload MeEnd SubPrivate Sub khts_Click()frmkhts.Sho

22、wEnd SubPrivate Sub MDIForm_Load()frmdata = Falsefind = FalseEnd SubPrivate Sub modify_pw_Click()事件,主窗体代码。click 事件,调出新增用窗体代码。click 事件,调出新增用窗体代码。click 事件,调出新增用窗体代码。click 事件,调出新增用窗体代码。'.frmchangepwd.ShowEnd SubPrivate Sub only_check_Click()frmfind.ShowEnd SubPrivate Sub only_client_Click()frmonly_

23、client.ShowEnd SubPrivate Sub zbgl_Click()frmzhiban.ShowEnd Sub2 子窗体的代码在各个子窗体建立好后,就可以根据各个子窗体的功能给他们添加相应代码了。(1)散客入住子窗体代码本窗口用来录入散客入住信息,用ADO 来连接数据库,是本窗体的重点。采用MDI 的子程序,所以运行后,它出现在主程序界面下,下面的代码是定义变量的。Option ExplicitDim rs_client As New ADODB.Recordset新增用户按钮代码Option ExplicitDim rs_client As New ADODB.Records

24、etPrivate Sub Command1_Click()On Error GoTo adderrorIf Command1.Caption = " 新增记录 " Then'当此按钮的状态为为“增加记录”时Command1.Caption = " 确定 "'按钮名称改为“确定”Command2.Enabled = False'删除与修改按钮不可用Command3.Enabled = FalseCommand4.Enabled = True'取消按钮可用DataGrid1.AllowAddNew = TrueDataGri

25、d1.AllowUpdate = True'设定 datagrid 可以增加记录ElseIf Not IsNull(DataGrid1.Bookmark) ThenIf Trim(DataGrid1.Columns(" 房号 ").CellText(DataGrid1.Bookmark) = "" Then MsgBox " 房号不能为空! ", vbOKOnly + vbExclamation, ""Exit SubEnd IfIf Trim(DataGrid1.Columns("房价 &quo

26、t;).CellText(DataGrid1.Bookmark) = "" ThenMsgBox " 房价不能为空!", vbOKOnly + vbExclamation, ""'.Exit SubEnd IfIf Trim(DataGrid1.Columns(" 姓名 ").CellText(DataGrid1.Bookmark) = "" Then MsgBox " 姓名不能为空! ", vbOKOnly + vbExclamation, ""

27、Exit SubEnd IfIf Trim(DataGrid1.Columns(" 性别 ").CellText(DataGrid1.Bookmark) = "" Then MsgBox " 性别不能为空! ", vbOKOnly + vbExclamation, ""Exit SubEnd IfIf Not IsDate(Trim(DataGrid1.Columns(" 抵达日 ").CellText(DataGrid1.Bookmark) Then MsgBox " 请按照格式 h

28、h-mm 输入抵达日 ", vbOKOnly + vbExclamation, ""Exit SubEnd IfIf Not IsDate(Trim(DataGrid1.Columns(" 离店日 ").CellText(DataGrid1.Bookmark) Then MsgBox " 请按照格式 hh-mm 输入离店日 ", vbOKOnly + vbExclamation, ""Exit SubEnd Ifrs_client.UpdateMsgBox " 添加信息成功!", vb

29、OKOnly + vbExclamation, ""DataGrid1.AllowAddNew = FalseDataGrid1.AllowUpdate = FalseElseMsgBox " 没有添加信息!", vbOKOnly + vbExclamation, ""End IfCommand1.Caption = " 新增记录 "Command2.Enabled = TrueCommand3.Enabled = TrueCommand4.Enabled = FalseEnd Ifadderror:If Err.

30、Number <> 0 ThenMsgBox Err.DescriptionEnd IfEnd SubPrivate Sub Command2_Click()Dim answer As StringOn Error GoTo cmdmodifyIf Command2.Caption = " 修改记录 " Thenanswer = MsgBox(" 确定要修改吗?", vbYesNo, "")If answer = vbYes ThenCommand2.Caption = " 确定 "'.Comm

31、and1.Enabled = FalseCommand3.Enabled = FalseCommand4.Enabled = TrueDataGrid1.AllowUpdate = TrueElseExit SubEnd IfElseIf Not IsNull(DataGrid1.Bookmark) Thenrs_client.UpdateEnd IfCommand2.Caption = " 修改记录 "Command1.Enabled = TrueCommand3.Enabled = TrueCommand4.Enabled = FalseDataGrid1.AllowU

32、pdate = FalseMsgBox " 修改成功! ", vbOKOnly + vbExclamation, ""End Ifcmdmodify:If Err.Number <> 0 ThenMsgBox Err.DescriptionEnd IfEnd SubPrivate Sub Command3_Click()Dim answer As StringOn Error GoTo delerroranswer = MsgBox(" 确定要删除吗?", vbYesNo, "")If answer =

33、 vbYes ThenDataGrid1.AllowDelete = Truers_client.Deleters_client.UpdateDataGrid1.RefreshMsgBox " 成功删除! ", vbOKOnly + vbExclamation, ""DataGrid1.AllowDelete = FalseElseExit SubEnd Ifdelerror:If Err.Number <> 0 ThenMsgBox Err.DescriptionEnd IfEnd Sub'.Private Sub Command4

34、_Click()If Command4.Caption = " 确定 " Thenrs_client.CancelDataGrid1.ReBindDataGrid1.AllowAddNew = FalseDataGrid1.AllowUpdate = FalseCommand1.Caption = " 新增记录 "Command2.Enabled = TrueCommand3.Enabled = TrueCommand4.Enabled = FalseElseIf Command2.Caption = " 确定 " Thenrs_cl

35、ient.CancelDataGrid1.ReBindDataGrid1.RefreshDataGrid1.AllowUpdate = FalseCommand2.Caption = " 修改记录 "Command1.Enabled = TrueCommand3.Enabled = TrueCommand4.Enabled = FalseEnd IfFrame2.Enabled = TrueEnd SubPrivate Sub Command5_Click()Unload MeEnd SubPrivate Sub DataGrid1_Click()End SubPrivat

36、e 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 = False'不可增加DataGrid1.AllowDelete = False'不可删除DataG

37、rid1.AllowUpdate = FalseSet DataGrid1.DataSource = rs_clientCommand4.Enabled = False'.Exit Subloaderror:MsgBox Err.DescriptionEnd SubPrivate Sub Form_Unload(Cancel As Integer)Set DataGrid1.DataSource = Nothingrs_client.CloseEnd Sub(1)团队入住子窗体代码本窗口是用来录入团队入住信息,也是用ADO 来连接数据库的。Option ExplicitDim rs_d

38、client As New ADODB.RecordsetPrivate Sub Command1_Click()On Error GoTo adderrorIf Command1.Caption = " 新增记录 " Then'当此按钮的状态为为“增加记录”时Command1.Caption = " 确定 "'按钮名称改为“确定”Command2.Enabled = False'删除与修改按钮不可用Command3.Enabled = FalseCommand4.Enabled = True'取消按钮可用DataGrid

39、1.AllowAddNew = TrueDataGrid1.AllowUpdate = True'设定 datagrid 可以增加记录ElseIf Not IsNull(DataGrid1.Bookmark) ThenIf Trim(DataGrid1.Columns("团队名称 ").CellText(DataGrid1.Bookmark) = "" ThenMsgBox " 团队名称不能为空!", vbOKOnly + vbExclamation, ""Exit SubEnd IfIf Trim(Dat

40、aGrid1.Columns("负责人姓名 ").CellText(DataGrid1.Bookmark) = "" ThenMsgBox " 负责人姓名不能为空!", vbOKOnly + vbExclamation, ""Exit SubEnd IfIf Trim(DataGrid1.Columns("证件号码 ").CellText(DataGrid1.Bookmark) = "" ThenMsgBox " 证件号码不能为空!", vbOKOnly

41、+ vbExclamation, ""Exit SubEnd IfIf Trim(DataGrid1.Columns(" 房间号码 ").CellText(DataGrid1.Bookmark) = "" Then MsgBox " 房间号码! ", vbOKOnly + vbExclamation, ""Exit SubEnd If'.rs_dclient.UpdateMsgBox " 添加信息成功!", vbOKOnly + vbExclamation, &quo

42、t;"DataGrid1.AllowAddNew = FalseDataGrid1.AllowUpdate = FalseElseMsgBox " 没有添加信息!", vbOKOnly + vbExclamation, ""End IfCommand1.Caption = " 新增记录 "Command2.Enabled = TrueCommand3.Enabled = TrueCommand4.Enabled = FalseEnd Ifadderror:If Err.Number <> 0 ThenMsgBox

43、 Err.DescriptionEnd IfEnd SubPrivate Sub Command2_Click()Dim answer As StringOn Error GoTo cmdmodifyIf Command2.Caption = " 修改记录 " Thenanswer = MsgBox(" 确定要修改吗?", vbYesNo, "")If answer = vbYes ThenCommand2.Caption = " 确定 "Command1.Enabled = FalseCommand3.Enabled = FalseCommand4.Enabled = TrueDataGrid1.AllowUpdate = TrueElseExit SubEnd IfElseIf Not IsNull(DataGrid1.Bookmark) Thenrs_dclient.UpdateEnd IfCommand2.Caption = " 修改记录 &q

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论