酒店管理系统课程设计.docx
- 文档编号:10889183
- 上传时间:2023-02-23
- 格式:DOCX
- 页数:28
- 大小:919.96KB
酒店管理系统课程设计.docx
《酒店管理系统课程设计.docx》由会员分享,可在线阅读,更多相关《酒店管理系统课程设计.docx(28页珍藏版)》请在冰豆网上搜索。
酒店管理系统课程设计
0
8
8
9
0
1
第1章需求分析
1.1系统概述
随着社会经济的发展,酒店、宾馆在服务行业扮演着越来越重要的角色。
酒店行业的竞争表现在管理和服务水平的竞争,它影响到酒店的形象和声誉。
这就要求通过先进的管理来提高服务质量,尽可能做到让客户满意。
因此,非常需要一套酒店管理系统来对客房信息,经营情况以及客户信息进行管理。
酒店管理系统为管理者制定决策判断提供了可行依据。
判断提供迅速高效的、系统化的服务,避免手工处理的繁琐与误差,成为酒店、宾馆经营的重中之重。
但是目前商业性的酒店管理软件大多数是舍用于大、中型酒店,其操作复杂,收费昂贵,还需专业维护。
这就造成了很多小型酒店以及小型宾没有客房的管理软件,对于其宾馆的经营造成管理的繁琐与混乱。
所以开发一款社用于小型酒店或小型宾馆的客房管理软件时必须的。
1.2系统功能需求分析
该系统的功能需求有如下几个方面:
(1)客房管理。
主要用于对客房信息进行维护。
功能包括对客房信息的添加、修改和删除已有的客户信息,对客房信息进行查询。
(2)住宿管理。
主要用于对入住信息进行维护。
功能包括对入住信息的添加、修改和查询。
(3)结算管理。
主要用于对客房结账和对结算历史信息的查询。
功能包括结账(计算费用、记录结账信息)和结算查询。
第2章管理系统平台的选用
2.1数据库系统的选择原则
1、数据库系统采用易于集成的,开放的技术。
2、产品质量优异,可靠性高,适于长期运行,能支持关键应用。
3、数据安全,保安型高。
4、能提供分布式数据库功能。
5、支持多种开发环境,软件开发容易。
6、扩充性和升级能力强。
2.2系统开发工具的选择
本次系统设计选用的是VisualBasic作为开发工具,因为VisualBasic具有以下优越的功能:
简单,易学,易用
(1)快速完成应用任务
(2)使用方便的工具栏
(3)支持中英文输入法
(4)用项目管理器统一界面
第3章酒店管理概述
3.1系统数据需求
1)数据录入和处理的准确性和实时性。
2)数据的一致性与完整性。
3)数据的共享与独立性。
3.2系统业务功能的需求
(1)实现客房信息管理功能
(2)实现客户信息管理功能
(3)实现预定管理功能
(4)实现入住管理功能
(5)实现消费记账功能
(6)实现收银退房功能
综上,我们将系统的功能大体划分为三大模块:
权限管理:
包括管理员的登录
前台管理:
包括客户信息的录入、客户预订和入住登记以及结算的管理等。
后台报表管理:
包括报表的打印
3.3系统性能需求:
为了保证系统能够长期、安全、稳定、可靠、高效的运行,系统应该满足以下的性能需求:
(1)系统处理的准确性和及时性
系统处理的准确性和及时性是系统的必要性能。
在系统设计和开发过程中,要充分考虑系统当前和将来可能承受的工作量,使系统的处理能力和响应时间能够满足用户对信息的处理。
(2)系统的开放性和系统的可扩充性
系统在开发过程中,应该充分考虑以后的可扩充性。
例如系统权限和客房信息设置等模块也会不断的更新和完善。
所有这些都要求系统提供足够的手段进行功能的调整和扩充。
而要实现这一点,应通过系统的开放性来完成,既系统应是一个开放系统,只要符合一定的规范,可以简单的加入和减少系统的模块,配置系统的硬件。
(3)系统的易用性
本酒店客房管理系统面向的用户是酒店内工作人员,而有些使用人员往往对计算机并不是非常熟悉,所以系统操作上要求简单、方便、快捷,便于用户使用。
这就要求系统能够提供良好的用户接口,易用的人机交互界面。
(4)系统的响应速度
系统设计中摒弃大量数据冗余,提出了优化数据库的解决方案,大量使用存储过程,大大提高系统响应时间和速度。
第4章系统总体设计
本部分主要介绍系统要实现的功能,搭好设计的总体框架,使我们对要开发的系统有一个系统、全面、确切的认识。
4.1系统功能模块设计
结合前面需求分析阶段的结果进行综合处理,确定了客房管理系统需要完成的功能,主要划分为以下模块:
1.结算管理
(1)结账
(2)结账查询
2.客房信息管理
(1)设置客房标准
①添加客房标准②修改客房标准③删除客房标准
(2)设置客房信息
①添加客房信息②修改客房信息③添加客房类型④查询客房信息
3.住宿信息管理
(1)添加入住信息
(2)修改入住信息
(3)查询入住信息
模块设计图如下:
图4-1系统功能模块图
4.2系统结构设计
系统的主要结构:
系统的封面以表单开始,要求用户输入登录,若密码错误,则自动退出,否则出现系统主菜单,接受用户的操作,操作完毕后用户可以从系统菜单中退出系统,系统运行的步骤如图:
4.3系统数据流程图
图4-3系统数据流程图
4.4E-R图
4.5系统的运行要求
软、硬件环境:
硬件:
客户机(CPUP200以上,内存:
32M以上)、数据库服务器(CPUPIII800以上,内存:
256M或以上。
以Microsoftwindows操作系统为工作平台。
以MicrosoftVisualBasic6.0为开发工具。
数据库环境是MicrosoftOfficeAccess2003。
第5章详细设计与实现
5.1数据库设计
(1)数据库需求分析
设计的数据库系统应用于酒店管理系统,所以必须充分满足酒店客房管理系统的各种要求。
此系统要求记录每一次酒店客户的住宿登记、调房登记和退宿结账的操作信息,并允许系统用户对这些信息进行查询。
另外,必须建立一些辅助项目表为这些操作信息提供数据来源。
通过以上的分析,数据库设计必须满足以下几点:
1
(1)记录酒店客户住宿登记操作的信息。
2
(2)记录酒店客户退房结账操作的信息。
3 (3)记录酒店客房的相关信息。
4 (4)记录酒店客户的客房预订信息。
5 (5)记录系统用户的用户名、密码和操作权限。
(2)建立Access数据库及表
在一个酒店管理系统中,数据库的地位是非常重要的,是一个系统正常运行的基础。
本系统的数据库是采用Microsoft公司的Access2003设计的。
在数据库的设计过程中,首先是收集、分析需求;再从需求抽象出一般的实体、关系和他们的属性;再将这些实体、关系和属性按照一定的规则转化为二元表结构。
本系统中共有4数据表
表3-1为Usersinfo—管理员资料数据表。
管理员资料数据表记录了所有管理的基本资料,管理员可添加、删除和查询该表。
该表包括管理员ID、姓名、密码和权限等资料。
表3-1为UsersInfo—管理员资料数据表
字段名
类型
大小
说明
姓名
Text
20
管理人员帐号(主键)
密码
Text
20
管理人员密码(主键)
权限
Text
1
管理人员权限
如下图所示:
表3-2为add旅客入住登记表。
add日主登记表记录了入住旅客的基本个人信息、房间号、登记号等。
表3-2旅客信息表为旅客的个人信息加入住客房信息数据结构表
字段名
类型
大小
说明
登记号
Text
8
旅客入住号(主键)
姓名
Text
8
旅客姓名(不为空)
身份证号码
Text
18
旅客身份证号(不为空)
房间号
Text
3
入住房间号(不为空)
登记日期
Text
日期/时间
旅客入住时间(不为空)
性别
Text
3
旅客性别
籍贯
Text
8
旅客籍贯
如下所示:
表3-3为room资料数据表。
room料数据表记录了room基本资料,可供查询。
该表主要包括了房间号、客房等级、客房类型、客房价格、客房状态、客房备注信息等基本资料。
表3-2room资料数据表
字段名
类型
大小
说明
房间号
Text
3
房间号(主键)
客房等级
Text
8
客房等级
客房类型
Text
8
客房类型(不为空)
客房价格
数字
单精度型
客房价格(不为空)
客房状态
Text
3
客房状态(不为空)
客房备注信息
备注
8
客房备注信息
如下所示:
表3-4为quit资料数据表。
quit资料数据表记录了所有退房的基本资料,管理员可添加、删除和查询该表。
类型的基本资料,包括登记号、登记日期、退房日期、付款金额、退房备注信息。
表3-4为quit资料数据表
字段名
类型
大小
说明
登记号
Text
8
旅客入住号(主键)
登记日期
日期/时间
旅客登记时间(不为空)
退房时间
日期/时间
旅客退房时间(不为空)
付款金额
Text
单精度型
付费金额(不为空)
退房备注信息
Text
8
退房备注信息
如下所示:
连接数据库:
由于本系统是采用ADO对象访问数据库的技术,所以在VB中需要添加ADO库。
添加的方法是在VB中选择“工程”—>“引用”命令,在对话框中选择MicrodoftActiveXDataObjects2.0Library,单击“确定”按钮。
在程序设计的公共模块中,先定义ADO连接对象。
语句如下:
PublicconnAsNewADODB.connection‘标记连接对象’
DimconnectionAsString
ConnectionString="provider=microsoft.jet.oledb.4.0;"&"datasource=carshale.mdb"
conn.OpenConnectionString
5.2创建主窗体以及主要窗体
建立主窗体:
单击”工程”->”添加MDI窗体”菜单,在弹出的对话框中单击”打开”按钮则为当前项目添加了一个MDI窗体。
设置好MDI窗体属性后,设置此项目的属性。
单击”工程”->”工程1属性”菜单,进入项目属性设置窗体。
在此项目属性窗体中通用选项卡的启动对象中选择MDIfrmMain项,将这一多文档窗体作为程序的启动窗体。
图4—1菜单结构
(1)登录模块的设计:
此模块的功能是检查管理员是否有进入系统的权限。
用到的主要控件为二个text、两个label和两个Button按钮。
窗体界面如图4-2所示。
图4-2登录窗体的界面
在此模块中管理员可以选择相应的管理员帐号进行登录,减去了忘记帐号或帐号名输入不方便的烦恼。
(2)主页面模块的设计:
此模块是系统服务器端的主要控制界面,通过菜单的选择,可以控制系统的所有功能,窗体界面如图4-3,4-4所示。
主界面的设计步骤:
1)设计主界面控件布局:
在主界面的布局中使用了工具栏(ToolBar)、时钟控件(timer)和图象列表(ImageList)等非Vb标准控件。
2)工具栏的设置:
给工具栏添加按钮
3)添加菜单:
菜单的使用是为了更好的给用户提供功能指引。
工具栏列表
系统通过Timer控件在状态栏中显示系统的当前时间,Timer控件的时间间隔是1000,也就是1秒钟,这样状态栏中的时间每秒钟都会变化,达到显示系统时钟的目的,具体实现代码为:
PrivateSubTimer1_Timer()
StatusBar1.Panels
(2).Text=Date&""&Time
EndSub
(4)创建系统主界面
当系统运行时,首先进入登录界面,当输入帐号,密码合法时,则启动系统主界面。
图4-4系统主窗体的界面
5)用户进入客房需要必要的登记来完成如图:
图4-5用户登记界面
图4-6已经登记的用户
(6)退房信息:
当旅客离开宾馆时,需要为其办理退房手续,在这过程中需要在旅客退房信息表中添加记录信息,以及修改客房信息表,改变客房状态。
旅客退房信息窗体,工作界面设计情况如图:
图4-7退房登记表
(7)查询住户信息:
此界面用于查询房间状态如是否有所需的类型或是否为空房或满房,可以全部浏览,也可以按照查询条件来查找,如图:
图4-8客房状态界面
(8)查询客房:
客查询窗体主要功能是实现客房信息查询显示,查询方式可以是按旅客姓名,登记号也可以按房间号查询。
工作界面如图:
图4-9查询住户登记表
(9)客房情况打印表:
图4-10客房情况打印表
5.3代码设计
一、酒店管理信息系统程序代码:
PrivateSubCmdOK_Click()
Dims1AsString
DimiAsInteger
DimjAsInteger
Dima(18)AsString
j=Len(txtUserName.Text)
s1=txtUserName.Text
DimcAsInteger
c=1
Fori=1Toj
a(i)=Mid(s1,i,1)'逐一判断字符的合格化
Ifa(i)=""Then
MsgBox"Error",vbOKOnly,"Error"
ExitSub
ElseIfa(i)="<"Then
MsgBox"Error",vbOKOnly,"Error"
ExitSub
ElseIfa(i)=">"Then
MsgBox"Error",vbOKOnly,"Error"
ExitSub
ElseIfa(i)="="Then
MsgBox"Error",vbOKOnly,"Error"
ExitSub
ElseIfa(i)=""Then
MsgBox"Error",vbOKOnly,"Error"
ExitSub
ElseIfa(i)="~"Then
MsgBox"Error",vbOKOnly,"Error"
ExitSub
ElseIfa(i)=","Then
MsgBox"Error",vbOKOnly,"Error"
ExitSub
ElseIfa(i)="'"Then
MsgBox"Error",vbOKOnly,"Error"
ExitSub
EndIf
c=c+1
txtUserName.SetFocus
Nexti
DimstrusernameAsString
DimstrpasswordAsString
StaticintlogintimesAsInteger
IfTrim(txtUserName.Text)=""Then
MsgBox"用户名不能为空!
",vbOKOnly+vbCritical,"错误"
ExitSub
EndIf
opentableadousers,"usersinfo"
adousers.Refresh
adousers.Recordset.Find"姓名="&"'"&txtUserName.Text&"'",,adSearchForward,1
IfNotadousers.Recordset.EOFThen
strusername=adousers.Recordset!
姓名
strpassword=adousers.Recordset!
密码
Else
strusername=""
strpassword=""
EndIf
Ifstrusername=txtUserName.TextAndstrpassword=txtPassword.TextThen
adousers.Recordset.Close
UnloadMefrmmdi.Show
Else
MsgBox"用户名或密码不对!
",vbOKOnly+vbInformation,"提示"
intlogintimes=intlogintimes+1
Ifintlogintimes>=3Then
adousers.Recordset.Close
End
EndIf
txtPassword.SetFocus
SendKeys"{HOME}+{END}"
EndIf
EndSub
PrivateSubcmdcancel_click()
UnloadMe
EndSub
OptionExplicit
PrivateSubCommand1_Click()
Withfrmmdi.adoroom.Recordset
IfNottxtroomno.LockedThen
IfTrim(txtroomno.Text)=""Then
MsgBox"房间号不能为空!
",vbOKOnly+vbInformation,"提示"
txtroomno.SetFocus
ExitSub
EndIf
EndIf
!
房间号=Trim(txtroomno.Text)
!
客房等级=Trim(txtroomgrade.Text)
!
客房类型=Trim(txtroomtype.Text)
!
客房价格=Trim(txtroomprice.Text)
!
客房状态=Trim(txtroomstatus.Text)
!
客房备注信息=txtroominfo.Text
Update
UnloadMe
EndWith
EndSub
PrivateSubCommand2_Click()
UnloadMe
EndSub
退房登记实现代码:
PrivateSubCmdOK_Click()
Withfrmmdi.adoquit.Recordset
IfNottxtbookno.LockedThen
IfTrim(txtbookno.Text)=""Then
MsgBox"登记号不能为空!
",vbOKOnly+vbInformation,"提示"
txtbookno.SetFocus
ExitSub
EndIf
frmmdi.adoguest.Recordset.Find"登记号='"&Trim(txtbookno.Text)&
"'",,adSearchForward,1
Iffrmmdi.adoguest.Recordset.EOFThen
MsgBox"非法登记号!
",vbOKOnly+vbInformation,"提示"
txtbookno.SetFocus
SendKeys"{HOME}+{END}"
txtpaymoney.Text=""
ExitSub
EndIf
frmmdi.adoquit.Recordset.Find"登记号='"&Trim(txtbookno.Text)&"'",,adSearchForward,1
IfNotfrmmdi.adoquit.Recordset.EOFThen'有就提示,然后退出
MsgBox"已经有相同登记号!
",vbOKOnly+vbInformation,"提示"
txtbookno.SetFocus
SendKeys"{HOME}+{END}"
txtpaymoney.Text=""
ExitSub
EndIf
.AddNew
!
登记号=Trim(txtbookno.Text)
EndIf
!
付款金额=Val(Trim(txtpaymoney.Text))
!
登记日期=Trim(txtbookdate.Text)
!
退房时间=dtpquitdate.Text
Update
IfTrim(txtinfo.Text)=""Then
MsgBox"备注不能为空!
",vbOKOnly+vbInformation,"提示"
txtinfo.SetFocus
EndIf
!
退房备注信息=txtinfo.Text
Update
UnloadMe
frmmdi.adoroom.Recordset!
客房状态="空"
Withfrmmdi.adoguest.Recordset
Delete
EndWith
EndWith
EndSub
PrivateSubCommand1_Click()
IfoptroomThen
opentablefrmmdi.Adoroom1,"select*fromroomwhere(((room.房间号)like'"&Trim(txtvalue.Text)&"%"&"'))"
ElseIfoptgradeThen
opentablefrmmdi.Adoroom1,"select*fromroomwhere(((room.客房等级)like'"&Trim(txtvalue.Text)&"%"&"'))"'
ElseIfopttypeThen
opentablefrmmdi.Adoroom1,"select*fromroomwhere(((room.客房类型)like'"&Trim(txtvalue.Text)&"%"&"'))"
EndIf
dtgroomqueryinforefresh
EndSub
PrivateSubCmdOK_Click()
Dims1AsString
DimiAsInteger
DimjAsInteger
Dima(18)AsString
j=Len(txtUserName.Text)
s1=txtUserName.Text
DimcAsInteger
c=1
Fori=1Toj
a(i)=Mid(s1,i,1)
Ifa(i)=""Then
MsgBox"Error",vbOKOnly,"Error"
ExitSub
ElseIfa(i)="<"Then
MsgBox"Error",vbOKOnly,"Error"
ExitSub
ElseIfa(i)=">"Then
MsgBox"Error",vbOKOnly,"Error
MsgBox"Error",vbOKOnly,"Error"
ExitSub
ElseIfa(i)="="Then
MsgBox"Error",vbOKOnly,"Error"
ExitSub
ElseIfa(i)=""Then
MsgBox"Error",vbOKOnly,"Error"
ExitSub
ElseIfa(i)="~"Then
MsgBox"Error",vbOKOnly,"Error"
ExitSub
ElseIfa(i)=","Then
MsgBox"Error",vbOKOnly,"Error"
ExitSub
ElseIfa(i)="'"Then
MsgBox"Error",vbOKOnly,"Error"
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 酒店 管理 系统 课程设计