1、酒店管理系统课程设计第1章 需求分析1.1 系统概述 随着社会经济的发展,酒店、宾馆在服务行业扮演着越来越重要的角色。酒店行业的竞争表现在管理和服务水平的竞争,它影响到酒店的形象和声誉。这就要求通过先进的管理来提高服务质量,尽可能做到让客户满意。因此,非常需要一套酒店管理系统来对客房信息,经营情况以及客户信息进行管理。酒店管理系统为管理者制定决策判断提供了可行依据。判断提供迅速高效的、系统化的服务,避免手工处理的繁琐与误差,成为酒店、宾馆经营的重中之重。但是目前商业性的酒店管理软件大多数是舍用于大、中型酒店,其操作复杂,收费昂贵,还需专业维护。这就造成了很多小型酒店以及小型宾没有客房的管理软件
2、,对于其宾馆的经营造成管理的繁琐与混乱。所以开发一款社用于小型酒店或小型宾馆的客房管理软件时必须的。1.2 系统功能需求分析该系统的功能需求有如下几个方面:(1) 客房管理。主要用于对客房信息进行维护。功能包括对客房信息的添加、修改和删除已有的客户信息,对客房信息进行查询。(2) 住宿管理。主要用于对入住信息进行维护。功能包括对入住信息的添加、修改和查询。(3) 结算管理。主要用于对客房结账和对结算历史信息的查询。功能包括结账(计算费用、记录结账信息)和结算查询。第2章 管理系统平台的选用2.1 数据库系统的选择原则1、数据库系统采用易于集成的,开放的技术。2、产品质量优异,可靠性高,适于长期
3、运行,能支持关键应用。3、数据安全,保安型高。4、能提供分布式数据库功能。5、支持多种开发环境,软件开发容易。6、扩充性和升级能力强。2.2 系统开发工具的选择本次系统设计选用的是Visual Basic作为开发工具,因为Visual Basic 具有以下优越的功能:简单,易学,易用(1)快速完成应用任务(2)使用方便的工具栏(3)支持中英文输入法(4)用项目管理器统一界面第3章 酒店管理概述3.1系统数据需求1) 数据录入和处理的准确性和实时性。2) 数据的一致性与完整性。3) 数据的共享与独立性。3.2系统业务功能的需求(1) 实现客房信息管理功能(2) 实现客户信息管理功能(3) 实现预
4、定管理功能(4) 实现入住管理功能(5) 实现消费记账功能(6) 实现收银退房功能综上,我们将系统的功能大体划分为三大模块:权限管理:包括管理员的登录前台管理:包括客户信息的录入、客户预订和入住登记以及结算的管理等。后台报表管理:包括报表的打印3.3系统性能需求:为了保证系统能够长期、安全、稳定、可靠、高效的运行,系统应该满足以下的性能需求:(1)系统处理的准确性和及时性系统处理的准确性和及时性是系统的必要性能。在系统设计和开发过程中,要充分考虑系统当前和将来可能承受的工作量,使系统的处理能力和响应时间能够满足用户对信息的处理。(2)系统的开放性和系统的可扩充性系统在开发过程中,应该充分考虑以
5、后的可扩充性。例如系统权限和客房信息设置等模块也会不断的更新和完善。所有这些都要求系统提供足够的手段进行功能的调整和扩充。而要实现这一点,应通过系统的开放性来完成,既系统应是一个开放系统,只要符合一定的规范,可以简单的加入和减少系统的模块,配置系统的硬件。(3)系统的易用性本酒店客房管理系统面向的用户是酒店内工作人员,而有些使用人员往往对计算机并不是非常熟悉,所以系统操作上要求简单、方便、快捷,便于用户使用。这就要求系统能够提供良好的用户接口,易用的人机交互界面。(4)系统的响应速度系统设计中摒弃大量数据冗余,提出了优化数据库的解决方案,大量使用存储过程,大大提高系统响应时间和速度。第4章 系
6、统总体设计本部分主要介绍系统要实现的功能,搭好设计的总体框架,使我们对要开发的系统有一个系统、全面、确切的认识。4.1 系统功能模块设计结合前面需求分析阶段的结果进行综合处理,确定了客房管理系统需要完成的功能,主要划分为以下模块:1. 结算管理(1)结账 (2)结账查询2. 客房信息管理(1)设置客房标准添加客房标准 修改客房标准 删除客房标准(2)设置客房信息添加客房信息 修改客房信息 添加客房类型 查询客房信息3. 住宿信息管理(1) 添加入住信息 (2) 修改入住信息(3) 查询入住信息模块设计图如下:图4-1系统功能模块图4.2 系统结构设计系统的主要结构:系统的封面以表单开始,要求用
7、户输入登录,若密码错误,则自动退出,否则出现系统主菜单,接受用户的操作,操作完毕后用户可以从系统菜单中退出系统,系统运行的步骤如图:4.3系统数据流程图图4-3 系统数据流程图4.4 E-R图4.5 系统的运行要求软、硬件环境:硬件:客户机(CPU P200以上,内存:32M以上)、数据库服务器(CPU PIII800以上,内存:256M或以上。以Microsoft windows操作系统为工作平台。以Microsoft Visual Basic 6.0为开发工具。数据库环境是Microsoft Office Access 2003。第5章 详细设计与实现5.1 数据库设计(1)数据库需求分析
8、设计的数据库系统应用于酒店管理系统,所以必须充分满足酒店客房管理系统的各种要求。此系统要求记录每一次酒店客户的住宿登记、调房登记和退宿结账的操作信息,并允许系统用户对这些信息进行查询。另外,必须建立一些辅助项目表为这些操作信息提供数据来源。通过以上的分析,数据库设计必须满足以下几点:1(1)记录酒店客户住宿登记操作的信息。2(2)记录酒店客户退房结账操作的信息。3(3)记录酒店客房的相关信息。4(4)记录酒店客户的客房预订信息。5(5)记录系统用户的用户名、密码和操作权限。 (2)建立Access数据库及表在一个酒店管理系统中,数据库的地位是非常重要的,是一个系统正常运行的基础。本系统的数据库
9、是采用Microsoft公司的Access 2003设计的。在数据库的设计过程中,首先是收集、分析需求;再从需求抽象出一般的实体、关系和他们的属性;再将这些实体、关系和属性按照一定的规则转化为二元表结构。本系统中共有4数据表表3-1为Usersinfo管理员资料数据表。管理员资料数据表记录了所有管理的基本资料,管理员可添加、删除和查询该表。该表包括管理员ID、姓名、密码和权限等资料。表3-1为UsersInfo管理员资料数据表字段名类型大小说明姓名Text20管理人员帐号(主键)密码Text20管理人员密码(主键)权限Text1管理人员权限如下图所示:表3-2为add旅客入住登记表。add日主
10、登记表记录了入住旅客的基本个人信息、房间号、登记号等。表3-2旅客信息表为旅客的个人信息加入住客房信息数据结构表字段名类型大小说明登记号Text8旅客入住号(主键)姓名Text8旅客姓名(不为空)身份证号码Text18旅客身份证号(不为空)房间号Text3入住房间号(不为空)登记日期Text日期/时间旅客入住时间(不为空)性别Text3旅客性别籍贯Text8旅客籍贯如下所示:表3-3为room资料数据表。room料数据表记录了room基本资料,可供查询。该表主要包括了房间号、客房等级、客房类型、客房价格、客房状态、客房备注信息等基本资料。表3-2room资料数据表字段名类型大小说明房间号Tex
11、t3房间号(主键)客房等级Text8客房等级客房类型Text8客房类型(不为空)客房价格数字单精度型客房价格(不为空)客房状态Text3客房状态(不为空)客房备注信息备注8客房备注信息如下所示:表3-4为quit资料数据表。quit资料数据表记录了所有退房的基本资料,管理员可添加、删除和查询该表。类型的基本资料,包括登记号、登记日期、退房日期、付款金额、退房备注信息。表3-4为quit资料数据表字段名类型大小说明登记号Text8旅客入住号(主键)登记日期日期/时间旅客登记时间(不为空)退房时间日期/时间旅客退房时间(不为空)付款金额Text单精度型付费金额(不为空)退房备注信息Text8退房备
12、注信息如下所示:连接数据库:由于本系统是采用ADO对象访问数据库的技术,所以在VB中需要添加ADO库。添加的方法是在VB中选择“工程”“引用”命令,在对话框中选择Microdoft ActiveX Data Objects 2.0 Library,单击“确定”按钮。在程序设计的公共模块中,先定义ADO连接对象。语句如下:Public conn As New ADODB.connection 标记连接对象Dim connection As StringConnectionString = provider=microsoft.jet.oledb.4.0; & data source=carsha
13、le.mdbconn.Open ConnectionString5.2 创建主窗体以及主要窗体建立主窗体:单击”工程”-”添加MDI窗体”菜单,在弹出的对话框中单击”打开”按钮则为当前项目添加了一个MDI窗体。设置好MDI窗体属性后,设置此项目的属性。单击”工程”-”工程1属性”菜单,进入项目属性设置窗体。在此项目属性窗体中通用选项卡的启动对象中选择MDIfrmMain项,将这一多文档窗体作为程序的启动窗体。图41 菜单结构(1)登录模块的设计:此模块的功能是检查管理员是否有进入系统的权限。用到的主要控件为二个text、两个label和两个Button按钮。窗体界面如图4-2所示。图4-2 登
14、录窗体的界面在此模块中管理员可以选择相应的管理员帐号进行登录,减去了忘记帐号或帐号名输入不方便的烦恼。(2)主页面模块的设计:此模块是系统服务器端的主要控制界面,通过菜单的选择,可以控制系统的所有功能,窗体界面如图4-3,4-4所示。主界面的设计步骤:1)设计主界面控件布局:在主界面的布局中使用了工具栏(ToolBar)、时钟控件(timer)和图象列表(ImageList)等非Vb标准控件。2)工具栏的设置: 给工具栏添加按钮3)添加菜单:菜单的使用是为了更好的给用户提供功能指引。 工具栏列表系统通过Timer控件在状态栏中显示系统的当前时间,Timer控件的时间间隔是1000,也就是1秒钟
15、,这样状态栏中的时间每秒钟都会变化,达到显示系统时钟的目的,具体实现代码为:Private Sub Timer1_Timer() StatusBar1.Panels(2).Text = Date & & TimeEnd Sub(4)创建系统主界面当系统运行时,首先进入登录界面,当输入帐号,密码合法时,则启动系统主界面。图4-4 系统主窗体的界面5)用户进入客房需要必要的登记来完成如图:图4-5用户登记界面图4-6已经登记的用户(6)退房信息:当旅客离开宾馆时,需要为其办理退房手续,在这过程中需要在旅客退房信息表中添加记录信息,以及修改客房信息表,改变客房状态。旅客退房信息窗体,工作界面设计情况
16、如图:图4-7退房登记表(7)查询住户信息:此界面用于查询房间状态如是否有所需的类型或是否为空房或满房,可以全部浏览,也可以按照查询条件来查找,如图:图4-8 客房状态界面(8)查询客房:客查询窗体主要功能是实现客房信息查询显示,查询方式可以是按旅客姓名,登记号也可以按房间号查询。工作界面如图: 图4-9查询住户登记表(9)客房情况打印表:图4-10客房情况打印表5.3 代码设计一、酒店管理信息系统程序代码:Private Sub CmdOK_Click() Dim s1 As StringDim i As IntegerDim j As IntegerDim a(18) As Stringj
17、 = Len(txtUserName.Text)s1 = txtUserName.TextDim c As Integerc = 1For i = 1 To ja(i) = Mid(s1, i, 1) 逐一判断字符的合格化If a(i) = ThenMsgBox Error, vbOKOnly, ErrorExit SubElseIf a(i) = ThenMsgBox Error, vbOKOnly, ErrorExit SubElseIf a(i) = = ThenMsgBox Error, vbOKOnly, ErrorExit SubElseIf a(i) = ThenMsgBox E
18、rror, vbOKOnly, ErrorExit SubElseIf a(i) = ThenMsgBox Error, vbOKOnly, ErrorExit SubElseIf a(i) = , ThenMsgBox Error, vbOKOnly, ErrorExit SubElseIf a(i) = ThenMsgBox Error, vbOKOnly, ErrorExit SubEnd Ifc = c + 1txtUserName.SetFocus Next iDim strusername As StringDim strpassword As StringStatic intlo
19、gintimes As IntegerIf Trim(txtUserName.Text) = ThenMsgBox 用户名不能为空!, vbOKOnly + vbCritical, 错误Exit SubEnd Ifopentable adousers, usersinfoadousers.Refreshadousers.Recordset.Find 姓名= & & txtUserName.Text & , , adSearchForward, 1If Not adousers.Recordset.EOF Thenstrusername = adousers.Recordset!姓名strpas
20、sword = adousers.Recordset!密码Elsestrusername = strpassword = End IfIf strusername = txtUserName.Text And strpassword = txtPassword.Text Thenadousers.Recordset.CloseUnload Me frmmdi.ShowElseMsgBox 用户名或密码不对!, vbOKOnly + vbInformation, 提示intlogintimes = intlogintimes + 1If intlogintimes = 3 Thenadouser
21、s.Recordset.CloseEndEnd IftxtPassword.SetFocusSendKeys HOME+ENDEnd IfEnd SubPrivate Sub cmdcancel_click()Unload MeEnd SubOption ExplicitPrivate Sub Command1_Click()With frmmdi.adoroom.RecordsetIf Not txtroomno.Locked ThenIf Trim(txtroomno.Text) = ThenMsgBox 房间号不能为空!, vbOKOnly + vbInformation, 提示txtr
22、oomno.SetFocusExit SubEnd IfEnd If!房间号 = Trim(txtroomno.Text)!客房等级 = Trim(txtroomgrade.Text)!客房类型 = Trim(txtroomtype.Text)!客房价格 = Trim(txtroomprice.Text)!客房状态 = Trim(txtroomstatus.Text)!客房备注信息 = txtroominfo.TextUpdateUnload MeEnd WithEnd SubPrivate Sub Command2_Click()Unload MeEnd Sub 退房登记实现代码:Priva
23、te Sub CmdOK_Click()With frmmdi.adoquit.RecordsetIf Not txtbookno.Locked Then If Trim(txtbookno.Text) = ThenMsgBox 登记号不能为空!, vbOKOnly + vbInformation, 提示txtbookno.SetFocusExit SubEnd Iffrmmdi.adoguest.Recordset.Find 登记号= & Trim(txtbookno.Text) & , , adSearchForward, 1If frmmdi.adoguest.Recordset.EOF
24、 Then MsgBox 非法登记号!, vbOKOnly + vbInformation, 提示 txtbookno.SetFocusSendKeys HOME+ENDtxtpaymoney.Text = Exit SubEnd Iffrmmdi.adoquit.Recordset.Find 登记号= & Trim(txtbookno.Text) & , , adSearchForward, 1If Not frmmdi.adoquit.Recordset.EOF Then 有就提示,然后退出MsgBox 已经有相同登记号!, vbOKOnly + vbInformation, 提示txtb
25、ookno.SetFocusSendKeys HOME+ENDtxtpaymoney.Text = Exit SubEnd If.AddNew!登记号 = Trim(txtbookno.Text)End If!付款金额 = Val(Trim(txtpaymoney.Text)!登记日期 = Trim(txtbookdate.Text)!退房时间 = dtpquitdate.TextUpdateIf Trim(txtinfo.Text) = ThenMsgBox 备注不能为空!, vbOKOnly + vbInformation, 提示txtinfo.SetFocusEnd If!退房备注信息
26、= txtinfo.TextUpdateUnload Mefrmmdi.adoroom.Recordset!客房状态 = 空With frmmdi.adoguest.RecordsetDeleteEnd WithEnd WithEnd SubPrivate Sub Command1_Click()If optroom Thenopentable frmmdi.Adoroom1, select * from room where (room.房间号) like & Trim(txtvalue.Text) & % & )ElseIf optgrade Thenopentable frmmdi.Ad
27、oroom1, select * from room where (room.客房等级) like & Trim(txtvalue.Text) & % & ) ElseIf opttype Thenopentable frmmdi.Adoroom1, select * from room where (room.客房类型) like & Trim(txtvalue.Text) & % & )End IfdtgroomqueryinforefreshEnd SubPrivate Sub CmdOK_Click() Dim s1 As StringDim i As IntegerDim j As
28、IntegerDim a(18) As Stringj = Len(txtUserName.Text)s1 = txtUserName.TextDim c As Integerc = 1For i = 1 To ja(i) = Mid(s1, i, 1)If a(i) = ThenMsgBox Error, vbOKOnly, ErrorExit SubElseIf a(i) = ThenMsgBox Error, vbOKOnly, ErrorMsgBox Error, vbOKOnly, ErrorExit SubElseIf a(i) = = ThenMsgBox Error, vbOKOnly, ErrorExit SubElseIf a(i) = ThenMsgBox Error, vbOKOnly, ErrorExit SubElseIf a(i) = ThenMsgBox Error, vbOKOnly, ErrorExit SubElseIf a(i) = , ThenMsgBox Error, vbOKOnly, ErrorExit SubElseIf a(i) = ThenMsgBox Error, vbOKOnly, ErrorExit SubE
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1