HMS酒店客房管理系统 | ||||||||||||||||
前言 随着旅游业的发展,酒店业如雨后春笋般蓬勃发展起来,既是社会发展使然,更是人之常情所至,如此说,酒店业的兴旺正是应势而生,水到渠成的事。因而酒店宾馆的业务也将越来越繁忙,同时,人们对酒店服务及科学化管理的要求也越来越高,因此,酒店业的竞争日趋激烈,为在激烈的竞争得以生存与发展,提高酒店业科学化、现代化的管理水平,提高工作效率和服务质量,顺应时代发展,综合性的酒店计算机管理系统已变得不可缺少。计算机在酒店的使用已不单纯是减轻劳动强度、减少人员开支、提高核算精度以及减少财务错漏,更重要的是它能为整个企业的管理模式带入一种新的思维,一种新的理念,为高层管理人员提供大量丰富的基于企业管理经营过程中实际的数据为依托的决策支持系统,供酒店管理者决策参考。 本文简单介绍了酒店客房管理系统的开发过程及Delphi 7与SQL Server 2000的运用,讨论了酒店客房管理系统的开发方案,并详细地论述利用Delphi 7 SQL Server 2000平台,设计开发酒店管理系统的方法。采用SQL Server 2000软件建立酒店客房管理系统数据库,并用程序实现对这个数据库的操作和管理,建立一个较完善、高效、友好的操作平台,让软件用户更好的对酒店客房管理数据库进行维护和管理。 概述 .1 管理信息系统发展 管理信息系统是在20世纪,随着全球经济的蓬勃发展,众多经济学家纷纷提出了新的管理理论。20世纪50年代,西蒙提出了管理依赖于信息和决策的思想。同时期的维纳发表了控制论,他认为管理是一个控制过程。1958年,盖乐写到:“管理将以较低的成本得到及时准确的信息,做到较好的控制。”这个时期,计算机开始用于会计工作,出现数据处理一词。 年,Walter T.Kennevan给刚刚出现的管理信息系统下了一个定义:“以口头或书面形式,在合适的时间向经理,职员以及外界人员提供过去的,现在的预测未来的有关企业内部及其环境信息,以帮助他们进行决策。”在这个定义里强调了用信息支持决策,但并没有强调应用模型,没有提到计算机应用。 年,管理信息系统的创始人,明尼苏达大学的管理学教授 Gordon B.Davis 给了管理信息系统一个较完整的定义,即“管理信息系统是一个利用计算机软硬件资源,手工作业,分析,计划,控制和决策模型以及数据库的人—机系统。它能提供信息支持企业或组织的运行,管理和决策功能。”这个定义全面地说明了管理信息系统的目标,功能和组成,而且反映了管理信息系统在当时达到的水平。 管理信息系统(Management Information Systems 简称MIS)在现代社会已深入到各行各业,由于计算机技术的迅速发展和普及,MIS 事实上已成为计算机MIS。 是一个不断发展的新型学科,MIS的定义随着计算机技术和通讯技术的进步也在不断更新,在现阶段普遍认为MIS 是由人和计算机设备或其他信息处理手段组成并用于管理信息的系统。 .2 管理信息系统概念 管理信息系统的对象就是信息,信息是经过加工的数据,信息是对决策者有价值的数据。信息的主要特征是来源分散,数量庞大。信息来源于生产第一线,来源于社会环境,来源于市场,来源于行政管理等部门。信息具有时间性。信息的加工方式有多种形式。企业从信息管理的角度可划分为物流和信息流。生产过程是一个物流的投入产出过程,且是不可逆的过程。管理过程是信息流的过程,且具有信息反馈的特征。 .3 酒店客房管理系统应用背景 管理信息系统就是我们常说的MIS(Management Information System),在强调管理,强调信息的现代社会中它变得越来越普及。MIS是一门新的学科,它跨越了若干个领域,比如管理科学、系统科学,运筹学、统计学以及计算机科学。在这些学科的基础上,形成信息收集和加工的方法,从而形成一个纵横交织的系统。 所有的管理系统软件开发必须是能够满足用户的需求的,而用户的最大需求就是通过使用管理软件来提高自己企业的工作效率,获取更高的经济效益。酒店管理信息系统,是针对酒店的具体客房而开发的,为旅客提供迅速、高效的服务,减免手工处理的繁琐与误差,及时、准确地反映酒店客房的租住使用情况、旅客消费情况,从而提高酒店的服务质量,并配合现代化的酒店管理,获得更好的经济效益。 国内的酒店服务业得到了日新月异的发展。现代酒店作为一体化的接待场所,是一个旅游城市的窗口,也可以说是一个小型社会。作为一种以服务为主的无烟工业,世界各国对此行业的重视程度并不亚于其它工业。 酒店客房管理系统是酒店业务流程的重组整合用户信息资源,以更有效的方法来管理酒店业务,从而降低运营成本,为旅客提供更经济、快捷、周到的服务,保持和吸引更多的旅客,以求最终达到酒店利润最大化的目的。因此,很多酒店采用了酒店住宿管理系统来提高业务的自动化程度,使员工从日常事物中解放出来,有更加充分的精力发展自己的优势潜能。由此,酒店完成了提高内部运作效率和质量的任务,可以有更多的精力关注酒店与外部相关利益的互动,抓住商业机会。在酒店的诸多相关利益者当中,作为上帝的旅客的重要性日益突出,客户要求酒店更多的尊重他们,在服务的及时性、质量等方面提出了高要求。酒店在处理与外部客户的关系时,越来越觉得没有信息技术支持的客户关系管理力不从心,于是管理系统应运而生。 酒店是一个高层次的服务行业,采用计算机可提高服务质量,有良好的社会形象。 酒店的经济管理是以财务为核心,而行为管理主要集中于前台的业务处理,将住店客人的各类信息,住店期间发生的各项活动进行及时、有效的记录、反映、分析、统计,在此基础上,方便各部门进行工作的总结和分析,使这一层的领导能总体把握整个酒店的运行状况,经营情况和存在的问题,更有利于采取相应的决策,进行总体协调。 .4 软件开发背景 随着酒店行业的发展,使用酒店管理软件逐年升温,有条件的酒店或宾馆采用自主开发或委托开发的专用软件,部分大型酒店也已经使用市场上的有关酒店管理系统(一般价格也较贵);然而,占着绝大多数的中小型酒店、宾馆由于资金等方面原因没有使用酒店管理类软件,全凭原始的手工记录管理,效率低、易出错;因此在处理同一批业务时可能要在多套系统中重复登记,这不仅降低了工作效率还可能造成顾客不满情绪。因此开发了此酒店管理系统。 开发环境介绍 .1 Delphi7介绍 是Borland公司推出的应用程序开发工具。[1]它具有功能强大、易于学习和使用、编程效率高和易于调试等特点。Delphi7是可视化应用编程开发环境、面向对象编程语言Object Pascal、快速编译器和数据库编程工具等的完美结合。 在数据管理上是有效而且可靠的。建立下一代商务软件的应用程序开发人员被Delphi所吸引是有其原因的:使用Delphi,我们可以开发软件--操作所有类型的桌面数据库,如Paradox、dBase或MS Access。使用Delphi,我们也可以获得C/S的解决方案。 自带几十个预先建立的数据库组件,提供可视化的编程环境--包含集成的代码编辑器、数据库表单向导(Data Form wizard)、加速可浏览的数据库表单的创建、数据模块设计器(Data Module Designer)--用于多个表单间的数据访问共享。还有其他几十个Delphi提供的数据库专用工具也能加速代码的生成和降低编程的难度。 .2 Delphi常用组件 .2.1 数据访问组件(ADO) 数据访问控件组中的控件是数据库应用程序中经常用到的。它们负责连接到数据库,并且从数据库提取数据。但是这些控件不直接用于显示数据,因此,都属于不可视控件。组件成员如图1所示。 .控件允许客户端控制数据存储的属性和条件。使用控件可以控制象记录加锁,记录指针类型,记录指针定位,隔离级别和连接超时等。该控件它所连接的数据库中提供事务管理和恢复元数据等操作。 主要属性: 属性:通过设置这个属性,为数据存储指定连接对象。 .使用TADOQuery组件,利用SQL语句才可以采用SQL语句存取数据存储中的一个或多个数据表。使用SELECT语句从ADO数据存储中的数据表中读取数据。在ADO数据存储中的数据表或其他元数据对象要做像NSERT,DELETE,UPDATE,ALTERTABLE, CREATETABLE等的操作,可执行存储过程.主要属性有: 属性:从在组件的SQL语句中相同名称的参数指定匹配的当前字段值中,指定数据源组件。 属性:为进行ADO查询操作所包含的SQL语句的程序文本。 属性:该属性为TADOQuery控件的参数化查询提供了支持。Parameters的参数是针对控件的SQL语句动态建立的,如果控件的SQL语句不包含参数,那么Parameters属性对话框是空的,如果在打开对话框之前已经写好SQL语句,而且包含参数,那么对话框就会显示SQL语句中的所有参数。 下面介绍一下如何在应用程序中运行时使用控件进行查询。要在运行时执行查询,需遵循以下步骤: .用Close方法先关闭控件; .用Clear清空,写入SQL查询语句; .如果使用参数化查询,则要调用Parameters方法设置参数; .调用Open或ExecSQL方法激活TADOQuery控件 它们都是用来打开查询的,但Open方法是带回结果集的查询,例如当用Select命令进行的查询;而ExecSQL方法是不带回结果的查询 .2.2 数据控制组件(Data Controls) 数据控制组件组中的组件主要用于显示和编辑数据访问组件提供的数据。组件图标如图所示。 在本系统的设计中,主要用到了DBGrid组件,所以这里重点就介绍一下数据表格(TDBGrid)。 数据表格是在数据库应用中经常用到的显示数据的组件,可以算是Delphi中功能最强大的数据控制组件了,它是用来显示和编辑数据库表的组件,可以网格形式显示数据库表中的所有字段和全部记录,便于查询和修改。 .2.3 报表相关组件 报表组件QuickReport for Delphi是Delphi中的由Qusoft公司开发的一套用于制作报表的组件组。使用它可以制作一些很复杂的报表,但是在Delphi7中,系统安装时没有安装到组件面板上,如果用户要使用,必须自己安装。 .通常用TQuickRep控件创建一个连接某数据集的报表。它是最常见的被用于报表的组件.该组件除个属性外,其余属性 .3 SQL语言 .3.1 SQL语句 功能强大,是一种完备的数据处理语言,不仅用于数据库查询,而且用于数据库中的数据修改和更新,概括起来,它可以分成以下几组:[4] (Data Manipulation Language,数据操作语言):用于检索或者修改数据; (Data Definition Language,数据定义语言): 用于定义数据的结构; (Data Control Language,数据控制语言):用于定义数据库用户的权限。 用于修改数据库内容的 SQL 语句主要有以下三个: 语句还可以将多行数据添加到目标表中去,在这种形式的 Insert 语句中,新行的数据值不是在语句正文中明确地指定的,而是语句中指定的一个数据库查询。添加的值来自数据库自身的行,在某些特定的状态下,这是非常有用的。多行 Insert 语句为拷贝数据提供了一种紧凑而高效的方法。 在Delphi中,只有Select语句返回结果集合,通常使用ExecSQL对象方法、open方法或Active属性打开查询。语句主要用于从数据库中的一个或多个数据库表或视图中查询数据,起最简单的形式为: 上面的部分指的是数据库表中的字段名,个字段名之间有逗号隔开;如果要查询所有的字段,可以用来代替. 3.2 在Delphi中使用SQL语言[5] 在Delphi编程中,可以有很多方法使用SQL语言,但是最常见的使用方法是通过组件来使用。 . 在中使用SQL语言 我们可以在组件中的SQL属性中设置SQL语句。设计程序时,在该组件的属性对话框选择SQL属性,单击右边带省略号的按钮,就可以在打开的对话框中添加SQL语句。 .动态SQL语句 上面查询,主要是事先给定了查询条件,每次都是做同一个查询.而很多情况下,我们需要根据用户不同的输入和选择,在程序中动态地构造出相应的SQL语句,然后让组件执行该SQL语句。 .带参数的SQL语句 在动态SQL语句中,可以通过查询条件查询,但是对于其他部分则无法查询。总的来说,这种方式还不够灵活,如何构造一个更加灵活的查询程序,它可以满足我们对查询的需要,无论需要查询哪一列信息都可以实现,还是使用ADOQuery组件来实现带参数的查询。 大家都知道,要利用进行查询,就是把要实现的查询的SQL语句,写入到ADOQuery组件的SQL属性中,在SQL属性中按Pascal格式书写。 :s0,:s1,:s2 是SQL语句中的三个参数,引用时在前面加’:’,为ADOQuery控件编写动态SQL语句时,Delphi会自动建立一个Parameters数组,数组以0下标开始,依次对应动态SQL语句的参数,可以利用这些参数实现动态SQL语句。那么怎么给它们赋值呢? .4 Delphi数据库体系 目前的数据库开发按照形式可分为两类。一种是基于文件型数据库的桌面数据库应用开发,使用的数据格式一般为dBASE,Paradox或Access等。另外一类是基于数据库服务器的应用系统开发,这些数据库服务器都支持C/S的数据操作模式,客户程序使用SQL语言打开数据库,通过网络传送SQL [6]命令给数据库服务器,数据库服务器响应之后,将操作结果回传给客户程序。由图4可以看到,Delphi 数据库应用程序可以存取Paradox,dBASE,Local Interbase 及ODBC数据源等多种桌面型数据库,Delphi的客户/服务器应用程序还可以存取多种远端数据库服务器 .5 数据库访问技术(ADO编程) 本系统通过ADO技术实现该系统的全部功能,大家都知道,利用ADO技术实现的系统,可以脱离BDE单独运行,使用起来很方便。ADO是采用直接访问技术,是微软公司所推出的一套数据库访问规范。 在ADO的应用程序中,数据库是由ADO数据存储ADO DATA STORES连接访问的。所以要访问数据库,程序必须首先连接到数据存储。可以使用ADO控件,也可以共享由控件建立的连接来访问的到数据存储。 如果应用程序连接到数据存储,数据集控件就可以与ADO连接控件关联,访问数据库的数据表。 ADO提供了ADO控件来实现ADO功能,大部分的ADO控件都有类似的基于BDE的连接和数据集控件的功能。。 组件没有处理SQL语句的数据操纵语言的功能,因为它不能返回结果集。 需求分析 .1需求分析的定义 [9] 需求分析简单地说是分析用户的需求,它是数据库设计的起点,需求分析的结果能否准确的反映用户的实际要求,将直接影响到各个阶段的设计,并影响到设计结果是否合理和实用。 需求分析是通过详细的调查来实现的,针对现实世界要处理的对象(组织、部门、企业等),需 要充分了解原系统的工作概况,明确用户的各种需求,然后在此基础上确定新系统的功能,新系统应尽量充分考虑今后可能的扩充和改变。如上所述,详细调查的目的是为了弄清现行系统的基本功能以及信息流程,为新系统的逻辑模型提供基础,它是建立新系统的前期工作,也是进行系统分析和设计的重要基础工作。 因此要建立新的行之有效的酒店住宿管理系统,就必须对现行的酒店住宿工作流程进行全面、细致而充分的调查研究。 .2 问题定义 酒店在其运作期间,服务水平的高低,直接影响到酒店的形象和声誉,如:服务的安排是否周到;客人的要求是否能迅速、很好地得到满足;市场的预测分析是否快捷,准确等。这其中的核心问题就是: . 对每天大量的信息(客人、费用、房间等)的正确处理和保存,主要方式是基于文件、表格等介质的手工处理,而数据处理工作量大,出错率高,且出错后不易更改,缺乏系统规范的信息管理手段; . 同时工作人员工作效率极低,影响业务的工作进展; . 客户查询相关信息困难缓慢,造成每天有大量客户询问客房信息的情况,加大了酒店业务工作量; . 酒店管理人员对整个酒店住宿相关的日常信息掌握不及时、不准确。 基于此问题,我认为使酒店客房管理工作规范化,系统化,程序化,采用计算机这一现代化工具建立一个酒店客房管理系统作为管理的辅助手段是必须的。 .3 酒店客房管理系统的设计目标 采用成熟的计算机信息技术和手段,支持酒店住宿事务处理的全过程,加强日常业务活动中各种信息资源的管理和应用,提高酒店住宿管理的现代化水平,为酒店住宿业务提供全面的信息服务,即为广大住宿客户提供订房入住、退房、退订、查询、结帐等服务;系统能够对客户、客房信息及操作员信息提供存储、更新查询等功能,并对客户提供所需信息的查询功能。 提高酒店管理工作的效率同时减轻管理者的劳动强度;提高信息处理速度和准确性,提供新的处理功能和决策信息;为酒店提供更方便、快捷的服务项目,直接为客户管理服务。 .4 主要的功能需求分析 在现代的酒店服务行业中,由于客户流量骤增,传统的管理方法已经不能适合现代社会的需要,因此客房管理系统是各大中小型酒店所需要使用的一个管理系统。由于客房管理系统往往是一个大型的信息管理系统,它需要专业的开发人员才能完成复杂的功能制作,而且每个酒店的管理内容、服务方式都有所区别,而本人所设计开发的这个酒店客房管理系统作为毕业设计,不可能制作一个标准的适合全部酒店需要的通用客房管理系统,而只是作为一个小型客房管理系统。 系统管理模块包括操作员管理和密码管理。主要是针对操作员信息的操作。 客房管理模块,主要用来建立酒店可使用房间的资料库,以每个房间为单位,每个房间一条记录, 当然客人订房也就以房间为单位。在客房管理中,进行客房查询,可以查询当前所有客房情况,或已用或未用等的房间情况,根据不同的查询条件来查询所需要的房间。客房等级设置模块,主要用来设置房间的等级,不同等级的房间,价格不同,房间内的设施也不同。 订房管理主要包含三个模块,订房、查询和退订模块。订房主要功能是输入客人的基本资料,选中一客房,根据客人所选中客房的单价、折扣率,预计天数等,收取客人的押金。该模块还有一个子模块,用来查询当前所有的全部空闲的客房情况。订房查询模块是查询当前已订房但是还没有退房的全部客房情况。可以打印出目前查询到的资料。退订模块主要是为了处理这一情况。客人订房后,还没有使用因某种特殊情况需要退订,酒店可以不收住宿费,只收取一定的手续费,就可以退订,还有一种情况就是操作员一时输入错误,需要取消时,可以使用该模块。 客人退房结帐模块包括客人退房、查询当天收支情况,并且可以打印当天报表。这个模块主要用来处理客人退房、计算住宿时间、计算客人的实际住宿费和扣除押金后,应收金额等。查询当天的所有收支情况,包括客人所交的押金,包括客人结帐和扣除押金后多退少补的情况。 最后系统提供了数据查询摸块,主要针对历史信息进行查询,历史资金明细查询。 总之,本系统具有客房管理,订房管理,退房管理等功能模块,每个模块都可以进行相关的数据查询,能够进行每天打印财务报表等酒店应该具有的基本功能。 .5 安全性需求 本系统有五种权限(系统管理、客房管理、订房管理、收银管理、信息查询),系统管理员有权利行使所有的管理功能,普通操作员根据自己的身份也有不同的权限,考虑到系统的安全性,在用户进入系统之前进行合法用户检测。所以系统中应该有一个用户名和密码检测的模块,与此对应,还必须有操作员管理模块,它必须能够进行操作员的增加、删除和修改,并且能够进行授予相应的操作权限。同时普通用户能够修改自己的密码,但系统管理员能够修改所有人的密码。 .6 可行性研究 .技术可行性 根据新系统目标来衡量所需的技术是否具备,一般可从硬件、软件的性能要求、环境条件、技术人员和数量等方面去考虑和分析,其中开发人员的技术力量应首先考虑能力与水平,人员要求能够熟练的运用Delphi开发工具,具有一定的开发,编程能力,熟悉酒店管理系统的基本功能。 .经济可行性 估算新系统的开发费用和今后的运行、维护费用,估计新系统将获得的效率,并将费用与效率进行比较,看是否有利。 .运行可行性 对新系统运行后给现行系统带来的影响(包括组织机构、管理方式、工作环境、管理人员等)和 后果进行估计和评价。同时还应考虑现有管理人员的培训、补充,分析在给定时间里能否完成预定的系统开发任务等。 根据上述三方面进行可行性分析、研究后,我们认为该项目是可行的。 总结 酒店客房管理系统的基本功能得到了实现,但是发现还存在很多目前我没有办法解决的问题。并且让我感觉到软件工程和数据库设计的重要性。 在开发中还发现Delphi和SQL SERVER数据库的连接很方便,但是同样也存在很多问题,比如:用Delphi的ADOQuery组件向有标示字段的数据表中插入数据的时候,就会操作失败。 通过这次毕业设计,让我熟悉了软件的开发的过程,让我了解了软件工程的传统途径生命周期法。它的特点是: 是以任务抽象逻辑分析开始一个阶段一个阶段的进行开发。 前一个阶段的完成是开始后一个阶段工作的前提和基础。 后一个阶段任务的完成通常是一个阶段所提问题更进一步的解决。 每一个阶段结束之前都必须进行正式严格的技术审查和管理复查。 每个阶段都有文档记录(里程碑)。 生命周期法每个阶段的基本任务可分为: 问题设计 可行性研究 需求分析 总体设计 详细设计 编码/单元测试 测试 软件维护
|