毕业设计(论文)喜洋洋酒店信息管理系统.docx
毕业设计(论文)题 目 喜洋洋酒店信息管理系统 培养部门 信息工程系 专业名称 计算机应用技术 摘要随着后工业化时代的到来,旅游业和商贸流通业的繁荣促使宾馆酒店业也得到前所未有的发展:从国际大都会到边城小镇,从家庭旅馆到星级酒店,不同档次、多种特色的宾馆酒店遍布于城乡的各个角落,不断刺激和满足着广大居民的消费需求。利用以计算机为基础的管理信息系统改善和挖掘宾馆酒店业的市场潜力,从而最大限度地获取营业利润是目前宾馆酒店从业者们在软件环境方面改善和提高服务的一个重要措施。面对当前软件行业在系统开发方面的强烈竞争,在基于客户的需求上,尽最大限度的满足客户的要求。喜洋洋酒店管理系统根据现行业的状态,使用ASP.NET2.0最新的安全技术,使用SQL2005和ADO.NET的强大功能,建立了一个Web窗体的酒店管理系统。本文根据喜洋洋酒店管理系统的功能以及开发背景、开发经过和一些具体的技术进行了详细的叙述。关键字:酒店管理;ASP.NET;系统设计与实现目录第一章 绪论 .41.1选题背景 .41.2 课题研究的意义 .41.3.总体目标 .5第二章 系统分析 .62.1详细调查 .62.2 可行性分析 .62.3 需求分析 .72.4 提出解决方案 .7第三章 总体设计 .93.1 设计目标 .93.2 开发及运行环境 .93.3系统功能模块示意图 .103.4 系统功能简介 103.4.1客房管理 .103.4.2 消费管理 .113.4.3 查询管理 .113.4.4 报表管理 .113.4.5 系统管理 .113.5系统流程简介 .113.5.1 前台服务员 .12 3.5.2 酒店资深工作人员 .123.5.3 系统管理员 .13第四章 系统详细设计 .144.1 数据库设计 144.2 各模块设计 154.2.1 分配用户权限 .154.2.2 登录管理系统 .16第五章 系统的测试 .185.1 旅客入住登记 185.2 旅客结帐退房 185.3 旅客餐费登记 185.4 其他消费登记 19第六章 开发设计总结 .20参考文献 .21致谢 .22第一章 绪论1.1选题背景随着计算机网络的飞速发展,Internet技术越来越广泛的应用,网络覆盖的区域不断扩大,给酒店业计算机应用带来了蓬勃发展的机遇。采用全新的计算机网络和管理系统,将成为提高酒店管理效率,改善服务水准的重要手段之一。然而现在绝大多数的中小型酒店、宾馆由于资金、人员等多方面原因不易使用酒店管理类软件,全凭原始的手工记录管理,效率低、易出错;同时,市场上出现的各类酒店入住信息管理软件基本上都是为大型酒店专业设计的,有很多功能对于一般酒店、宾馆根本用不上。更为关键的是这些酒店入住信息管理软件都是基于客户机/服务器的,客人预订操作繁琐。所以Web结构的城市酒店入住信息管理系统是酒店经营不可缺少的现代工具。31.2 课题研究的意义现代化酒店是城市的重要基础设施,酒店业的发展,直接支持着城市经济的繁荣、旅游业的兴旺和广大市民的生活需要,同时也是城市建设现代化的一个重要标志。全球都把现代化酒店管理作为现代企业管理的重要组成部分。随着当今世界经济和计算机的飞速发展以及网络的普及,酒店在内部实现用户通过电话预约或亲自前往酒店预订客房,服务员人工填写客房预订表进行客房预订的传统模式已经十分落后,满足不了现代人的需要。对那些在外地的旅客来说,他们十分希望可以方便快捷的查看酒店的配套设施和环境来决定预订酒店房间,以节约他们宝贵的时间,而且面对酒店业竞争的日益激烈,酒店业要发展就需要尽力扩大经营规模,适应当今网络时代的步伐。Web结构的城市酒店入住信息管理系统实现了客人在线预订客房,后台管理员对数据库的完整管理。因为Internet基于TCP/IP协议,它可以跨越当前几乎所有的平台。在任何平台上只需要安装一个浏览器,可以简单地移植到任何平台上,就可以访问Web服务器,解决了用户预订操作繁琐,酒店管理信息量大,处理效率低,准确度差等问题。极大的方便了客人的预订和酒店的管理。1.3.总体目标本酒店管理系统的主要任务是通过计算机对宾馆酒店的旅客信息、客房信息以及其他资源进行系统化管理,以提高酒店的质量和服务效率,从而节约成本,增加利润。本酒店管理系统的总体目标包括如下几个方面。(1) 旅客信息管理:包括对入住旅客的客房消费、餐饮消费、娱乐消费等各种信息的管理。(2) 酒店客房管理:包括对酒店已入住客房和未入住客房的安排、客房使用率、不同消费群体对各种客房的需求分析统计等。(3) 酒店经营管理:包括对酒店客房部、餐饮部、娱乐事业部、零售部等不同经营部门的统计、核算、分析以及业绩考核等。(4) 各种信息查询:能够方便地查询酒店及旅客的各种最新信息等。第二章 系统分析2.1详细调查酒店入住信息管理系统的使用是否方便,运行速度是否迅速,信息处理是否准确,直接影响到客人能否及时获得酒店客房信息和酒店的经营管理,然而,现在的系统显然不能满足这些需求,它存在的主要问题有:(1) 客人使用很不方便。客人预订客房,需自己亲自到酒店去预订或者是打电话到酒店预订,这显然是对时间很大的浪费;另外,若客人临时有事,需要修改和取消自己的预订也需那样做,相当麻烦。而在生活节奏越来越快的今天,显然是不科学的。(2) 管理酒店的各种信息相当困难。酒店的信息量越来越大,管理员要对客房、预订、入住、结账等信息进行人工管理,工作量相当大,如客人结账退房时,要通过手工记录的账单计算客人的结账金额,并修改客房信息。(3) 处理效率低,准确度差。采用人工方式,不但增加了工作量,浪费了人力,更重要的是不可避免地会降低处理效率,且出错机率大。2.2 可行性分析随着旅游业的发展,酒店、餐饮娱乐行业日趋发达,引入全方位的电脑服务和电脑管理日益流行。同时,酒店和餐厅娱乐业引入电脑服务和管理也取得了优良的经济效益和社会效益。为此,国家建设部已于最近作出明确规定:凡星级酒店在项目审批时,其设计方案必须包括电脑管理系统,否则不予立项。可见,酒店管理电脑化势在必行。酒店管理系统将先进的电脑技术与现代酒店服务管理完美地结合起来,实现了住宿、餐饮、娱乐全新概念的服务和管理方式。 一个成熟的酒店管理系统不仅仅是记录酒店客人的信息,提供查询,报表打印等一系列简单的工作,它能让工作人员从烦琐的手工操作中解脱,并且酒店管理系统本身就代表着一种管理方法。随着它的深入,将带动企业的运做,为管理和决策提供支持。为了达到这个要求,它必须依靠高起点的硬件环境和软件开发工具来保证系统的稳定和正常运行。酒店电脑系统要求24小时连续运行,数据量大,可靠性要求高,因此整个电脑系统供电采用专线方式,加配UPS(不间断供电系统),并合理接地,以便保障整套系统的正常运行。52.3 需求分析根据以上现在酒店管理系统的缺陷,特提出以下新需求:(1) 为客人提供细致、周到的服务。先进的宾馆酒店管理系统能够方便的为客人提供预定、结帐、换房、打印帐单等多种功能,能够及时地为客人查询自己或宾馆酒店的各种相关信息,甚至可以为旅客量身打造一个经济实惠的出行方案。(2) 为公司提供全面、准确的数据。使用宾馆酒店管理系统能够在第一时间内为公司的财务、统计、决策部门提供全面、准确的数据,能够通过数据挖掘等多种手段制定出正确的营销方案。(3) 为公司节约人财物方面的开销。一般情况下,使用宾馆酒店管理信息系统以后,公司的管理人员将减少、效率将提升、资源将得到充分的利用、服务质量将会有明显的提高、客人的满意度以及由此衍生的客人和回头客将形成公司的潜在利润,为公司未来的发展打下一个良好的基础。2.4 提出解决方案根据对现有酒店入住信息管理系统现状及存在问题的分析,特提出以下解决方案:(1) 利用ASP.NET和VB.NET编程语言,结合SQL Server 2005数据库技术。建立一个酒店入住信息管理系统。(2) 利用网络技术,通过IIS配置服务器的站点属性,可以满足客人在线查看客房的资料并且在线预订客房。(3) 采用SQL Server 2005数据库技术,将客房信息,客人预订信息,入住信息,消费信息等存储在不同的数据表内,实现信息分类管理,并通过编程技术动态改变数据信息。(4) 通过编程对数据库相关数据表的访问,实现客人对不同信息进行查询。所有功能的后台处理对客人都是透明的,客人只需向服务器提出请求,系统就会迅速、及时提供所需信息,大大地方便了客人。同时,由于采用了计算机和数据库技术,极大减轻了管理员工作量,提高了处理准确度。第三章 总体设计3.1 设计目标建立一个基于Web(网站)的酒店管理系统,全方位的满足酒店对客房管理、消费管理、客户管理、操作人员管理、及各种业务管理的需求。全方位的满足酒店任何操作员都可以在任何电脑上打开酒店管理系统实行业务或管理操作,极大的方便了对酒店的时间和空间上的管理。抛弃了传统的Windows窗体空间上管理的缺陷。用户界面友好、操作简单,每一步骤的操作都经过精心的设计,将复杂的统计运算过程隐藏于简单的操作之下,系统的设计能降低使用前的培训、实施和使用中的维护时间。通过合理而先进的网络设计及软、硬件的优化选型,足可保证系统的可靠性与容错性。系统以用户需求为目标,以方便用户为原则,同时融入先进的管理经验,根据用户的实际需求功能情况,为用户进行二次开发,度身订造一套先进的酒店管理系统。3.2 开发及运行环境本系统采用ASP.NET2.0和VB.NET编程语言进行代码的编写,采用SQL Server 2005和ADO.NET数据库技术进行后台数据的存储和访问,采用Visual Studio 2005软件进行开发。经过严格的测试,本酒店管理系统能在WindowsXP及以上操作系统中运行,能在任何浏览器上正常运行。3.3系统功能模块示意图喜洋洋酒店管理系统客房管理消费管理查询管理报表管理首 首页系统管理旅客入住登记旅客换房登记旅客结帐退房旅客预定登记预定旅客入住旅客补交押金旅客餐费登记旅客话费登记其他消费登记查询旅客信息查询客房信息查询商品消耗查询消耗总量查询旅客押金客房入住报表餐饮消费报表其他消费报表电话消费报表旅客结帐报表登录管理系统退出管理系统新建操作用户修改用户密码分配用户权限系统帮助信息酒店信息设置酒店房间设置酒店商品设置图1:功能模块示意图3.4 系统功能简介3.4.1客房管理 该模块主要用于前台服务员管理旅客的基本信息,包括入住登记信息、换房信息、结帐信息、押金信息等。3.4.2 消费管理 该模块主要用于前台服务员管理旅客的各种消费信息,包括餐费信息、话费信息、其他消费信息。3.4.3 查询管理 该模块主要用于前台服务员和酒店资深工作人员查询酒店的基本信息以及旅客的基本信息,包括客房信息、旅客信息、商品消耗信息、消耗总量信息、旅客押金信息。3.4.4 报表管理该模块主要用于酒店资深工作人员汇总酒店的各种信息,以便于进一步宏观的把握酒店的发展,从而达到酒店利益的最优化。同时该模块也经常用于公安部门调阅酒店旅客的流水记录。主要包括客房入住信息、餐饮消费信息、其他消费信息、电话消费信息、旅客结帐信息。3.4.5 系统管理 该模块主要用于系统操作员对酒店管理系统的基本操作,包括登录、注册、修改密码、退出管理系统。也用于酒店资深工作人员设置酒店的一些基本信息,包括酒店信息设置、酒店商品设置、酒店房间设置。同时系统管理员还在这里设置系统操作人员的相关权限,以保障系统的安全。3.5系统流程简介本酒店管理系统面向的对象有三种,第一是酒店的前台服务员。第二是酒店的资深工作人员,比如经理、部门负责人、主管等。第三是最重要的系统管理员。这三种对象都各自对本系统具有相关的操作权限,从而达到了理想的分工,最优化的对酒店的各个方面进行了管理,下面具体的介绍这三中对象对本系统的权限。3.5.1 前台服务员 前台服务员的主要工作是负责旅客的登记和消费信息,具体工作如图2:前台服务员客房管理消管理费查询管理旅客入住登记旅客换房登记旅客结帐退房旅客预定登记预定旅客入住旅客补交押金旅客话费登记旅客餐费登记其他消费登记查询客房信息查询旅客信息查询旅客押金系统管理登录管理系统修改用户密码图2:前台服务员权限图3.5.2 酒店资深工作人员 酒店资深工作人员的主要工作是负责各种信息的查询,以方便对酒店发展的策划,具体工作如图3:资深工作人员查询管理报表管理系统管理查询客房信息查询旅客信息查询旅客押金查询商品消耗查询消耗总量客房入住报表餐饮消费报表其他消费报表电话消费报表旅客结帐报表登录管理系统酒店信息设置酒店商品设置酒店房间设置修改用户密码图3:资深工作人员权限图3.5.3 系统管理员 系统管理员的主要工作是负责系统权限的分配,这是一个比较重要的角色,关系到系统的安全以及公司的利益,因此,这一角色通常是由企业法人或者董事长来担任。系统管理员系统管理登录管理系统修改用户密码分配用户权限图4:系统管理员权限图第四章 系统详细设计4.1 数据库设计本酒店管理系统的数据库是借用管理系统开发经典案例Basic版一书中的数据库。3其设计关系如图5:图5:数据库设计图4.2 各模块设计在这里我将本系统中最重要的“分配用户权限”模块和“登录管理系统”模块作一个详解。4.2.1 分配用户权限在本模块中,我用到了2个数据源控件:SQL DataSource1:返回ASP.NET中默认的数据库中的vw_aspnet_Users表, 将用户名称下拉列表绑定到它。SQL DataSource2:返回MyHotelDB.mdf 数据库中的“操作用户表”,将“新增”和“修改”按钮以及GridView控件绑定到它。这里操作用户的用户名称是用的vw_aspnet_Users表中的User,因此在以后的登录用户名就和这里的分配权限中的用户名完全匹配起来了。因此在用户登录后就具有这里分配的相关权限。 图6:分配用户权限图4.2.2 登录管理系统 在本模块中,我使用了ASP.NET自带的一个Login控件。在它的Login1_LoggedIn事件处理程序中用代码完成对登录用户权限的判断。首先申明可变字符串实例,并在此实例的后面追加副本: Session(MyUserName)=Me.Login1.UserName Dim MyForbidString As New System.Text.StringBuilder() MyForbidString.Append("禁止操作权限:A1A2A3A4A5A6A7B1B2B3C1C2C3C4C5D1D2D3D4D5E1E2E3E4")然后连接数据库中的“操作用户”表,并申明一个临时数据表,将数据库中的权限信息存储到临时数据表中,如下图:Dim MyConnectionString As String = ConfigurationManager.ConnectionStrings("MyHotelDBConnectionString").ConnectionString Dim MySQL As String = "Select * From 操作用户 Where 用户名称='" + Me.Login1.UserName + "'" Dim MyAdapter As New SqlDataAdapter(MySQL, MyConnectionString) Dim MyTable As New System.Data.DataTable() MyAdapter.Fill(MyTable) If (MyTable.Rows.Count > 0) Then If (MyTable.Rows(0)("客房管理之旅客入住登记") = 1) Then MyForbidString.Replace("A1", "是") End If If (MyTable.Rows(0)("客房管理之旅客换房登记") = 1) Then MyForbidString.Replace("A2", "是") End If If (MyTable.Rows(0)("客房管理之旅客结账退房") = 1) Then MyForbidString.Replace("A3", "是") End If (注:后面的代码省略)最后申明一个Session对象,将权限信息MyForbidString赋给Session对象,以便于在其它页面中使用这个权限。Session("MyForbid") = MyForbidString以后如果要在其他模块中使用这一权限就只需要在页面(Page_Load)处理程序中调用这一权限,现以旅客入住登记模块为例,代码如下:Dim MyForbidString As String = Session("MyForbid").ToString() If (MyForbidString.IndexOf("A1") > 1 And Session("MyUserName") <> "") Then Server.Transfer("/SystemManage/AllErrorHelp.aspx") End If图7:登录系统图第五章 系统的测试在编译完本酒店管理系统的所有代码后,我作了比较详细的测试。由于我在软件测试上不是专业人员,只是做了一些基本粗略的功能测试,发现本系统没有什么错误,只是在一些模块上功能不是很完美。具体如下:5.1 旅客入住登记在本模块中,酒店房间有类别之分,即单人间、双人间、三人间、会议室等。当操作人员选择一个房间后,在右边的“设置旅客入住信息”这里有一个住宿人数,无论操作人员选择的是单人间还是多人间,“住宿人数”下拉列表都是显示的相同的人数,这里就是问题的所在,如果我们试想操作人员粗心把“住宿人数”选错了,那后果将不堪设想。为此,如果我将“住宿人数”下拉列表设置成与选择的“酒店房间”匹配,即当选择单人间所对应的“住宿人数”就是1,选择双人间所对应的“住宿人数”就是2,依次类推,这样就不会出现上述的错误了。5.2 旅客结帐退房在本模块中,当旅客要结帐时,操作人员只需要选择旅客的房号,后面即会出现旅客的姓名。但是这里的旅客房号是返回了酒店的所有房号,看起来比较烦琐,并且如果操作人员选择了没有人住的房号,就进行查询,后面的文本框就没有相应的旅客姓名,此时就会出错。为此,如果我在这里只返回已经住了人的房间,这样的错误就不会发生。5.3 旅客餐费登记在本模块中,操作人员可以查询旅客的用餐信息,但是在下拉列表中返回了所有的旅客姓名,即已经结帐了的旅客和未结帐的旅客,这样如果时间久了将会显得比较笨拙。为此,如果我在这里只返回现在还在酒店的旅客姓名那将会避免这个问题,即使用这样的查询语言:"Select 入住编号 ,客人姓名From 客房入住单 Where入住编号 NOT IN (Select 入住编号 From 客房结账单)"注:旅客话费登记和其他消费登记也是如此。5.4 其他消费登记在本模块中,操作人员每次只能保存旅客买的一种类别的商品,即如果某位旅客买了烟、酒、饮料,此时操作人员只能分3次存储旅客的消费信息,这显得比较麻烦,同时也耽误旅客的时间。为此,如果我在这里采用临时数据表的技术,将旅客买的所有商品显示在一个控件中,然后在一起保存,一起打印,这样将比较省事,同时也避免了旅客拿一大堆消费单的麻烦。注:以上这些问题都是在系统测试之后得来的缺陷,希望能在以后的开发中解决此类问题。第六章 开发设计总结经过本系统的开发,使我掌握了ASP.NET和SQL 2005 的强大功能,增长了许多实战经验,同时发现了自身许多的不足。同时使我掌握了一些先进的技术,虽然一些技术并没有用到此系统中,如:MD5加密算法、防止SQL注入式攻击的验证码技术等。我相信在未来的开发中我会把这些技术用到管理系统中。在几个月的开发中,在刘老师和ASP.NET技术群的帮助和指导下,基于WEB的酒店管理系统完成,综合我们的系统测试,本酒店系统的各项功能都基本上满足了用户的需求并达到了预期的目标。当然本系统也存在一些隐含的错误,需要进一步完善。同时需要申明的是,本酒店管理系统的一些关键技术代码和数据库是引用罗斌老师所著的管理系统开发经典案例Basic版中的一些代码和思想。在此表示感谢!参考文献1 刘霆雨 ASP.NET2.0精讲M 清华出版社 2005年第一版2 谢佳 ADO.NET全程实录M 人民邮电出版社 2004年第一版3 罗斌 管理系统开发经典案例Basic版M 人民邮电出版社 2006年第一版 4 刘东 VisualBasic导论M 清华出版社 2004年5 张思雨 网站重构 M 高等教育出版社 2008年第一版6 李建山 SQL Server2005入门与提高 M 高等教育出版社 2002年致谢在本文的写作当中,以及在酒店管理系统的开发中,我要感谢我的导师刘老师对我的支持与关怀,感谢ASP.NET技术群的一些朋友对我的支持,是他们给了我很多帮助,使我在迷途中得到灵感,是他们给了我很多技术支持和经验,在此表示衷心的感谢!21