1、毕业答辩论文基于SSH的中小型酒店标准管理系统的设计与实现 山西大学论文 编号:论文题目 基于SSH的中小型酒店管理系统的设计与实现 姓 名 院 系 计算机与信息技术学院 专 业 计算机科学与技术 学习年限 2009 年 9 月至 2013 年 7 月指导教师 学位级别 学 士 2013年5月13日基于SSH的中小型酒店管理系统的设计与实现学生姓名: 指导教师: 内容提要 本系统主要使用JSP作为网页开发语言,使用MySQL作为数据库管理系统,开发环境是MyEclipse,服务器采用Tomcat,开发模式采用MVC,设计和开发一套适合中小型酒店企业管理的基于B/S的酒店管理系统,使酒店管理者得
2、到更有力的管理助手,彻底摆脱传统的基于C/S的管理系统等效率不高的管理方式,开发的系统不只面向管理者,更重要的是面向客户,系统友好的界面和健全的功能帮助中小酒店企业提高管理水平、工作效率和酒店声誉等。只有这样,才能帮助顾客高效获取相关酒店的详细信息。 关键词 酒店管理,Tomcat,MySQL ,JSP,SSH,B/S结构1 引言随着计算机网络的飞速发展,Internet技术越来越广泛的应用,网络覆盖的区域不断扩大,给酒店业计算机应用带来了蓬勃发展的机遇。酒店企业C/S管理体系的管理效率日趋下降,开发新管理体系事不宜迟,因此酒店企业要抓住机遇,开发出界面友好、功能健全、更好的用户体验的管理系统
3、,让其真正适合中小型酒店企业实际需求和社会需求。2 需求分析需求分析是项目开发的必要步骤,在需求分析阶段通过对身边的酒店进行实际的调研,了解相关的酒店的详细业务逻辑,对身边客户了解他们对酒店的需求,根据这些调研资料做出相应的需求分析文档。这样不但可以提高开发效率,而且还能快速开发出真正适合客户需求的系统,避免不必要的损失。 需求调研通过实际调研结果得出以下结论,中小型酒店企业大多沿用的是基于C/S模式管理方式,而这种管理方式是低效率的,C/S模式相对于B/S模式缺点十分突出。按照当前的计算机应用发展趋势,计算机管理应用系统正从C/S模式迈向B/S模式,对于酒店管理系统也不例外,运用B/S开发模
4、式让我们开发的管理系统越来越能符合中小型酒店企业的实际需求和社会需求。市场上的酒店管理系统大部分都是针对大型酒店开发和设计的,很多大型功能对于中小酒店企业不适用,并且价格昂贵,这对于在我国酒店企业中占据大多数的中小酒店企业来说选择这些软件有点不合理,不符合中小酒店企业的实际需求。鉴于以上现状,为了尽可能改善中小型酒店的经营效率,因此开发出一套真正适合中小酒店企业管理需求的系统事不宜迟。通过实际调研,确定本系统设计为客户端和管理端的管理模式,各项功能如下:客户端:客户端顾客有两种角色,一种为预订未入住角色;一种为已入住角色。 预订角色的操作权限: 1、用户浏览网站,若需要住宿则需事先办理注册登录
5、,若已注册,则可直接登录。 2、用户登录成功后,可以查询客房信息,进而可以预订房间。 3、预订房间的顾客可以查询自己的订单、更改预订房间。 4、查看个人信息。 5、查看客房评论。 6、留言。 入住角色的操作权限: 1、对于已入住的顾客,可以通过该系统继续查询客房信息,以便更换房间。 2、对客房评论,申请换房。 3、顾客可以查看订单状态和消费记录等信息。 4、顾客可以管理个人信息,查看个人消费记录,打印账单。 5、留言。 管理端:管理端管理员有两种角色,一种为“超级管理员”角色;一种为“普通管理员”角色。 超级管理员的特殊权限:人员管理,管理普通管理员和顾客。 以下是二者的共同权限: 1、客房管
6、理:类别管理、空房设置,查看客房评论。 2、预定管理:获得前台顾客预定信息,可以取消订单,可以办理预定转入住。 3、住宿管理:空房查询,登记入住,对入住的客房和顾客进行管理,可以进行换房操作,可以进行结账操作,可以处理前台入住顾客提出的换房申请,打印账单。 4、数据管理:对客房使用情况斤西瓜统计,以饼状图显示,可以查询结账报表,可以查看某一个年度的营业状况,用柱状图显示,打印报表,导出报表。 5、留言管理:对前台顾客所留言进行管理。 6、公告管理:后台发表公告。 7、系统管理:查看个人资料,修改密码,退出系统。开发任何一个系统,都会受到时间和资源上的限制。因此,在每一个项目开发之前,都要进行可
7、行性分析,可以减少项目的开发风险,避免人力、物力和财力的浪费。本系统开发工具是MyEclipse和MySQL数据库,开发语言是Java,主要使用了J2EE的技术,java是一种面向对象编程语言,简单易学而且灵活方便。因此,完成系统实现在技术上是可行的。由于开发工具和服务器全部为免费的开源软件,所以从经济上是可行的。本系统操作简单,该系统大量采用ajax技术,比如注册了一个身份证号,只要光标一离开文本框,该身份的用户信息就会被异步读取出来,而不用在提交表单的时候再访问数据库;时间的输入是用日历控件,既方便顾客操作又防止输入错误。总体上,本系统操作简便,对操作人员的要求很低,只需对WINDOWS操
8、作熟练,加之对本系统的操作稍加培训即可工作,而且本系统可视性非常好,所以在技术上不会有很大难度。综上所述,开发一个B/S酒店管理系统与之前C/S管理方式相比具有速度更快,操作更准确,节省开支等有利之处,因此,开发B/S酒店管理系统是必要可行的。3 系统设计本系统主要功能包括:管理端:人员管理、客房管理、预定管理、住宿管理、数据管理、留言管理、公告管理、系统管理。客户端:预订客房、申请换房、查看订单、查看账单、查看个人信息、评论、留言、查看公告。根据需求分析,最终确定该系统的功能模块如图3-1-1所示。图3-1-1功能模块图系统用例图如图3-2-1所示。图3-1-2用例图本系统使用功能强大的My
9、Eclipse作为总体开发环境,利用它我们可以在数据库和JavaEE的开发、发布,以及应用程序服务器Tomcat的整合方面极大的提高工作效率。在MyEclipse配置好其他环境之后,我们开发项目就不用再去配置MyEclipse之外的其他环境,如Tomcat的配置,以往未有MyEclipse的情况下,开发一个web项目很繁琐,每次发布项目必须把项目拷贝到Tomcat文件下,现在由于MyEclipse配置好了Tomcat环境,只要在MyEclipse上发布项目即可,省去很多繁琐的操作。本系统使用Tomcat作为项目开发的服务器,利用它我们可以在把项目发布到互联网上之前观察系统功能的实现和调试JSP
10、。数据库使用MySQL,对于一般的个人使用者和中小型企业来说,MySQL提供的功能已经绰绰有余,而且由于MySQL是开源软件,因此可以大大降低总体开发成本。本系统开发过程中运用了javaScript、ajax、SSH等技术。JavaScript是一种广泛用于客户端Web开发的脚本语言,使用Javascript可以开发交互式Web网页。在本系统中很多地方使用了javascript技术,如检验用户输入数据的有效性,是否重复,是否为空等。使用ajax,可以在不重新加载页面的情况与Web服务器交换数据。如在验证顾客用户名是否已被注册时,只要光标一离开文本框,客户端就直接和数据库交互,而不用等到所有的顾
11、客信息都填写完提交表单时才与数据库交互,这样就达不到异步实时验证的作用。本系统使用SSH三大框架进行开发,Struts2在控制层,主要功能是接收页面提交表单等的信息,对信息进行控制加工传递到业务层,并且对业务层返回来的处理结果转发或者重定向到页面上;Hibernate在数据操作层,它是ORM(对象关系映射)框架,它对JDBC进行了对象封装,如封装成HibernateTemplate,我们可以直接调用HibernateTemplate的API使用对象编程思维来操纵数据库。Spring可以完美结合struts2和Hibernate。Spring的两个核心是控制反转IOC和面向切面编程AOP。本系统
12、使用了Spring的面向接口编程特性,这样可以对后期业务需求的变化进行更好的管理;此外,还运用了AOP配置事务,增加操作的一致性。 数据库E-R图该系统包括管理员、顾客、客房、预订单、住宿单等多个实体,如图3-5-1是本系统的E-R图 图3-5-1实体关系 E-R图 数据库设计本系统总共设计了11张数据表,数据表的设计主要涉及数据的类型、含义以及一些约束。其中数据约束主要包括是否为主键和是否为空。具体数据库表结构如下:(1) 顾客表表3-6-1 t_user表(顾客的相关信息)(2) 预订表表3-6-2 t_preOrder表(预订的相关信息)(3) 客房信息表表3-6-3 t_room表(客
13、房的相关信息) (4) 入住信息表表3-6-4 t_living表(入住的相关信息)此外,还有如下六张表:1)客房评论表(t_comment):ID(主键)、roomId(客房编号)、userName(顾客账号)、content(评论内容)、commentTime(评论时间)。2)留言信息表(t_liuyan):ID(主键)、title(标题)、userName(顾客账号)、content(内容)、liuyanTime(留言时间)。3)公告信息表(t_notice):ID(主键) 、title(标题)、content(内容)、noticeTime(公告时间)。4)换房申请表(t_swapRoo
14、m):ID(主键) 、newRoomId(新客房编号)、oldRoomId(旧客房编号)、Reson(申请原因)、SwapState(更换状态)、userName(顾客账号)、applyTime(申请时间)。5)客房类型表(t_category):categoryId(类型编号、主键)、categoryName(类型名称)、modol(单双人间)。6)管理员信息表(t_manager):ID(主键)、managerName(账号)、password(密码)、role(角色)。客户端流程:顾客浏览网站,可以浏览客房信息,但是想要预订客房、查看个人信息、留言时系统会弹出一个提示框,提示“请您先登录
15、”,若是游客有账号,则可以直接登录,若是还没有账号,则需先注册,注册成功后则可以登录。登录的顾客有两种角色,一种是未入住的顾客,一种是已入住的顾客,前者的操作权限有:预订客房、查看客房评论但不能评论客房、查看预订单信息、修改订单;后者的操作权限有:申请换房、查看账单。二者共同的操作有:查看客房信息、查看个人信息、留言、查看公告信息,如图3-7-1 所示。 图 3-7-1客户端流程图 管理端流程:管理员登录管理端,管理员的角色分为:超级管理员、普通管理员。系统会根据管理员的角色显示不同的界面,两个界面的唯一区别是,前者的界面比后者的界面多了“人员管理”模块,因为超级管理员比普通管理员多了人员管理
16、权限。管理员登录成功后,超级管理员可以对注册的顾客进行管理(查询、删除),也可以对普通管理员进行管理(增加、删除、查询)。两种角色的管理员共同的操作有:客房管理、预订管理、住宿管理、数据管理、留言管理、公告管理、系统管理,如图3-7-2 所示。 图 3-7-2管理端流程图4 系统的实现为方便用户的操作本系统在设计方面比较简洁明了,本系统的主要功能的实现如下所示:主界面可以显示除被锁客房外所有客房的相关信息,包括客房类型、客房编号、当前状态。另外,主界面还有顾客注册登录、个人信息查看、客房的类型、酒店公告等信息。系统通过对客房进行分类,方便顾客根据自己的需求查询酒店,顾客可以根据客房价格和客房类
17、型迅速查找出适合自己的客房。如图4-1-1所示。 图4-1-1客户端主界面以下逐一介绍客户端的功能实现流程:未登录系统的顾客,点击导航栏的个人信息和留言板以及想预订客房时,系统会弹出一个提示框提示“请您先登录”。如果未注册账号,点击注册按钮进行注册。注册信息都添加了验证,最重要的是运用ajax技术异步验证用户名和身份证号是否已经被注册,当整个表单信息有一个无效时,系统拒绝顾客注册,如图4-1-2所示;当填写的信息都有效时,系统允许注册如图4-1-3所示。 图4-1-2信息无效界面 图4-1-3信息有效界面顾客登录模块运用了验证码技术,防止用户重复登录。页面上的验证码图片是从session中获取
18、的,顾客登录时,在后台先将顾客输入的验证码和session中的验证码对比,若是相同则允许进行下一步,若是不同则返回界面提示验证码不正确。如图4-1-4所示。图4-1-4登录界面登录成功后,系统会根据顾客的角色的不同而显示不同的界面。预订客房未入住的顾客登录成功后主界面:预订未入住的顾客可以查看自己的预订单,如图4-1-5所示。图4-1-5导航条显示已入住顾客的主界面:已经入住的顾客可以查看自己的消费账单,如图4-1-6所示。图4-1-6导航条显示点击导航栏上的“个人信息”查看个人信息(并且能够修改*标记的信息),如图4-1-7 所示。图4-1-7个人信息预订客房未入住的顾客可以查看自己的预订单
19、和历史订单,如图4-1-8 所示。图4-1-8订单信息预订客房未入住的顾客在“订单信息”的页面可以取消订单、更改订单、查看历史订单,如图4-1-9 和图4-1-10所示。图4-1-9修改订单图4-1-10历史订单两种角色的顾客都可以添加留言和查看历史留言,如图4-1-11和图4-1-12所示。图4-1-11添加留言图4-1-12查看留言已入住顾客查看账单,点击打印按钮就会调用打印机进行打印,如图4-1-13 所示。图4-1-13查看账单两种角色的顾客都可以点击导航栏的客房类型可以查询出相应类型的客房,以下是查询豪华客房,如图4-1-14 所示,输入价格区间 50100,查出来的客房价格都是在5
20、0100之间的客房,如图4-1-15 所示。图4-1-14按类型查询客房图4-1-15按价格查询客房已入住的顾客浏览客房信息,可以进行申请换房、评论客房、查看客房评论等操作。顾客提出的换房申请会提交到管理端,让管理员进行处理,如图4-1-16和4-1-17 所示。图4-1-16客房信息图4-1-17换房申请预订未入住的顾客浏览客房详细信息,不可以评论客房,可以查看客房评论,如图4-1-18 所示。图4-1-18客房信息预订未入住的顾客点击预订,填写信息预订客房,如图4-1-19 所示。图4-1-19预订信息顾客预订客房流程:顾客在界面上可以浏览所有客房的信息,包括空房、已被预订客房、已被入住客
21、房,对于空房可以无限制预订,对于已被预订的客房,也可以进行预订,输入入住日期和离宿日期后,获得入住的天数day_0,在添加订单之前先查询该客房的所有订单,根据之前订单计算出之前订单住宿天数day_2,如果现入住日期date1在之前订单的入住日期date2之前,计算出二者相隔天数day_1=date2-date1,如果day_10,表示现预订日期在之前预订日期之前,并且如果day_1day_0,则能继续预订该客房,否则时间发生冲突,不能进行预订。如果day_1day_2,则能继续预订该客房,否则时间发生冲突,不能进行预订。对于已被入住客房,预订流程和已被预订的客房的预订类似。预订未入住的顾客预订
22、一个目前为“入住”状态的客房,如图4-1-20 所示。图4-1-20住宿信息客房1002已经被入住,住宿日期是2013-05-11至2013-05-15,现在另一位顾客想预订该客房,预订入住时间为2013-05-12,点击“预订”时会发生以下事情,如图4-1-21 所示。图4-1-21预订信息客房1001已经被预订,预订日期是2013-05-11至2013-05-13,现在另一位顾客想预订该客房,预订入住时间为2013-05-11,点击“预订”时会发生以下事情,如图4-1-22 所示。图4-1-22预订信息正常情况下可以预订成功,如图4-1-23 所示。图4-1-23预订信息:管理员登录,如图
23、4-2-1 所示。图4-2-1管理员登录界面登录成功进入管理端操作界面,如图4-2-2 所示。图4-2-2后台操作界面管理端管理员有两种角色,一种是超级管理员,一种是普通管理员,前者比后者多一项“人员管理”权限,因此管理员登录成功之后的界面会根据角色的不同而又不同的显示,前者比后者多了个“人员管理”模块。以下逐一概述管理端的各个功能模块:人员管理模块:该模块是超级管理员特有的权限,超级管理员可以对注册的顾客进行管理(查询、删除);可以对普通管理员进行管理(添加、删除、查询);可以按照账号、角色查询普通管理员;可以根据账号、姓名、角色查询顾客,如图4-2-3和图4-2-4 所示。图4-2-3管理
24、员管理图4-2-4顾客管理客房管理模块:该模块两种角色的管理员都可以管理客房类别(添加、删除);可以对空客房管理(添加、删除、更改、查询),如图4-2-5和图4-2-6所示。图4-2-5类别管理在空房设置界面,在该页面管理员可以添加客房、删除(批量)客房、锁房、查看相对应客房的评论、更改客房的其他信息、点击图片修改客房的图片。被锁的客房将不能在客户端主页面显示,页面还提供条件查询功能,可以按照客房编号、客房类别查询,支持模糊查询。该模块多处地方采用ajax技术,还采用了分页技术,用于解决由于数据太多,页面加载缓慢问题,增强用户体验。图4-2-6客房管理添加客房和更新客房界面如图4-2-7所示。
25、添加客房界面中的客房类别数据是运用ajax技术异步刷新,这样能提高界面友好,防止管理员输入无效的类型而出错。更新界面中的客房数据也都是异步读取。 图4-2-7 添加客房和更新客房预订管理模块:该模块下管理员可以对客户端顾客的预订单进行管理,办理预订转入住、取消订单,按条件(顾客账号、客房编号、订单状态)查询订单,如图4-2-8所示。图4-2-8预订单管理点击右侧的“入住”,系统则会根据你预订客房的类型和顾客的注册信息弹出相对应的客房类型的登记表,管理员点击“登记”按钮就可以填写到登记入住表中,此时在住宿管理模块可以查询到这个入住信息。如图4-2-9所示。图4-2-9预订转入住登记住宿管理模块:
26、该模块管理员可以对已入住的顾客进行管理,管理员可以给顾客换房、退房结账、查询空房、对前台已入住顾客提出的换房申请进行办理等操作。一系列的操作是为了方便到店顾客快速高效登记入住。之前预定转入住的顾客住宿信息,如图4-2-10所示。图4-2-10住宿信息点击换房,弹出一个“更换客房”对话框,如图4-2-11所示。图4-2-11换房信息由管理员输入顾客想换到的客房,若是该客房不是空房或者已被锁,则提示“客房无效”,若是客房有效,则能换房成功,然后查询预订单,若预订单中没有该客房的预订信息,则将客房置为“空闲”,若是有该客房的预订信息,则将客房置为“预订” 状态,对于后面的“换房申请”的办理流程类似该
27、过程。换房成功后,系统还应将原住房的消费写入到数据库中,方便以后结账时连原住房的账款一起结算。点击退房结账,可以成功结账,并且还可以打印账单,如图4-2-12所示。图4-2-12结账信息管理员点击空房查询,可以办理入住,根据客房的类型,系统给出不同的登记入住表单,在入住表单上采用了ajax技术,只要身份证号已经注册过本系统,在输入身份证号之后,则会异步刷新出该顾客的其他信息,这样能给顾客良好的体验感,而且避免之前注册过的顾客又重新注册一次的问题;若是从未注册,系统不能给出该顾客的其他信息,此时顾客需填写好各项信息。登记成功后,该顾客的信息也会注册到系统中,下次再登记时就不用重新录入信息了,如图
28、4-2-13所示。图4-2-13空房信息如图4-2-14所示是双人房登记入住表,由于第一位顾客已经注册过,则在输入身份证号后,就会得到他的其他信息,而第二位顾客还未注册,则不能得出其他信息,只能逐一填写。图4-2-14房间登记入住管理员查看客户端提出的换房申请,处理流程和之前住宿管理的换房处理流程类似,如图4-2-15所示。图4-2-15换房申请数据管理模块:该模块可以查看客房的状况比例图,如图4-2-16所示,还能查看营业报表,查询一段时期的营业报表,查询某年度的营业状况图。图4-2-16客房的状况比例图管理员可以查询一段时期的营业报表,管理员可以对报表进行打印和导出,如图4-2-17所示。
29、图4-2-17营业报表管理员可以查询某一年度的营业状况图,如图4-2-18所示。图4-2-18年度营业状况留言管理模块:查看前台顾客留言,删除留言,如图4-2-19所示。图4-2-19留言公告管理模块:添加公告,删除公告,如图4-2-20所示。图4-2-20公告系统管理模块:查看个人资料、修改密码,如图4-2-21所示。图4-2-20系统管理5总结本系统是一个功能基本实现的中小型酒店管理系统。客户端可以预订酒店、申请换房、查看个人信息、查看订单、查看账单,还提供条件查询客房的功能,可以方便顾客快速方便地预订合适的客房;管理端有八大管理模块,超级管理员可以对人员进行管理,超级管理员和普通管理员可
30、以对客房进行管理,处理预订单,管理住宿信息,登记入住,管理客户端顾客提出的换房申请,对以图表形式展示数据进行管理,最后是管理留言,管理公告,修改密码等,基本的功能已经实现。当然本系统还有很多功能待完善,如会员的积分制度等。在做这个项目的过程中遇到很多问题,首先是对酒店业务逻辑的不熟悉,再者是对ssh框架的不熟悉,导致在数据库设计时绕了弯路,在查找资料熟悉这些业务逻辑和框架之后,才顺利设计出合适的数据库结构。项目里边涉及很多小技术,比如分页技术、ajax技术、验证码技术、jfreeChar图表显示技术等,这些技术是开发项目必须具备的,我花了不少时间去研究这些技术,我很高兴能通过这次毕业设计将他们
31、牢牢掌握。在设计过程中当然还少不了同学和老师的帮助,在导师检查程序的时候,两位导师悉心指出我项目中某一方面的不足,我很感谢他们提出来,因为他们是站在客户的立场,我们开发项目就是要满足客户的需求,有需求才有设计,有设计才能完善,所以经她们一提出,回来后我马上分析了一下需求,然后修改了程序,最终修改成功,这就是项目开发的流程。6 致谢首先感谢我的学院计算机与信息技术学院给予了我这个锻炼的平台,大学四年,即将随着毕设答辩结束而终了,这次毕设是检验我们大学四年所学的知识,我很欣慰自己能够顺利地完成,也算是给自己四年时间的一个交代吧,当然做项目的过程中也得到了老师和同学们的帮助,特别是庞继芳导师的悉心指
32、导,她总是督促我们,让我们有一种紧迫感,这种感觉很好,因为我们不能够太懒散了,懒散是不能做出东西的,只有高度集中,才能有所成就,这就是导师交给我们的哲理。做项目其实是一个最好的锻炼机会,我们会从项目中发现很多问题,解决问题就是一种提高的过程,从中学会了如何去解决问题。总之,快要毕业了,可是我们不会就此放下,继续学习,加油!参考文献1 孙卫琴Java 面向对象编程北京:电子工业出版社 292 孙卫琴,李洪成Tomcat与Java Web开发技术详解北京:电子工业出版社 293 王珊,萨师煊. . 北京:高等教育出版社 4 朱德利. 基于Web 2010第11期5 史金磊,朱海荣. 基于B/ 20
33、09第4期6 任红霞. 基于B/S模式的酒店管理系统的设计与实现 第23卷第4期 2010年8月7 李刚. 轻量级Java_EE企业应用实战_Struts_2+Spring_3+. 北京:电子工业出版社 8 Abraham Silberschatz. DATABASESYSTEMCONCEPTS(Fourth)M.北京:高等教育出版社 20029 Cay Gary Java, Vol. 2: Advanced Features, 8th Edition. Prentice Hall 10 William Crawford, JonathanKaplan. J2EE Design Pattern
34、s 11 Rod Johnson ,Juergen HoellerExpert One-on-One J2EE Development without EJB. Wiley Publishing, Inc. 200631The Hotel Management System Based on SSHStudent Name:Huang Haifeng Tutor:Pang JifangAbstract This system mainly use JSP as the web development language, and MySQL as a database management de
35、velopment environment is MyEclipse, with tomcat as the server, and the MVC development mode to develop a framework based on SSH technology and B/S structure as the hotel management system. This system can help the hotel managers get more powerful management assistant, and get rid of the traditional
36、management system based on C/S. This management system is not only to fit the needs of managers, but also to fit the needs of customers. The friendly interface and perfect functions help the hotel improve management level and the work efficiency, hotel reputation and etc. Only in this way can this system help the customers to get detailed information of the hotel effectively.Keywords hotel management, Tomcat, MySQL, JSP, SSH, B/S structure
©2010-2024 宁波自信网络信息技术有限公司 版权所有
客服电话:4008-655-100 投诉/维权电话:4009-655-100