酒店管理系统课程设计.docx

上传人:b****6 文档编号:4578524 上传时间:2022-12-06 格式:DOCX 页数:25 大小:426.59KB
下载 相关 举报
酒店管理系统课程设计.docx_第1页
第1页 / 共25页
酒店管理系统课程设计.docx_第2页
第2页 / 共25页
酒店管理系统课程设计.docx_第3页
第3页 / 共25页
酒店管理系统课程设计.docx_第4页
第4页 / 共25页
酒店管理系统课程设计.docx_第5页
第5页 / 共25页
点击查看更多>>
下载资源
资源描述

酒店管理系统课程设计.docx

《酒店管理系统课程设计.docx》由会员分享,可在线阅读,更多相关《酒店管理系统课程设计.docx(25页珍藏版)》请在冰豆网上搜索。

酒店管理系统课程设计.docx

酒店管理系统课程设计

 

第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"

ExitSub

EndIf

c=c

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 英语

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1