(精品)小型酒店管理系统的设计与开发毕业论文设计

更新时间:2023-03-08 08:55:06 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

优秀论文 审核通过 未经允许 切勿外传

玉林师范学院本科生毕业论文(设计)

小型酒店管理系统的设计与开发

The design and develop of the Small Hotel Management System

院 系 数学与计算机科学系 专 业 计算机科学与技术 班

级 2008级(专升本)

姓 名 刘 芳 学 号

指导教师单位 数学与计算机科学系 指导教师姓名 周培春 指导教师职称 讲师

小型酒店管理系统的设计与开发

计算机科学与技术2008级专升本 刘 芳

指导教师 周培春

摘要

当今社会,酒店种类和客流的不断增加,对于管理造成了困难。采用计算机来管理酒店和住客的信息,提高了查询的速度,节约了人力和物力资源,达到了预期的要求。

本系统根据小型酒店管理的现状及未来的发展方向,结合有关小型酒店管理当中的管理学实践,设计了小型酒店管理系统。

本系统是用于小型酒店服管理的系统软件。系统数据的管理采用了操作系统的最新管理方式,用户操作将会更简单、更直观、更方便。系统中各业务管理模块可以单机独立运行。使用本系统,可以大幅度提高酒店服务管理的工作效率。

该系统应充分利用信息技术提高小型酒店客房的管理水平、服务水平。小型酒店管理系统要实现住宿登记、宿费提醒、追加押金、调房登记、退房结账、查询统计等等功能。其中宿费提醒可以在住宿费超过押金时预警,提示前台要客人补交押金,该功能可明显提高对住宿人员宿费的有效管理。将动态实时的住宿登记、客房调整、追加押金等有机地联系在一起,对小型酒店客房进行全方位的管理。

关键词:酒店管理系统; VB; ACCESS 2003; 数据库

The design of the Small Hotel Management System

Supervisor: Zhou Peichun

Abstract

At present, the small the difficulty to the management. Using the computer to manage the , enhanced the inquiry speed, saved the workforce and the resources and this system, we designs the small of the small the future and small will be simpler. The various business management modules in this system may runs independently. These advantages can increase the biggest efficiency of the guest the term of the management.

This system may make full use of information technology to increase the management level, service level of the such as the lodgings registration, the lodging allowance reminder, supplements the deposit, the accent room registration, returns a , the guest room adjustment, the sales report form, will supplement the deposit and so on organically to relate in together, will carry on the management well to the small Database Connectivity) 和OLE DB(OLE Database) 基础之上的基于对象的高层数据库API(Application Programming Interface) ,ADO 通过封装在低层OLE DB 功能中的不同对象、方法和属性以提供高层接口. 由于ADO 基于ActiveX 标准,因此具有很强的可扩展性.ADO提供两种接口,一种是通过OLE 自治提供,用于不使用指针的语言(如脚本语言) ; 另一种通过Vtable (虚拟函数表) 向使用指针的语言提供接口(如C ++ ) ,可实现与各种数据库的连接. ADO 包含了DAO(Data Access Object) 和RDO (Remote Data Object) 所有的功能,并且又增加了新的功能,是DAO 和RDO 的超集.ADO 具有速度高、对象层次简单、低开销、低磁盘空间等优点,是当前基于对象的最好的数据库接口. 1.5系统运行环境

硬件环境:CPU:Intel P4 2.0GHZ或更高、内存:64MB以上、硬盘:1G以上、显卡:32MB显存以上、光驱:52X CD—ROM(或DVD—ROM)

软件环境:Windows9X或者更高版本的操作系统、Microsoft Access 2000以上数据库、Microsoft Basic 6.0开发平台。 1.6系统开发技术

(1)Microsoft Basic 6.0 (2)Microsoft Access数据库

2 系统分析

系统分析是应用系统思想和方法,把复杂的对象分解成简单的组成部分,找出这些部分的基本属性和彼此间的关系。系统分析是解决目标系统“做什么”的问题,本章首先确定了系统所要达到的功能需求,然后将需求进一步细化转成业务需求,并对业务需求进行详细分析,解决了系统“做什么”的具体内容。 2.1 系统的可行性研究

也称为可行性研究,是在系统调查的基础上,针对新系统的开发是否具备必要性和可能性,对新系统的开发从技术、经济、社会的方面进行分析和研究,以避免投资失误,保证新系统的开发成功。可行性研究的目的就是用最小的代价在尽可能短的时间内确定问题是否能够解决。该系统的可行性分析包括以下几个方面的内容。 2.1.1技术可行性

在开发技术方面,酒店管理系统开发技术非常成熟,开发工具很多。本人采用以下的组合可以满足小型酒店管理系统开发的要求 :Microsoft windows xp操作系统、PC机、 Microsoft Office Access2003。微软公司的Office Access2003数据库系统,适用于小型的系统开发,用于存储和管理系统所需要的数据。它以操作简单、易学易用的特点而受到大多数用户的青眯。因此,系统的软件开发平台已成熟可行。硬件方面,科技飞速发展的今天,硬件更新的速度越来越快,容量越来越大,可靠性越来越高,价格越来越低,其硬件平台也完全能满足此系统的需要。 2.1.2经济可行性

使用本小型酒店管理系统可提高酒店客房管理水平,把大量繁琐工作简单化,能够有效地节省人力物力,并能够准确地进行统计和计算,避免人工统计或计算所带来的差错,保证酒店管理高效而有序地进行。

综上所述,此系统开发目标已明确,在技术、经济等方面都可行,并且投入少、见效快。因此系统的开发是完全可行的。 2.2系统需求分析

桂湖酒店是一家比较小型的酒店,设施较齐全。随着信息技术的发展和外

务对酒店的要求越来越高,该酒店已明显觉得手工管理已不能适应当前酒店高速发展的需要。在意识到使用计算机管理的重要性后,决定主要针对客房管理设计出符合要求的小型酒店管理系统。 2.3系统的功能框架

根据以上的分析,小型酒店系统功能框架划分如图2.3所示。

图2.3系统功能框架划分

Fig2.3 The partitionthe of funcion frame of the system

2.4系统业务流程图

系统的流程图设计。系统启动后进入屏幕展示窗体可以大致了解本系统的开发环境和数据库情况等。使用系统登录时用户ID和密码都要自己手动输入。不同的用户对系统具有不同的管理权限。管理员可以对客房信息进行查询、打印、登记,也可以使用多种实用工具如:还可以修改自己的用户密码,还可以通过系统维护模块对系统进行数据库的管理,可以备份数据、恢复数据、初始化数据。

具体系统的流程图如下所示:

图2.4 系统操作流程

Fig.2.4 The flow of system operation

3系统结构分析和设计

3.1关系模型设计

在开发小型酒店管理系统时,对客户的信息的管理必不可少,通过对系统进行的需求分析、业务流程设计以及系统功能结构的确定,规划出系统中使用的数据库实体对象及实体E-R图。

客房入住需要以客人信息及入住信息进行登记,这就存在一个登记信息实体,其实体E-R图如图3.1所示:

Fig.3.1 the E-R chart of registration information table

在此系统中,客房是一个重要的实体,客房实体包含了客房的基本配置信息,以及当前房间状态 ,其E-R图如图3.2所示:

Fig.3.2 the E-R chart of registration rooms table

客人退房时需要对退房信息进行登记,退房登记实体包含人的基本信息以及对房费进行结算登记的信息,退房登记实体的E-R图如图3.3所示:

Fig.3.3 the E-R chart of check registration table

4数据库设计

4.1Microsoft office Access2003简介

Microsoft Access是一种关系式数据库,是由微软公司开发的。关系式数据库由一系列表组成,表又由一系列行和列组成,每一行是一个记录,每一列是一个字段,每个字段有一个字段名,字段名在一个表中不能重复。表与表之间可以建立关系(或称关联,连接),以便查询相关联的信息。Access数据库以文件形式保存,文件的扩展名是MDB。Access 数据库由六种对象组成,它们是表、查询、窗体、报表、宏和模块。表(Table)是数据库的基本对象,是创建其他5种对象的基础。表由记录组成,记录由字段组成,表用来存贮数据库的数据,故又称数据表。查询(Query)可以按索引快速查找到需要的记录,按要求筛选记录并能连接若干个表的字段组成新表。窗体(Form) 提供了一种方便的浏览、输入及更改数据的窗口。还可以创建子窗体显示相关联的表的内容。窗体也称表单。报表(Report) 的功能是将数据库中的数据分类汇总,然后打印出来,以便分析。宏(Macro) 相当于DOS中的批处理,用来自动执行一系列操作。模块(Module) 的功能与宏类似,但它定义的操作比宏更精细和复杂,用户可以根据自己的需要编写程序。 4.2数据库表结构设计

该系统使用了Access数据库,名称为JDGL.mdb,其各表的功能和具体设计结构如下:

4.2.1用户信息表(tb_user)

功能是保存系统的用户数据,其结构如表4.1所示:

表4.1用户信息表

Table4.1The table of user information

字段名称 操作员 密码

4.2.2登记信息表(tb_djb)

功能是用来保存客人住宿时的住宿登记信息,其结构如表4.2所示:

表4.2登记信息表

Table4.2The table of registration information

字段名称 凭证号码 姓名 证件名称 证件号码 详细地址 房间号 客房类型 客房价格 住宿日期 住宿时间 住宿天数 应收宿费 预收金额 提醒日期 退宿日期 备注 标志 数据类型 文本 文本 文本 文本 文本 文本 文本 货币 日期时间 日期时间 数字 货币 货币 日期时间 日期时间 文本 文本 字段大小 20 50 20 20 50 20 10 8 8 8 双精度型 8 8 8 8 50 1 数据类型 文本 文本 字段大小 10 50

日期 时间 退宿时间 提醒时间 摘要 BZ

日期时间 日期时间 日期时间 日期时间 文本 数字 8 8 8 8 200 双精度型 4.2.3客房基础信息表(tb_kf)

功能是用来保存客房基础信息,其结构如表4.3所示:

表4.3客房信息表

Table4.3The table of rooms information

字段名称 房间号 房间类型 价格 房态 标志 备注 配置 使用设置 营业日期

数据类型 文本 文本 货币 文本 是否 文本 文本 文本 日期时间 字段大小 30 50 8 4 1 100 100 10 8 4.2.4退房登记信息表(tb_tfd)

功能是用来保存客人退宿登记信息,其结构如表4.4所示:

表4.4 参考文献信息表

Table4.4The table of check rooms information

字段名称 凭证号码 姓名 数据类型 文本 文本 字段大小 20 50

证件名称 证件号码 详细地址 房间号 客房类型 客房价格 住宿日期 住宿时间 住宿天数 应收宿费 金额总计 预收宿费 退还宿费 退房日期 退房时间 备注 BZ

文本 文本 文本 文本 文本 货币 日期时间 日期时间 数字 货币 货币 货币 货币 日期时间 日期时间 文本 数字 20 20 50 20 10 8 8 8 双精度型 8 8 8 8 8 8 50 双精度型 5系统详细设计与实现

5.1系统公共模块设计

在系统中使用公共模块,可节省系统资源,实现代码重用。在本系统中新建一个Module模块,此模块主要用于共享数据库边接。其中ESQL()函数用于打开到数据库的连接,StrCnn()函数用于返回于一个连接串。公共模块代码如下: Public adocon As New ADODB.Connection '创建ADODB.Connection对象 Public adoRs As New ADODB.Recordset '创建ADODB.Recordset对象 Public Sub Main() '打开数据库连接 adocon.Open

\

Source=\

&

App.Path & \

End Sub

Public Function ESQL(ByVal sql As String) As ADODB.Recordset '定义函数 Dim cnn As ADODB.Connection '定义连接 Dim rs As ADODB.Recordset '定义记录集 Set cnn = New ADODB.Connection '创建连接 cnn.Open StrCnn '打开连接 Set rs = New ADODB.Recordset

rs.Open Trim(sql), cnn, adOpenKeyset, adLockOptimistic Set ESQL = rs End Function

Public Function StrCnn() '返回一个数据库连接

StrCnn = \& \End Function 5.2主窗体的设计

在登录窗体对话框中输入正确的操作员和操作员密码后才能进到主窗体。窗体如图5.2所示:

图5.2登录窗体对话框 Fig5.2 Login form dialog box

其中“确定”与“取消”按扭,采用的是.ico图标。 主要代码如下: Private Sub Image1_Click() Static itimes As Integer

Main.StatusBar1.Panels(4).Text = Text1.Text

Adodc1.RecordSource = \操作员='\+ \

'验证操作员及密码 Adodc1.Refresh

If Adodc1.Recordset.RecordCount > 0 Then '如果记录数大于零 If Text2.Text = Adodc1.Recordset.Fields(\密码\ '验证密码 Load Main Main.Show Unload Me Else

If Text2.Text <> Adodc1.Recordset.Fields(\密码\ MsgBox \密码错误,请重新输入!\系统提示\ itimes = itimes + 1 Text2.Text = \ Text2.SetFocus End If End If Else

MsgBox \操作员不存在,请重新输入!\系统提示\ itimes = itimes + 1 Text1.Text = \ Text2.Text = \ Text1.SetFocus End If

If itimes = 3 Then '错误3次,退出系统

MyMsg = MsgBox(\输入错误,请向系统管理员查询!\系统提示\

If MyMsg = vbOK Then End End If End Sub

5.3主窗体的设计与实现

程序启动后,在系统登录界面验证完操作员和操作员密码后,将进入程序主窗体。在程序主窗体中通过选择菜单命令或单击工具栏中的按钮,可调用相应程序窗体或进行相应操作;可根据操作员不同,确定操作员的相应权限,在主窗体状态栏中显示了系统时间和当前系统操作员。主窗体界面如下图5.3所示:

图5.3 主窗体界面 Fig. 5.3 The Main form interface

该系统主窗体主要通过菜单命令实现调出各个窗体或执行相应操作。同时在主窗体和添加一个Toolbar控件,作为工具栏。通过Toolbar控件的Click事件,也可实现调出相应窗体或执行相应操作。

使用Button对象的Key属性标识被单击的按钮。例如,在主窗体模块中单击工具栏中的按钮,发生ButtonClick事件,并用Key属性标识被单击的按钮。代码如下:

Private Sub Toolbar1_ButtonClick(ByVal Button As MSComctlLib.Button) Select Case Button.Key Case \

zsdj_Click '调入住宿登记 Case \

tf_Click '调入退宿结账 Case \

zscx_Click '调入住宿查询 Case \

sftx_Click '调入提醒 Case \ '重新登录 Load main_Login main_Login.Show Case \

If MsgBox(\确定退出该系统?\系统提示\ End End If End Select End Sub

单击主窗体中的菜单项,通过菜单命令实现调出各个窗体或执行相应操作,在各子菜单的Click事件下实现相应操作。部分代码如下: Private Sub sjbf_Click() '调入数据备份 main_sjbf.Show Main.Enabled = False End Sub

Private Sub sjhf_Click() '数据恢复 main_sjhf.Show

End Sub ??

Private Sub ma_Click() '调入密码设置 main_mmsz.Show Main.Enabled = False End Sub

5.4住宿登记模块设计与实现

程序启动后,选择菜单栏中“住宿管理”“住宿登记”命令,或直接单击工具栏中的“登记”按钮,将打开住宿登记模块。在住宿登记模块中能够自动生成住宿登记凭证号码,提供空闲房间供用户选择,实现客人住宿登记,收取客人预交宿费,实际宿费、宿费提醒时间、退宿时间、打印住宿登记单据。住宿登记模块界面如下图5.4所示:

图5.4 住宿登记窗体界面

Fig. 5.4The Accommodation Registration form interface

住宿登记模块主要用于录入客人入住信息,此窗体包含了大量的文本框和时间控件等,但这些控件功能都比较简单,没有复杂的属性设置。

打开住宿登记模块,单击“登记”按钮,开始进行住宿登记。“登记”按钮的Click事件主要实现设置控件有效和无效、自动生成登记凭证号码等功能。自动生成登记凭证号码的主要代码发下:

Adodc2.ConnectionString = \& App.Path & \

Adodc2.RecordSource = \凭证号码\ '按凭证号码排序数据 Adodc2.Refresh

If Not Adodc2.Recordset.EOF Then Adodc2.Recordset.MoveLast '移动记录集到最后一条记录

If lsph.Text = \ '当lsph值为空为凭证号码文本框赋值

If lsph.Text <> \ '当lsph值不空时 y1.Text = Month(Fdate) '把当前月份赋给y1

y2.Text = Month(Left(lsph.Text, 10)) '把lsph中的月份赋给y2 If y1.Text = y2.Text Then '如果y1文本框中内容与y2相同 bh.Text = Fdate & \& Format(Val(Right(lsph.Text, 3)) + 1, \ '为凭证号码文本框赋值

Text2.Text = Val(Right(lsph.Text, 3)) + 1 'text1中存储lsph文本框中后三位数 End If

If y1.Text <> y2.Text Then '如果y1文本框中内容与y2不同 bh.Text = Fdate & \ '为凭证号码文本框赋值 End If End If

当住宿信息登记完成后,“打印”按钮处于可用状态,可以单击“打印”按钮打印住宿证。主要代码如下: Private Sub comprint_Click()

On Error GoTo 1 '出错转向标签“1” Dim X As Printer '打印住宿登记单据

Printer.Height = 8000: Printer.Width = 8000 '设置高度和宽度 Printer.CurrentX = 1100: Printer.CurrentY = 300 '设置打印位置 Printer.FontSize = 12 '设置字体大小 Printer.Print \桂湖酒店客房 (住宿证) \ '打印文字 Dim A, B, C, d As Integer '定义变量

A = 100: B = 500: C = 4800: d = 400 '为变量赋值 Printer.FontSize = 10 '设置字体大小 Printer.CurrentX = 100 + A '设置打印横坐标 Printer.CurrentY = B + 200 '设置打印纵坐标

Printer.Print d & \ NO.\ '打印日期、时间和凭证号码

B = B + d '为变量B赋值 ??

Printer.Line (A, B + 100)-(C, B + 100) '打印一条直线 Printer.CurrentX = 100 + A Printer.CurrentY = B + 200

Printer.Print \操作员: \ 欢迎光临\ Printer.EndDoc '输出给打印机 Exit Sub

If Err.Number = 482 Then

MsgBox \请连接打印机!\系统提示\ Err.Clear End If End Sub

5.5调房登记模块设计与实现

在主窗体中,选择住宿管理菜单下的调房登记项,将进入调房登记模块。在调房登记模块中选择客人入住的房间号和空闲房间号,实现调房登记,系统只允许调换等价客房。调房登记界面如图5.5所示:

图5.5 调房登记窗体界面

Fig. 5.5The Housing Register Transfer form interface

调房登记模块主要实现对客人房间进行调换的过程,源房间号列表是查询登记表中当前所有住宿客人的房间号码,在选择源房间号后,实现生成目标房间号。

主要代码如下

Private Sub Combo3_Click()

Combo2.Clear '清空Combo2中的内容

If Combo3.Text <> \ '如果Combo3不为空 ?? End If

'赋值给bh.text等

With Adodc1.Recordset 'with快

If .Fields(\凭证号码\凭证号码\为“凭证号码”字段赋值 ??

End With '结束with快 End If End If

Combo2.Enabled = True 'Combo2可用 Texbz.Enabled = True 'Texbz可用 End If End Sub

5.6追加押金模块设计

在主窗体中,选择住宿管理菜单下的追加押金项,将进入追加押金模块。在“凭证号码”下拉列表框中选择客人入住的凭证号码,在“追加押金”文本框中输入客人续交的押金后,在相应的文本框中将显示客人的入住信息,并自动计算宿费提醒日期和时间,还可打印追加押金票据。追加押金界面如图5.6所示:

图5.6 追加押金窗体界面

Fig. 5.6The Additional Deposit form interface

在窗体的A事件中,主要实现查询数据表中住宿客人信息,对“凭证号码”列表框赋值。主要代码如下: Private Sub Form_Activate() Dim i As Integer

czy.Text = Main.StatusBar1.Panels(4).Text '赋值给czy.text,显示当前操作员

'查询住宿登记信息

Adodc1.RecordSource = \凭证号码 from tb_djb where 标志= '1'order by 凭证号码\

Adodc1.Refresh '刷新记录

If Adodc1.Recordset.RecordCount > 0 Then '如果记录数大于0 For i = 1 To Adodc1.Recordset.RecordCount '循环从1到记录数值

Combo1.AddItem Adodc1.Recordset.Fields(\凭证号码\从Combo1中添加项目

Adodc1.Recordset.MoveNext '记录下移 Next i End If End Sub

在追加押金模块中单击“确定”按扭,将把追加押金信息保存在数据表中,自动计算新的提醒日期,并设定其他控件的有效和无效。部分代码如下: Private Sub Command1_Click() '保存追加押金信息

If Text1.Text <> \ '查询住宿登记信息 ??

adoRs.Fields(\预收金额\= Val(Text3.Text) + Val(Text1.Text) '把已收押金和追加押金的和赋给预收金额字段 ??

Adodc2.Refresh '刷新数据 '编辑住宿登记预收信息 ??

MsgBox \请填写完整的数据,再保存!\系统提示\如果凭证号码为空或追加押金为空,提示消息 End If End Sub

5.6系统维护模块的具体实现

系统维护模块包括子模块数据备份、数据恢复和初始化。

数据备份模块,可以将系统的所有数据库内容都备份到指定的备份文件夹中。窗体如下图5.71所示:

图5.71 数据备份界面 Fig. 5.71The surface of Data backup

部分代码如下:

Private Sub Command1_Click()

A = MsgBox(\确定备份数据?\系统提示\ If A = vbYes Then

Command1.Enabled = False ProgressBar1.Visible = True

ProgressBar1.Max = UBound(workarea) ProgressBar1.Value = ProgressBar1.Min

For Counter = LBound(workarea) To UBound(workarea) workarea(Counter) = \ ProgressBar1.Value = Counter Open str1 For Binary As #1 Open str2 For Binary As #2 Do While Not EOF(1) Get #1, , char Put #2, , char Loop Close

本文来源:https://www.bwwdw.com/article/eai3.html

Top