当前位置:文档之家› [精编]数据库课程设计(酒店管理系统)

[精编]数据库课程设计(酒店管理系统)

计算机与通信工程学院数据库课程设计(酒店管理系统)数据库系统课程设计报告题目: 酒店管理系统课程代号:0680036课程名称:数据库系统课程设计学号:姓名:班级:指导教师完成日期:2011年4月目录第一章引言第二章系统分析与设计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.2统Access即可。

他们之间的关系如图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'标记连接对象然后在子程序中,用如下的语句即可打开数据库:DimconnectionstringAsStringconnectionstring="provider=Microsoft.Jet.oledb.4.0;"&_"datasource=jiudian.mdb"conn.Openconnectionstring图12引用ADO连接数据库第三章系统开发与实现这是一个多文档界面(MDI)应用程序,如图13所示,可以同时显示多个文档,每个文档显示在各个窗体中。

MDI应用程序中常有包含子菜单“窗体”选项,用于在窗体或文档间进行切换。

菜单应用程序中,有5个菜单选项,每个选项对应着E-R图中的一个子项目。

图13多文档界面3.1创建主窗体首先创建一个工程,命名为酒店管理系统。

该窗体属性如表1所示。

表1主窗体的属性图14菜单编辑器在主窗体的工具栏中,选菜单编辑器,创建如图14所示的菜单结构。

创建一些菜单项,如表2所示。

表2菜单项表主窗体如图15所示。

图15主窗体3.2创建各个子窗体“工程”—“添加窗体”命令,添加子窗体。

把窗体的属性MIDChild改成Ture,这个窗体则成为MID子窗体。

这个项目中,要创建的子窗体如表3所示。

下面分别是各个子窗体,以及他们所使用的控件,如表3所示。

表3所有子窗体3.2.1散客入住子窗体散客入住子窗体如图16所示,其控件如表4所示。

图16散客入住子窗体表4散客入住子窗口控件3.2.2增加用户子窗体增加用户子窗体如图17所示,其控件如表5所示。

图17增加用户子窗体表5增加用户控件表3.2.3修改密码子窗体修改密码子窗体如图18所示,其控件如表6所示。

图18修改密码子窗体表6修改密码窗体3.2.4团队入住子窗体团队入住子窗体如图19所示,其控件如表7所示图19团队入住子窗体表7团队入住子窗口控件3.2.5查询子窗体查询子窗体如图20所示,其控件如表8所示图20查询子窗体表8查询子控件3.2.6用户登录子窗体用户登录子窗体如图21所示,其控件如表9所示图21用户登录子窗体表9用户登录子窗口控件3.2.7值班管理子窗体值班管理子窗体如图22所示,其控件如表10所示图22值班管理子窗体表10值班管理子窗口控件3.2.8投诉管理子窗体投诉管理子窗体如图23所示,其控件如表11所示图23投诉管理子窗体表11投诉管理子窗体控件3.3建立公共模块建立公共模块可以提高代码效率,同时使得修改和维护代码都很方便。

创建公共模块的步骤如下:(1)“工程”—“添加模块”(2)选择模块图标后,打开,着这个模块已经添加到项目中了。

默认情况下名为modulel。

(3)在模块中定义整个项目的公共变量。

PublicconnAsNewADODB.Connection'标记连接对象PublicuserIDAsString'标记当前用户IDPublicuserpowAsString'标记用户权限PublicfindAsBoolean'标记查询PublicsqlfindAsString'查询语句Publicrs_data1AsNewADODB.RecordsetPublicfindokAsBooleanPublicfrmdataAsBoolean第四章总结通过本次设计,设计的基本思想方法,能够独立编写小型的数据库程序,通过数据库系统应用课题的实践,进一步提高分析问题解决问题的能力及软件开发过程的能力。

遗憾的是对数据库设计工作的认识仅仅停留在表面,只是在参考着书做,借被人的思想,亲自操作却尽力很多困难,所以未能领会其精髓。

但时通过这次数据库设计,加深了我对数据库设计基本知识的理解,丰富了我做数据库设计的实际技术,虽然学的不精,但让我对数据库产生了浓厚的兴趣,也使我对数据库有了深层次的感性和理性认识。

认识到要做好一项工作,既要注重理论知识的学习,更重要的是要把实践与理论两者紧密相结合。

参考文献[1]王珊,萨师煊编译.数据库系统概论.北京:高等教育出版社,1983[2]张跃延,王小科,许文武.数据库开发案例精选.人民邮电出版社,2007,[3]Connolly.T.数据库设计/设计师实现与管理.电子工业出版社,2006[4]钱雪忠,甸海驰,陈国俊编著.数据库原理及技术课程设计.北京:清华大学出版社,2009[5]谭浩强编译.Visualbasic程序设计.北京:清华大学出版社,2006附录:代码设计.1主窗体代设计本项目中,子菜单事件都是click事件,主窗体代码。

下面是响应“新增用户”子菜单click事件,调出新增用窗体代码。

下面是响应“新增用户”子菜单click事件,调出新增用窗体代码。

下面是响应“新增用户”子菜单click事件,调出新增用窗体代码。

下面是响应“新增用户”子菜单click事件,调出新增用窗体代码。

PrivateSubabout_Click()frmAbout.ShowEndSubPrivateSubadd_user_Click()frmadduser.ShowEndSubPrivateSubdouble_check_Click()frmfind_double.ShowPrivateSubcheck_Click() frmfind.ShowEndSub PrivateSubdouble_client_Click() frmdouble_client.Show EndSubPrivateSubexit_Click() UnloadMeEndSubPrivateSubkhts_Click() frmkhts.ShowEndSub PrivateSubMDIForm_Load() frmdata=Falsefind=FalseEndSub PrivateSubmodify_pw_Click() frmchangepwd.Show EndSubPrivateSubonly_check_Click() frmfind.ShowPrivateSubonly_client_Click()frmonly_client.ShowEndSubPrivateSubzbgl_Click()frmzhiban.ShowEndSub2子窗体的代码在各个子窗体建立好后,就可以根据各个子窗体的功能给他们添加相应代码了。

(1)散客入住子窗体代码本窗口用来录入散客入住信息,用ADO来连接数据库,是本窗体的重点。

采用MDI的子程序,所以运行后,它出现在主程序界面下,下面的代码是定义变量的。

OptionExplicitDimrs_clientAsNewADODB.Recordset新增用户按钮代码OptionExplicitDimrs_clientAsNewADODB.RecordsetPrivateSubCommand1_Click()OnErrorGoT oadderrorIfCommand1.Caption="新增记录"Then'当此按钮的状态为为“增加记录”时Command1.Caption="确定"'按钮名称改为“确定”Command2.Enabled=False'删除与修改按钮不可用Command3.Enabled=FalseCommand4.Enabled=True'取消按钮可用DataGrid1.AllowAddNew=TrueDataGrid1.AllowUpdate=True'设定datagrid可以增加记录ElseIfNotIsNull(DataGrid1.Bookmark)ThenIfTrim(DataGrid1.Columns("房号").CellText(DataGrid1.Bookmark))=""Then MsgBox"房号不能为空!",vbOKOnly+vbExclamation,""ExitSubEndIfIfTrim(DataGrid1.Columns("房价").CellText(DataGrid1.Bookmark))=""Then MsgBox"房价不能为空!",vbOKOnly+vbExclamation,""ExitSubEndIfIfTrim(DataGrid1.Columns("姓名").CellText(DataGrid1.Bookmark))=""Then MsgBox"姓名不能为空!",vbOKOnly+vbExclamation,""ExitSubEndIfIfTrim(DataGrid1.Columns("性别").CellText(DataGrid1.Bookmark))=""Then MsgBox"性别不能为空!",vbOKOnly+vbExclamation,""ExitSubIfNotIsDate(Trim(DataGrid1.Columns("抵达日").CellText(DataGrid1.Bookmark)))ThenMsgBox"请按照格式hh-mm输入抵达日",vbOKOnly+vbExclamation,""ExitSubEndIfIfNotIsDate(Trim(DataGrid1.Columns("离店日").CellText(DataGrid1.Bookmark)))ThenMsgBox"请按照格式hh-mm输入离店日",vbOKOnly+vbExclamation,""ExitSubEndIfrs_client.UpdateMsgBox"添加信息成功!",vbOKOnly+vbExclamation,""DataGrid1.AllowAddNew=FalseDataGrid1.AllowUpdate=FalseElseMsgBox"没有添加信息!",vbOKOnly+vbExclamation,""EndIfCommand1.Caption="新增记录"Command2.Enabled=TrueCommand3.Enabled=TrueCommand4.Enabled=Falseadderror:IfErr.Number<>0ThenMsgBoxErr.DescriptionEndIfEndSubPrivateSubCommand2_Click() DimanswerAsString OnErrorGoTocmdmodifyIfCommand2.Caption="修改记录"Then answer=MsgBox("确定要修改吗?",vbYesNo,"") Ifanswer=vbYesThenCommand2.Caption="确定"Command1.Enabled=FalseCommand3.Enabled=FalseCommand4.Enabled=TrueDataGrid1.AllowUpdate=TrueElseExitSubEndIfElseIfNotIsNull(DataGrid1.Bookmark)Thenrs_client.UpdateEndIfCommand2.Caption="修改记录"Command1.Enabled=TrueCommand3.Enabled=TrueCommand4.Enabled=FalseDataGrid1.AllowUpdate=FalseMsgBox"修改成功!",vbOKOnly+vbExclamation,"" EndIfcmdmodify:IfErr.Number<>0ThenMsgBoxErr.DescriptionEndIfEndSubPrivateSubCommand3_Click() DimanswerAsStringOnErrorGoTodelerroranswer=MsgBox("确定要删除吗?",vbYesNo,"") Ifanswer=vbYesThenDataGrid1.AllowDelete=Truers_client.Deleters_client.UpdateDataGrid1.RefreshMsgBox"成功删除!",vbOKOnly+vbExclamation,"" DataGrid1.AllowDelete=FalseElseExitSubEndIfdelerror:IfErr.Number<>0ThenMsgBoxErr.DescriptionEndIfEndSubPrivateSubCommand4_Click()IfCommand4.Caption="确定"Thenrs_client.CancelDataGrid1.ReBindDataGrid1.AllowAddNew=FalseDataGrid1.AllowUpdate=FalseCommand1.Caption="新增记录"Command2.Enabled=TrueCommand3.Enabled=TrueCommand4.Enabled=FalseElseIfCommand2.Caption="确定"Thenrs_client.CancelDataGrid1.ReBindDataGrid1.RefreshDataGrid1.AllowUpdate=FalseCommand2.Caption="修改记录"Command1.Enabled=TrueCommand3.Enabled=TrueCommand4.Enabled=FalseEndIfFrame2.Enabled=TrueEndSubPrivateSubCommand5_Click()UnloadMeEndSubPrivateSubDataGrid1_Click()EndSubPrivateSubForm_Load()DimsqlAsStringOnErrorGoToloaderrorsql="select*from散客资料"rs_client.CursorLocation=adUseClientrs_client.Opensql,conn,adOpenKeyset,adLockPessimistic'打开数据库'设定datagrid控件属性DataGrid1.AllowAddNew=False'不可增加DataGrid1.AllowDelete=False'不可删除DataGrid1.AllowUpdate=FalseSetDataGrid1.DataSource=rs_clientCommand4.Enabled=FalseExitSubloaderror:MsgBoxErr.DescriptionEndSubPrivateSubForm_Unload(CancelAsInteger)SetDataGrid1.DataSource=Nothingrs_client.CloseEndSub(1)团队入住子窗体代码本窗口是用来录入团队入住信息,也是用ADO来连接数据库的。

相关主题