摘 要
基于B/S的酒店客房管理系统可以实现对客房的科学化、规范化、查询客户和预定信息,可以同时实现预定,接收,检验,退房,存款等功能,有助于提高管理的效率,方便酒店对客房的实际情况进行集中的查询与管理工作,以改善整个酒店的工作效率和服务质量。客房管理系统的设计与实现是基于Java平台和Struts2框架,依托了Tomcat服务器,实现了基本的开发,主要使用MyEclipse和SQL Server 2008数据库。能够满足中小型客房管理的需求,实现了对工作效率的提升。
关键字:1、客房管理 2、预订 3、JAVA
目 录
前 言 1
第一章 绪 论 2
1.1 客房管理系统发展历史 2
1.2 客房管理系统的作用 3
1.3 客房管理系统的构成 4
1.4 国内客房管理系统 5
第二章 编程环境基础知识 6
2.1 JSP介绍 6
2.2 JSP优点 6
2.3 SQL Server简介 7
2.4 结构化查询语言 7
2.5 JDBC简介 8
第三章 系统分析与设计 9
3.1 可行性分析 9
3.2 设计目标 10
第四章 总体功能设计 11
4.1 用户部分 11
4.2 管理员部分 11
4.3 数据库设计 12
第五章 功能模块设计 18
5.1 系统前台主页面 18
5.2 预订房间 20
5.3 换房申请 22
5.4 留言功能 22
5.5 网站后台登陆界面 24
5.6 留言管理 26
5.7 客房管理 27
5.8 客房预订信息 29
5.9 客人入住信息 30
第六章 测试及性能分析 32
6.1 系统登录测试 32
6.2 测试客人入住登记 34
6.3 测试留言 35
结 论 36
参考文献 37
致 谢 38
前 言
客房管理系统是针对客房的具体业务而开发的,业务管理主要以客房的前台管理为核心,并为用户提供快捷的、高效率的服务,减少手工处理的不便与误差,能及时、准确地反映客房的工作情况、经营情况,从而提高客房的服务质量,并配合现代化的客房管理,获得更好更满足的经济效益。
近年来,随着我国改革开放的发展,及人民生活水平的提高,我们国家的客房服务业得到了日新月异的发展。现代化客房管理作为一体化的接待场所,是每个有发展前景的旅游城市的一扇窗,也可以说是一个小型的社会。
客房在工作运作期间,客人的满意程度和对客人服务水平的出色程度,很容易会影响到酒店的知名度和收益问题,如:服务的周到问题,环境的问题 ,以及服务人员的态度问题,是否能以最好的服务让客人得到满足;市场的预测分析是否快捷、准确等。做这么多的主要目地就是对每天不同大量的信息(客人、费用、房间,客人的满意程度等)的正确处理和保存。利用现代计算机设备作为辅助管理手段是必须的。客房是一个高层次的服务行业,使用计算机技术可在原有的基础上提高服务质量,有良好的社会形象。
第一章 绪 论
21世纪,随着生活水平的不断提高和发展,在这个信息化的时代,每个人的生活都在日新月异,变得丰富多彩,因此生活方式也有所改变。越来越多的人都在以自己的方式来享受生活,而出去旅游是很多人追求的,很多的娱乐活动也在有所增加,再加上国外游客的增多,相反那些游客从事的商务活动也越来越频繁,以前老式传统的手工早已满足不了现代酒店对顾客的需求和帮助,而现在及时,准确,便捷,全方位的全自动的信息化早已取代了之前手动的操作,现在高端的信息化网络管理成为了每个人生活的必需品,在酒店管理及业务不断复杂,要求不断提高的情况下。利用高技术,现代化的电脑管理系统来处理日益增多和复杂的酒店业务管理,对于大型和高档的酒店来说,信息化管理是必须具备的管理方式。
每个酒店客房管理系统都是按自己酒店对客户的实际需求而进行编写的,主要的目的是为了在原有的基础上更加便捷而完善的来达到顾客的需求,以此来对客房的实际情况进行集中的查询与管理。为了提高工作效率,几乎所有客房进行系统信息化管理,系统化,以及科学化,成为各个酒店所共同追求的目标,因此,要想实现这些方便快捷的功能,就得要求各个酒店都配备一套管理系统,方便管理者管理。并以最快的速度及最高效的服务满足客户的需求,及时为他们服务,让它们能愉悦的感受到此酒店对他们热情的服务,并且给予提供给客人一个高效,便捷的,温馨的居住环境。
1.1 客房管理系统发展历史
客房管理系统(简称MIS)是信息科学的一个分支,是收集,传输,存储,计算机部件,可以使信息处理,维护和使用的系统。
国内的客房管理系统最早是在80年代初开始的,国内有不少高校名师和研究所从事研究。到了80年代中后期,随着国外客房系统的大规模引进,国外先进的客房管理的技术进入我国,极大的促进了我国客房管理技术的发展。该系统充分吸收了国外管理体系的精华,并根据国内的实际情况,慢慢发展成熟。到90年代初,逐步形成了一个更加成熟的软件系统,也产生了许多专业公司的客房管理系统。
到了90年代中期,随着科学技术的不断提高和变化,在客房里,电脑的普及和应用,以及网络的不断发展,计算机系统发展的新时期,房客的新系统,新的功能,新的特征和发展方向不断涌现。
1.2 客房管理系统的作用
客房管理就其表现形式看就是对客房的常规性信息的录入、储存、处理和输出的过程,其主要表现在以下几个方面:
1.2.1 提高管理效益及经济效益
应用客房管理系统节省了大量的人力和物力,增加客房的服务项目,提高客房的服务水平,大大减少了管理上的漏洞,从总体上提高了客房的经济效益。例如完善的客房预订功能大大方便了人工操作,可以有效的防止有空房无法出租情况发生,也可以避免出现房间被重复订购的情况,还可以随时提供最准确的房间使用情况和预订情况, 大大的提高了客房的入住率。系统会记录客人的消费,可有效防止逃账现象的发生。完善的分析功能还可用于市场营销,例如第一时间掌握房价的浮动等。合理调节房价,实行优惠政策,从而最大程度的减少管理上的漏洞,切实提高了客房出租收入。
1.2.2 提高服务质量
由于电脑处理信息的速度快,减少宾客入住等候时间和结帐的等候时间,提高对宾客的服务质量。便捷的客人信息查询手段,使客人得到最优的服务。用餐费、电话费、洗衣费等所有费用的一次性结帐,不仅方便了宾客,也提高了客房的综合管理水平。系统可以自动识别回头客,所有被加入黑名单的客人,系统能够自动报警。系统也能鉴定VIP客人,这些操作均有利于提高客房的整体形象。清晰准确的账单,使客人满意。健全的客房预订系统,可以让宾客的放心入住得到充分的保证。完善的客户资料管理更使客人的“个性化”服务得以最好的实施。利用电脑保存所有宾客的历史资料,经过电脑统计分析,可对经常入住的宾客和达到一定消费额的客人进行打折优惠;还可以对宾客的日常消费习惯进行细致分析,总结客人生活习惯,思考如何为客人提供更舒适服务,比如房间位置选择、提供何种餐饮等,甚至细致到给客人何时送何种报刊杂志、生日礼品等。
1.2.3 提高工作效率
通过客房管理系统可以大大提高客房管理,比如电脑的自动夜间结账功能代替手工报表的历史,传统手写客人名单的低效工作被电脑操作替代,电脑严格的数据检查功能彻底解决了人为操作产生的错误,票据的传递、登记、整理、审查等一系列的传统操作也可大量减少。
1.2.4 完善客房内部管理体制
科学、正规、系统的客房管理系统在客房管理体系中发挥着十分的稳定作用,可大大地减少工作人员的流动对总体客房管理运作的不良影响。系统提供了等级不同的安全措施,安全的保护各类数据的安全。每天的定时审核,各种花费的优惠控制,账款的收缴,工作量的考核,管理员操作过程的记录,这些都使得系统更加完善。
1.2.5 全面了解经营状况,切实提高管理员决策水平
客房管理系统能提供完备的历史数据,便于查阅,又可提供各种情况下的分析结果,可使管理员非常方便地完成庞杂的数据统计和分析工作,并加强对客房经营的控制,切实增强管理员的决策水平。
1.3 客房管理系统的构成
客房管理系统由电脑硬件软件两大大部分组成,一般软件分为系统软件和应用软件。
硬件指电脑设备,系统软件指系统的运行平台,它们一起构成客房电脑系统的体系结构。客房管理系统使用的体系结构分为三种:单机式、集中式和分布式。这三种结构随电脑技术的不断发展,至今仍在不断地发展变化着。
单机系统,顾名思义,由单个主机、显示器、键盘、打印机组成,经常配有一些软件。可以完成一些最基本的客房业务,但现在该结构几乎没人使用。
集中式处理结构,简单说就是以一台至两台电脑作为主机。处理数据快速,安全性和可靠性高。但终端本身没有处理能力,如果终端数量增加那么系统运行速度则明显减慢,而且一般终端界面并不美观。
分布式处理结构以高配置微机作服务器,所有工作站(一台独立的微机)通过Internet连接,本身具有数据处理的能力。C/S结构中,客户端支持前端处理,能够显示Windows界面,服务器用于支持应用的系统环境,包括数据库的管理及查询。它具有局部网络的优点,由服务器和客户机共同协作,最大程度的体现系统的所有优越性。
随着通信技术的发展,网络的普及,分布式结构可以进行远程数据处理。这种广域网分布结构更适合客房集团的信息管理。总站可以通过网络有效地管理各地的客房,及时了解各客房之间的经营情况,各客房之间也可通过网络实现信息交流。从电脑技术应用的发展趋势看,今后发展的方向将是基于B/S(浏览器/服务器)结构的广域网。
1.4 国内客房管理系统
据了解,全国各地大大小小从事客房计算机管理系统开发、经营的公司有100余家。大都起步于在上世纪80年代初期至90年代初期。经过激烈的市场竞争,现在剩下不到10家软件开发商有较大的性影响。
目前,国内三星级以上的客房基本已经使用了计算机管理。特别是国家旅游局出台的星级评定标准,规定三星级以上客房必须采用计算机管理,进一步地推动了客房计算机管理系统的发展。21世纪前后,我国自主开发的客房系统逐渐步入五星级,目前挂牌的五星级客房采用国内软件的已达30余家。但国产软件的主要用户还是四星级以下客房,大规模进入五星级客房特别是外资或外方管理集团的客房还是有一定的难度。我国的客房管理系统,在技术上与国外产品不相上下,在售后服务、本地特色化方面甚至比国外优越,主要的差距来源于品牌。
第二章 编程环境基础知识
2.1 JSP介绍
JSP,即Java Server Page,用来编写Java应用页面程序。作为开发动态网站的一门技术,JSP是当前大中型企业应用软件的首选。JSP是J2EE的一个部分,开发者可以通过JSP来体会到J2EE的众多优点。
JSP依赖于J2EE技术。可移植性使开发者青睐于JSP,而根本不用考虑系统层面的问题;Java具有开放特,这使得它可以采用众多的Web框架;OOP的设计使得Web在线系统有了基础保障。
2.2 JSP优点
JSP其实就是Java程序,具备Java语言的优势。JSP有着比ASP、PHP等有更严格的Java语法支持。
ASP和JSP执行方式不一样,前者解析执行,后者先编译后执行。所以,初始访问时JSP根本无法和ASP比速度,但是以后后者每次执行比前者快好几倍,因为后者每次都解析执行。因为ASP.NET与J2EE有十分类似的框架。
JSP是线程高度并行,因此它可以很好的使用电脑硬件资源。JSP可以在UNIX系统x下安全运行;JSP应用程序可以利用它的集群技术使用多台主机。
对于开发开发者,JSP是开发Web应用程序的首选。JSP支持JavaBean组件。Java的开放性也使系统框架如井喷,Struts,Webwork等开源框架得到大家欢迎。JSP遵循J2EE规范,各个独立的层次分别针对特定的编程领域。
而相对于Servlet这种Java类,JSP又有着独特的优势。编写大量的Servlet代码才能达到一个简单JSP界面的功能,却不显示HTML结构。另外,JSP中双引号等特殊字符,在Servlet中都需要进行转义处理。Servlet不能合理的利用原型。事实上,在JSP中还可以使用标签等特性,进一步削减Java代码中不利因素。
所以,开发者用JSP可以大大降低开发门槛,提高程序可读性,开发出高性能的跨平台企业级软件。
2.3 SQL Server简介
SQL SERVER 是Microsoft在关系数据库管系统(RDBMS)方面的开发成果。用来存储、管理数据。我们将使用SQL SERVER存储与知识系统网站相关的所有信息,这些信息会由应用程序逻辑动态放置在网页中。
Microsoft 公司推出的SQL Server具有很多优点,例如使用方便、集成度高。
2.4 结构化查询语言
SQL具有很多优点,比如SQL语言结构简洁,功能强大,适合于初学者学习,因此它得到了用户广泛的应用。大多数数据库系统如Oracle 、Sybase、DB2、Informix、SQL Server都支持SQL。
SQL的功能非常健全,主要有查询、操纵、定义和控制,它是关系数据库标准语言,共用性很强。
2.5 JDBC简介
数据库连接是系统最重要的部分,Java中连接数据库的技术是JDBC(Java Database Connectivity)。很多数据库系统带有JDBC驱动程序,Java 程序就是通过JDBC驱动程序与数据库相连,然后进行一系列的其他操作。
JDBC被分为三部分:JDBC API、JDBC驱动程序管理器和JDBC驱动程序。JDBC API 通过Java.sql 包来提供。在JDBC API上只设计为利用数据库而提供的类的接口,而这个接口是由提供JDBC驱动的软件商来实际完成的。JDBC驱动管理器的作用是在JDBC运行结构上,提供最基础的指引功能。JDBC驱动的作用是当JDBC API制作的程序进行数据调用时,实际连接数据库并进行相应的处理。JDBC驱动提供JDBCAPI的接口类。
第三章 系统分析与设计
3.1 可行性分析
不同的年代不同的社会,随着生活水平的不断提高,每个人的追求都在发生不断地变化,相反对生活质量的要求也越来越高,越来越挑剔,作为服务行业的客房管理也在随着生活的提高在不断更新和完善,在全球化的信息时代,大多数人需要把之前的吃饭,住宿,和娱乐,变成一条龙服务,更加快捷方便的形成立体化服务体系,顾客也可以很方便的随意消费,并统一结账,如果客房管理人员想及时的了解客户的需求,甚至是想更快的了解本酒店的运营情况和所经营走势,找出所运转的成本,作为是不是可以继续经营下去的依据。那么要想了解这一系列的问题,只有运用先进的科学管理手段,利用计算机系统管理才是实现这一复杂的管理模式。
根据信息管理系统,可行性分析的三个基本方向可以大致得出以下结论:
3.1.1 经济上的可行性
从不同持久的角度来看,此系统的投入与实施会给客房的管理带来经济预算科学化、数据处理智能化、信息统计完整化、严格化、业务处理高效化等综合多方面考虑,对客房的顾客满意程度和客房的经济效益会有长足的提高。
3.1.2 技术上的可行性
经过很长时间对现有的各种大中型客房的实际考察发现,绝大多数大中型客房都已具备计算机硬软件和网络环境。但是每个员工必须掌握计算机基本操作能力。
3.1.3 社会可行性
经过与客房主管领导的接触,可以看出几乎所有领导都能意识到客房管理系统使用的必要性。可以从和他们的谈话中感觉到他们对信息系统的认识已经有了很高的认识。管理可行性完全满足。
无论是对顾客、客房主管领导还是客房员工对信息系统使用的方便快捷都表示很大的赞同。同时,系统的开发和使用对促进整个社会的信息化程度发展有巨大推动作用。
3.2 设计目标
在2001年12月,中国正式加入了世界贸易组织,跟随国际贸易市场,客房服务业已经成为全球大势所趋,要想让客房服务业迎接这一挑战,就必须提高整体竞争能力。要想提高整体市场竞争能力,就必须改革客房的经营管理模式,提高管理员的管理水平,我想实现信息化建设必定是在间接的实现这一目的必然之路和明智之举。目前,我国客房服务业信息化管理的进程非常缓慢,跟国外的客房相比管理技术依然落后。在激烈的客房业竞争中,如何才能更好的把握机会,在保持自己的原有竞争力的基础上能以一个更加良好的形象来保持自己的优势,以至于不败给对手呢?这就需要经营者为顾客提供最优的服务,提供最完善的客房住宿条件以及最先进的技术。我认为一个成功的客房,其经营者不是单单战胜在提高服务水平和服务质量上,而是如何在提高客房占有率和回头率,以及工作效率等,并控制成本。在当今信息社会,最重要的是客房的经营者必须要跟上科技发展的速度,要有一个十分功能强大的客房信息管理系统,便于为顾客提供很好的服务并以一个更美的姿态来扩大经营。
第四章 总体功能设计
本系统是为了实现客房的电脑化操作,因此客房的各项服务基本上全包括在内。本系统主要的功能是实现预定房间管理,换房,查询剩余房间及入住信息和退房管理等,我把这个客房共分为两大块,分别是:1.用户 2.管理员
4.1 用户部分
用户注册:检测用户所提供的信息并为其注册用户。
用户登陆:通过用户自己所设的密码和自己的用户名来验证身份,以此来登录。
预约房间:预约某个时间的某一房间。
更换房间:按照用户所提出的要求更换房间。
给管理员留言:检查用户留言的可靠性并保存。
注销用户:结束和用户的会话,并保证和用户的会话不泄漏。
4.2 管理员部分
读取用户的留言:呼叫的用户信息和显示。
添加的房间:房间增添新的房间,登记细节。
删除的房间:根据用户提交的信息删除指定的房间。
修改房间的信息:可以修改房间状态及房间附加信息。
登记客人入住信息。
查看客房预订相关的所有信息。
客房管理系统的模块结构图如下所示4.1
图4.1 系统模块结构图
4.3 数据库设计
每个数据库结构设计的好坏直接影响到信息管理系统的效率和实现的效果。合理地设计数据库结构可以更快的提高数据库存储的效率,以此来保证数据的完整和统一。数据库设计一般包括如下几个步骤:
(1)数据库需求分析
(2)数据库概念结构设计
(3)数据库逻辑结构分析
数据库的概念结构设计之后,就可以将上面的数据库概念转化为某种数据库系统所支持的实际数据模型,也就是数据库的逻辑结构。具体的表设计如下所示:
4.3.1 各实体的属性图
用户表信息实体属性图
图4.2 用户表信息实体图
预约信息实体属性图
图 4.3 预约信息实体图
客房信息表实体属性图
图 4.4 客房信息表实体图
入住信息表实体属性图
图4.5 入住信息实体图
换房信息表实体属性图
图4.6 换房信息表实体属性图
留言信息表实体属性图
图4.7 留言信息表实体属性图
4.3.2 数据表设计
1)用户表
用户表包括用户ID,用户名字,密码,用户类型,注册时间以及用户的一些详细信息,其属性如下所示:
表4.1 t_user信息表
字段名称 字段说明 数据类型 字段大小 必填字段 允许为空 描述
user_id 编号 int 4 否 否 主键
user_name 用户名 varchar 否 否
user_pw 密码 varchar 否 否
user_type 类型 int 4 否 否
user_regtime 注册时间 datetime 8 否 否
user_one1 住址 varchar 否 否
user_one2 联系方式 varchar 否 否
2)预约信息
预约信息表记录了不同的用户预约房间的详细信息,包括预约编号、预约时间、预约用户、房间编号以及预约人电话号码等信息,如下所示:
表4.2 t_yuding信息表
字段名称 字段说明 数据类型 字段大小 必填字段 允许为空 描述
yuding_id 编号 int 4 否 否 主键
yuding_room 房间编号 varchar 否 否
yuding_user 预约用户 varchar 否 否
yuding_date 预约时间 datetime 8 否 否
yuding_user_tel 电话号码 varchar 否 否
3)客房信息
客房信息表记录了每个房间的编号、房间的名称、房间得位置和房间的照片等信息,设置房间编号为该表主键,如下所示:
表4.3 t_kefang信息表
字段名称 字段说明 数据类型 字段大小 必填字段 允许为空 描述
kefang_id 编号 int 4 否 否 主键
kefang_roomId 房间编号 varchar 否 否
kefang_jianjie 客房名称 varchar 否 否
kefang_area 房间位置 varchar 否 否
kefang_phoho 房间照片 varchar 否 否
kefnag_luru_date 房间入住 datetime 8 否 否
4)入住信息
入住信息表记录了入住的编号、入住的用户、性别、入住开始时间和结束时间等信息,设置入住编号为该表主键,如下所示:
表4.4 t_ruzhu信息表
字段名称 字段说明 数据类型 字段大小 必填字段 允许为空 描述
ruzhu_id 编号 int 4 否 否 主键
ruzhu_user_name 入住用户 varchar 否 否
ruzhu_user_sex 性别 varchar 否 否
ruzhu_starttime 入住开始时间 varchar 否 否
ruzhu_endtime 结束时间 varchar 否 否
ruzhu_user_card 设置入住 varchar 否 否
ruzhu_yajin 押金 varchar 否 否
ruzhu_one1 房间号 varchar 否 否
5)换房信息表
换房信息表记录了换房的编号、房间原客户、新客户、换房客户和时间等信息,设置编号为该表主键,如下所示:
表4.5 t_huanfang信息表
字段名称 字段说明 数据类型 字段大小 必填字段 允许为空 描述
huanfang_id 编号 int 4 否 否 主键
huanfang_yuankefang 房间原客户 varchar 否 否
huanfang_xiankefang 新客户 varchar 否 否
huanfang_yuanyi 换房原因 varchar 否 否
huanfang_date 换房时间 datetime 8 否 否
6)留言信息
留言信息表记录了留言的编号、主题、内容、留言用户和时间等信息,设置编号为该表主键,如下所示:
表4.6 t_liuyan信息表
字段名称 字段说明 数据类型 字段大小 必填字段 允许为空 描述
liuyan_id 编号 int 4 否 否 主键
liuyan_title 标题 varchar 否 否
liuyan_content 内容 varchar 否 否
liuyan_user 留言用户 varchar 否 否
liuyan_datetime 时间 datetime 8 否 否
第五章 功能模块设计
5.1 系统前台主页面
普通用户可以登入客房管理前台系统,登入后的界面如下所示:
图5.1 系统前台主页面
用户注册登陆核心代码入下:
public String userReg()
{
TUser user=new TUser();
user.setUserName(userName.trim());
user.setUserPw(userPw);
user.setUserAddress(userAddress);
user.setUserTel(userTel);
user.setUserRealname(userRealname);
user.setUserEmail(userEmail);
user.setUserSex(userSex);
user.setUserQq(userQq);
user.setFujian(fujian.equals(“”)==true?“/img/none.gif”:fujian);
user.setUserType(“putongyonghu”);
user.setUserDel(“no”);
userDAO.save(user);
return “successAdd”;
}
public String userEdit()
{
TUser user=userDAO.findById(userId);
user.setUserName(userName);
user.setUserPw(userPw);
user.setUserAddress(userAddress);
user.setUserTel(userTel);
user.setUserRealname(userRealname);
user.setUserEmail(userEmail);
user.setUserSex(userSex);
user.setUserQq(userQq);
user.setFujian(fujian);
userDAO.getHibernateTemplate().update(user);
Mrequest=(Map)ServletActionContext.getContext().get(“request”);
request.put(“msg”, “修改成功”);
return “msg”;
}
public String userEditPre()
{
TUser user=userDAO.findById(userId);
Maprequest=(Map)ServletActionContext.getContext().get(“request”);
request.put(“user”, user);
return ActionSupport.SUCCESS;
}
public String userLogout()
{
Map session= ServletActionContext.getContext().getSession();
session.remove(“user”);
session.remove(“userType”);
return ActionSupport.SUCCESS;
}
5.2 预订房间
用户可以选择适当的房间,查看该房间的详细信息,然后可以点击预订按钮预订该房间。
图5.2 预订客房界面
预定核心代码如下:
public String yudingAdd()
{
Maprequest=(Map)ServletActionContext.getContext()
.get(“request”);
Map session=(Map)ActionContext.getContext().getSession();
TUser user=(TUser)session.get(“user”);
TKefang kefang=kefangDAO.findById(kefangId);
if(liuService.panduannengfouyuding(kefang,user).equals
(“buneng”))
{
request.put(“msg”, “你不是vip用户。不能预订vip客房”);
}
if(liuService.panduannengfouyuding(kefang, user).equals(“neng”))
{
TYuding yuding=new TYuding();
yuding.setUserId(user.getUserId());
yuding.setKefangId(kefangId);
yuding.setTianshu(tianshu);
yuding.setYudingzheTel(yudingzheTel);
yuding.setShijian(new Date().toLocaleString());
yuding.setDel(“no”);
yudingDAO.save(yuding);
request.put(“msg”, “预订成功”);
}
return “msg”;
}
5.3 换房申请
如果用户在对已订的房间有什么不满意,可以通过该系统更换房间。
图5.3 换房申请界面
换房申请核心代码:
public String kefangHuan()
{
THuanfang huanfang=new THuanfang();
huanfang.setHuanfangDate(new Date());
huanfang.setHuanfangXiankefang(huanfangXiankefang);
huanfang.setHuanfangYuankefang(huanfangYuankefang);
Map session=ActionContext.getContext().getSession();
TUser user=(TUser)session.get(“user”);
huanfang.setHuanfangUser(user.getUserName());
huanfangService.save(huanfang);
return ActionSupport.SUCCESS;
}
5.4 留言功能
用户还可以通过留言板功能把自己的意见反映给客房管理人员。
图5.4 留言功能界面
留言核心代码如下:
public String addLiuyan()
{
TLiuyan liuyan=new TLiuyan();
liuyan.setLiuyanContent(liuyanContent);
liuyan.setLiuyanTitle(liuyanTitle);
liuyan.setLiuyanDatetime(new Date());
Map session=ActionContext.getContext().getSession();
TUser user=(TUser)session.get(“user”);
if(user==null)
{
liuyan.setLiuyanUser(“游客”);
}
else
{
liuyan.setLiuyanUser(user.getUserName());
}
liuyanService.save(liuyan);
return ActionSupport.SUCCESS;
}
public String liuyanManage()
{
Maprequest=(Map)ServletActionContext.getContext()
.get(“request”);
List liuyanList=liuyanService.findAllLiuyan();
request.put(“liuyanList”,liuyanList);
return ActionSupport.SUCCESS;
}
public String allLiuyan()
{
Maprequest=(Map)ServletActionContext.getContext()
.get(“request”);
List liuyanList=liuyanService.findAllLiuyan();
request.put(“liuyanList”,liuyanList);
return ActionSupport.SUCCESS;
}
5.5 网站后台登陆界面
在前台主页上面点击进入后台,就来到了如下的登录界面。
图5.5 网站后台登陆界面
登陆核心代码如下:
public String adminLogin()
{
TUser user=userService.findAdminLogin(userName, userPw);
if(user==null)
{
Maprequest=(Map)ServletActionContext.getContext()
.get(“request”);
request.put(“error”, “用户名或者密码错误”);
return ActionSupport.ERROR;
}
else
{
Map sessionServletActionContext.getContext().getSession();
session.put(“user”, user);
return ActionSupport.SUCCESS;
}
}
5.6 留言管理
后台管理系统包括留言管理,客房管理,客房预订信息,用户管理以及客人入住信息等几大模块,留言管理模块里面可以删除用户已发表的留言。具体如下图所示:
图5.6 留言管理
留言管理核心代码:
public String liuyanManage()
{
Maprequest=(Map)ServletActionContext.getContext()
.get(“request”);
List liuyanList=liuyanService.findAllLiuyan();
request.put(“liuyanList”,liuyanList);
return ActionSupport.SUCCESS;
}
5.7 客房管理
客房管理模块中管理员可以新增客房信息并且可以上传客房照片,并且也可以对已添加的客房信息进行维护,也就是删除和修改,具体界面如下所示:
图5.7 客房管理
客房管理核心代码:
public String kefangAdd()
{
TKefang kefang=new TKefang();
kefang.setKefangRoomId(kefangRoomId);
kefang.setKefangArea(kefangArea);
kefang.setKefangJianjie(kefangJianjie);
String newPhoneName=new Date().getTime()+kefangPhohoFileName.
substring(kefangPhohoFileName.indexOf(“.”));
String dstPath = ServletActionContext.getServletContext()
.getRealPath(“kefangPic”)+ “\” + newPhoneName;
File dstFile = new File(dstPath);
copy(this.getKefangPhoho(),dstFile);
kefang.setKefangPhoho(“/kefangPic/”+newPhoneName);
kefangService.save(kefang);
this.setMessage(“添加成功”);
this.setPath(“kefangManager.action”);
return “succeed”;
}
public String editKefang()
{
TKefang kefang=kefangService.findbyid(kefangId);
System.out.println(kefang);
System.out.println(kefangId);
kefang.setKefangRoomId(kefangRoomId);
kefang.setKefangArea(kefangArea);
kefang.setKefangJianjie(kefangJianjie);
String newPhoneName=new Date().getTime()+kefangPhohoFileName
.substring(kefangPhohoFileName.indexOf(“.”));
String dstPath = ServletActionContext.getServletContext()
.getRealPath(“kefangPic”)+ “\” + newPhoneName;
File dstFile = new File(dstPath);
copy(this.getKefangPhoho(),dstFile);
kefang.setKefangPhoho(“/kefangPic/”+newPhoneName);
kefangService.findEditKefang(kefang);
this.setMessage(“编辑成功”);
this.setPath(“kefangManager.action”);
return “succeed”;
}
public String editKefangPre()
{
TKefang kefang=kefangService.findbyid(kefangId);
Map request=(Map)ServletActionContext.getContext().get(“request”);
request.put(“kefang”, kefang);
return ActionSupport.SUCCESS;
}
public String kefangDetail()
{
TKefang kefang=kefangService.findbyid(kefangId);
Map request=(Map)ServletActionContext.getContext().get(“request”);
request.put(“kefang”, kefang);
return ActionSupport.SUCCESS;
}
5.8 客房预订信息
管理员可以在系统后台查询所有的预订信息。
图5.8 客房预订信息
预定核心代码:
public String yuding()
{
System.out.println(“GGGGGGGGGGGGG”);
System.out.println(kefangRoomId);
Map session= ServletActionContext.getContext().getSession();
TUser user=(TUser)session.get(“user”);
if(user==null)
{ return “nologin”;}
else
{
TYuding yuding=new TYuding();
yuding.setYudingDate(new Date());
yuding.setYudingRoom(kefangRoomId);
yuding.setYudingUser(user.getUserName());
yuding.setYudingUserTel(user.getUserOne2());
kefangService.saveYuding(yuding);
return ActionSupport.SUCCESS;
}
}
5.9 客人入住信息
管理员可以录入客人入住的基本信息,并且还可以录入后所有客人的入住基本信息。
图5.9 入住信息登记
入住核心代码:
public String kerenruzhuAdd()
{
TRuzhu ruzhu=new TRuzhu();
ruzhu.setRuzhuEndtime(ruzhuEndtime);
ruzhu.setRuzhuYajin(ruzhuYajin);
ruzhu.setRuzhuUserSex(ruzhuUserSex);
ruzhu.setRuzhuUserName(ruzhuUserName);
ruzhu.setRuzhuUserCard(ruzhuUserCard);
ruzhu.setRuzhuStarttime(ruzhuStarttime);
ruzhu.setRuzhuOne1(ruzhuRoom);
ruzhuService.save(ruzhu);
this.setMessage(“登记成功”);
this.setPath(“kerenruzhuManage.action”);
return “succeed”;
}
public String kerenruzhuManage()
{
List ruzhuList=ruzhuService.findAll();
Map request=(Map)ServletActionContext
.getContext().get(“request”);
request.put(“ruzhuList”, ruzhuList);
return ActionSupport.SUCCESS;
}
第六章 测试及性能分析
6.1 系统登录测试
登录测试表
表6.1 登录测试表
输入条件 测试用例说明 测试数据 期望结果 选取理由
后台登录 无用户名密码 Null 错误提示 用户名或密码错误
错误用户名无密码 hu 错误提示 用户名或密码错误
无用户名有密码 1326 错误提示 用户名或密码错误
错误用户名错误密码 hu,654 错误提示 用户名或密码错误
正确的用户名无密码 Admin 错误提示 用户名或密码错误
正确用户名和密码
Admin,admin 登录成功 进入系统首页界面
进入系统用户登录时,如输入用户名,密码为空值时,界面会提示错误提示用户名或密码错误。如图6.1所示
图6.1 提示用户名或密码错误
进入系统用户登录时,如输入错误用户名无密码时,界面会显示错误提示
用户名或密码错误。如图6.2所示
图6.2 提示用户名或密码错误
进入系统用户登录时,如输入无用户名错误密码时,界面会显示错误提示用户名或密码错误。如图6.3所示
图6.3提示用户名或密码错误
进入系统用户登录时,如输入错误用户名错误密码时,界面会显示错误提示用户名或密码错误。如图6.4所示
图6.4 提示用户名或密码错误
进入系统用户登录时,如输入正确用户名错误密码时,界面会显示错误提示
用户名或密码错误。如图6.5所示
图6.5 提示用户名或密码错误
进入系统用户登录时,如输入正确用户名和正确密码时,界面会进入系统首页。如图6.6所示
图6.6 所示进入系统首页界面
6.2 测试客人入住登记
入住测试表
表6.2 入住测试表
输入条件 测试用例说明 测试数据 期望结果 选取理由
入住登记 客人姓名.身份证号. 性别. 入住开始时间. 入住开始时间.房间号押金 小李.200200.男. 2014-06-08 06:46.2014-06-08 06:46.102.200 添加成功 添加完成
添加客人入住登记输入客人姓名.身份证号. 性别. 入住开始时间. 入住开始时间.房间号押金客人姓名.身份证号. 性别. 入住开始时间. 入住开始时间.房间号押金后提示添加成功如图6. 7所示
图6.7 添加成功界面
6.3 测试留言
留言测试表
表6.3 留言测试表
输入条件 测试用例说明 测试数据 期望结果 选取理由
留言信息 标题.内容 12.12 成功 留言完成
留言输入标题内容后留言成功如图6.8所示
图6.8所示留言成功界面
结 论
随着本次毕业设计的系统开发到此告一段落了,系统已经基本成型,功能也都已实现,此系统实现了对酒店管理系统的用户管理模块,房间管理模块,可以为一些中小酒店和宾馆使用。
系统可以实现对客房的简单管理,也可以对客人的信息进行简单管理,并实现了客人开房、客人退房和客人预定房间这些基本功能。
当然系统中也存在很多不足之处,可以在以后版本中进行补充和改进。在这里我做了一些系统的改进思考:
1.页面设计
页面的设计上,还有很大的提升空间。可以添加动态效果,更好的与用户交互。在房间的列表上,其实可以显示出每个房间的图片并且用特殊的标志或者颜色表示房间的状态,更人性化的处理功能。
2.功能设计
功能设计方面,还可以填加很多功能,来丰富完善系统,更好的满足用户需要。例如可加入客人的注册,这样客人就可以自动预订房间;在预订功能上,我们可以加入更丰富的功能更详细的处理每一个业务,还可以在预订页面加入日历更方便预订功能的实现。
3.灵活性能分析
一方面在各个模块中可以增加自动统计功能,记录各个模块的访问次数,以了解经常使用的功能模块,从而在系统中设置相应的快捷键,方便工作人员操作,增加系统的可用性,另一方面也增加了统计分析的灵活性。 客房管理系统的设计与实现暂时算是告一段落了,但在技术上和业务上留给我的问题和帮助会陪我继续在学习Java的道路上前行。
致 谢
在论文即将完成之际,回顾紧张但又充实的学习和开发过程,本人在此向所有关心我的及帮助我的老师、同学们及同事朋友致以最真诚的感谢。这篇论文得以完成离不开他们给予我的支持和帮助。
感谢中国地质大学(武汉)远程与继续教育学院三年来对我的培养,母校三年的时光颇多收益,终生受用,我谨以微薄之心感恩伟大的母校。
从接受课题到现在完成毕业设计论文,衷心的感谢我的指导老师齐斯琴老师给予了精心的指导和热情的帮助,在短暂的几个月的相处时间里,老师渊博的知识、敏锐的思路和做事严谨、谦和的态度给我留下了深刻的印象,这将使得我终身受益,谨此向老师表示衷心的感谢和崇高的敬意!
感谢我的朋友,同学对我的帮助,感谢他们在技术上给予我的支持以及在我最困难时给我的信心。
参考文献
[1]田杰.B2B电子商务:模式系统及其运营[J].商业研究,2009.01
[2][荷] 帕派佐格罗 著; 龚玲,等 译.Web服务:原理和技术. 机械工业出版社,2010.07
[3][美] Peter Morville,[美] Louis Rosenfeld 著; 陈建勋 译; 范炜 校 .Web信息架构:设计大型网站(第3版)北京 :电子工业出版社 2013.10
[4]丁士锋.网页制作与网站建设实战大全 . 北京:清华大学出版社,2013.07
[5]李新晖,陈梅兰著. 新编JSP数据库编程入门[M].北京:天津科学技术出版社 2009.01.
[6]陈会安 著. SQL Server 2012 数据库设计与开发实务[M].北京:清华大学出版社 2013.07.
[7]曾斌,姚志国 著. JSP动态网站开发 .中国劳动社会保障出版社 2012.04.
[8][英] 萨默维尔 著; 程成,等 译. 软件工程(原书第9版). 机械工业出版社 2011.05.
[10]孙卫琴 著 .Tomcat与Java Web开发技术详解(第2版). 电子工业出版社2009.01.
[11]王彬,张计龙. Struts2框架的改进与实现[J].大连海事大学学报 2010(2).