基于JSP和MySQL开发的酒店管理系统的设计与实现

基于JSP和MySQL的酒店管理系统 1 开发背景 1,1 系统开发背景与意义 近年来随着生活水平的提高,人们会利用假期到全国各地旅游与消费,这促进了酒店业进入了一个快速发展的轨道

本文包含相关资料包-----> 点击直达获取<-------

基于JSP和MySQL的酒店管理系统

1 开发背景

1.1 系统开发背景与意义

近年来随着生活水平的提高,人们会利用假期到全国各地旅游与消费,这促进了酒店业进入了一个快速发展的轨道。随着旅游业的发展,在每个城市中,当地的酒店业就像是一个城市的名片,也是一个小型社会,酒店服务的好坏关系到城市的形象与发展。尤其随着中国成功地加入世界贸易组织后,国内酒店业的发展必须与国际酒店进行接轨,这也是酒店管理人员必须面对与考虑的问题,要实现与国际酒店的接轨,则必须要加强酒店内部管理问题,提高酒店的服务水平,提高酒店的工作效率,增强市场竞争力,为了更好实现酒店客房的管理与经营,酒店客房管理信息系统的信息化、合理化已成为酒店经营者的一种必然的选择。酒店客房管理是整个酒店管理的一个非常重要的环节,随着计算机技术与互联网技术的不断发展与成熟,信息化管理客房成为酒店管理的一种非常重要的手段。同时也是提高酒店客房管理工作效率与经济效益的一种先进的管理模式。信息化管理酒店具有优越性与高效性,因此分析与开发酒店客房管理系统便得到酒店经营者的青睐和重视。

1.2 研究内容

酒店管理系统可以依据系统特点在服务器中进行部署,使得通过互联网查看服务器上的管理系统,可以方便地实时查询酒店客房入住情况、客房信息、当前房间状态等信息。

研究的内容主要包括以下方面:

该系统的开发主要包括后台数据库的建立、连接和维护以及前台网络页面的开发两大方面。由于Java的跨平台性、安全性等诸多优势,本论文采用Jsp+SSM+MySql的技术途径和规范全局设计开发流程,在Eclipse的开发环境下设计、编写酒店管理系统。

该系统主要模块有登录、房间管理、住宿管理、财务管理、旅客管理等五大功能模块,客房工作人员可以进行旅客信息登记、入住登记、客房盘点、旅客管理、员工管理、费用查询与统计、客房入住情况查询等详细信息。

1.3 文档的组织结构

文档的组织结果安排如下:

  • 第一章绪论介绍了系统开发的背景与意义,对主要研究内容进行了说明,对文档的组织结构进行了阐述

  • 第二章主要讨论了系统的需求以及实现相关功能的关键技术和方法

  • 第三章对系统进行了业务建设与设计,对系统的用户角色和功能需求作了初步设计

  • 第四章主要对系统相关实现作了更详细的阐述,阐述了系统开发过程中所设计的代码、接口等

  • 第五章性能测试与分析

  • 第六章主要阐述了对系统的总结和展望

  • 最后为致谢与参考文献

2 系统需求分析

2.1 系统需求分析

需求是软件开发的基础,也是研发团队进行系统开发的凭据。有资料指出在软件开发周期中,如果软件项目越新颖、所涉及的应用领域越偏僻,需求分析所占用的时间可以达到整个开发周期的一半以上,而如果是迭代式的开发模型,需求时间也不应该少于1/3。可见,软件需求的重要性不言而喻。然而在软件开发中,需求不明确,客户的参与度不高,沟通不及时,获取客户的信息不完整;无法理解某些领域的技术指标和概念;客户想法的多变性都会造成需求的变更,而一旦变更就会对软件的开发进度和整体结构产生影响,甚至是灾害性的重新设计。

需求分析通过对收集到的需求资料进行分析,深层次的说明需求所表达的含义,介绍软件需要开发的功能和特性,描述软件要提供的接口或者和其它软件交互的方式,确定其它的非功能性需求。所以,需求分析是确定软件需要完成的内容,而不是如何完成这些功能要求。

2.2 可行性分析

2.2.1 经济可行性

本课题要求实现一个酒店管理系统,系统本身并不复杂,实现起来相对比较容易。由于Java在Web开发上的优势,本系统的开发周期并不需要太长,这样对成本的要求并不是太高。

本系统基于B/S模式:在这种结构下,用户工作界面是通过WWW浏览器来实现,极少部分事务逻辑在前端(Browser)实现,但是主要事务逻辑在服务器端(Server)实现,形成所谓三层结构。这样就大大简化了客户端电脑载荷,减轻了系统维护与升级的成本和工作量,降低了用户的总体成本(TCO)。

传统的酒店客房管理大部分是由人工手工操作,这需要大量的人力、精力和物力。而采用计算机辅助的客房管理系统进行管理,则在人力、精力和物力等方面可以大大降低,开发计算机酒店客房管理系统只需一些设备费用与开发费用。而随着现代企业管理信息化的不断发展,大部分员工都有计算机,因此系统开发的硬件投入成本不大,主要费用是软件开发与维护费用。如果酒店客房管理系统投入使用,则可以从物力、人力、精力方面得全面的降低成本开销。除此之外,信息管理系统还有两个重要的作用:第一,利用酒店客房管理系统,可以对客房的信息进行时时存储、更新,提高客房信息的准确性、时效性,避免因信息更新不及时而导致经济上的损失;第二,通过系统,可以进行在线时时统计经营情况,如客源信息、消费账目等,有利于客房管理者及时了解与统计酒店客房的经营信息,并为下一步决策提供依据。

通过信息管理系统可以有效提高数据存储的准确性和更新数据的实时性,减少了由于数据不准确造成的业务损失。信息管理系统提供了科学的统计工具,使客房管理的负责人或酒店管理者能实时掌握客房入住的数据,做到优化酒店资源配置和及时调速整客房经营策略,真正做到酒店客房的信息化、科学化管理。

因此,以计算机技术开发的酒店客房管理系统对酒店客房进行管理,可以极大的降低酒店的经营成本,而对于中小型酒店,一般都可承担系统开发的费用。

2.2.2 技术可行性

本系统基于Jsp+SSM+Tomcat+MySQL,并采用B/S模式,由于JSP、SSM功能强大,而Tomcat和MySQL灵活易维护在开发方面具有方便快捷、使用灵活的特点,以及目前的广泛实际应用,因此使用JSP、SSM、Tomcat和MySQL是开发轻平台的最佳组合从而说明本系统在技术方面可行。

硬件方面,科技飞速发展的今天,硬件更新的速度越来越快,容量越来越大,可靠性越来越高,价格越来越低,其硬件平台完全能满足此系统的需要。

开发本系统所需的软件系统都可免费获得,软件所依赖的相关组件都为开源软件并可以免费引用。

所以从技术角度开发酒店管理系统也是完全可行的。

2.3 功能分析

  • 登录功能 :系统提供登录功能,管理员输入用户名和密码,可以登录酒店管理系统

  • 房间管理功能 :管理员可以对酒店的房间进行管理,可以添加、查看、修改和删除酒店的房间信息

  • 住宿管理功能 :管理员可以对酒店的住宿信息进行管理,可以添加、查看、修改和删除酒店的住宿信息

  • 财务管理功能 :管理员可以查看酒店的财务统计信息

  • 旅客管理功能 :管理员可以对住宿酒店的旅客信息进行管理,可以添加、查看、修改和删除旅客的信息

2.4 技术分析

大部分用过程语言比如ASP,PHP开发出来的WEB应用,初始的开发模板就是混合层的数据编程。例如,直接向数据库发送请求并用HTML显示,开发速度往往比较快,但由于数据页面的分离不直接,因而很难体现出业务模型的样子或者模型的重要性。产品设计弹性力度很小,很难满足用户的变化性需求。而MVC模式要求对应分层,虽然要花费额外的工作,但产品的结构清晰,产品的应用通过模型可以得到更好的体现。一旦模型发生改变也易于维护。其次,由于模型返回的数据不带任何显示格式,因而这些模型也可直接应用于接口的使用。再次,由于一个应用被分离为三层,因此有时改变其中的一层就能满足应用的改变由于不同的层各司其职,每一层不同的应用具有某些相同的特征,有利于通过工程化、工具化产生管理程序代码。

酒店管理系统采用SSM(Spring MVC+Spring+Mybatis)框架开发,是标准的MVC模式,将整个系统划分为View层,Controller层,Service层,DAO层四层。其中,Spring MVC负责请求的转发和视图管理,Spring实现业务对象管理,Mybatis作为数据对象的持久化引擎。如图2-1所示:

3 系统设计

3.1 系统概述

酒店管理系统功能划分为以下几大模块,分别是登录、房间管理、住宿管理、财务管理和旅客管理功能模块。

酒店管理系统采用JAVA的三层架构开发,发布版本的运行环境包括:

  • 客户端
  • 操作系统:Win7
  • 浏览器:谷歌浏览器

  • 服务器端

  • 操作系统:windows server 2003
  • 应用服务器:Tomcat

  • 数据库服务器端

  • 操作系统:windows server 2003
  • 数据库系统:MYSQL5.1

3.2 系统功能

系统功能模块

3.3 数据库整体设计

计算机化的管理信息系统是一个以大量数据资源为基础并以此为中心而建立起来的应用系统。其目的是为一个组织中各个部门和各个管理层次提供必要的管理信息和决策数据,由于涉及到应用领域中一定的深度和广度,因而必然需要接触大量的不同类型的数据。对这些数据的合理组织和有效的存储时管理信息系统开发中一项至关重要的工作。

数据库(DataBase),是按照数据结构来组织、存储和管理数据的仓库,是用于查询大量数据的存储区域。使用数据库可以减少数据的冗余度,大大的节省数据的存储空间,实现数据资源充分共享等等功能。

本系统中一共有八张数据表,分别为管理员表(如表3-1所示),旅客表(如表3-2所示),房间表(如表3-3所示),商品表(如表3-4所示),预定登记表(如表3-5所示),住宿登记表(如表3-6所示),住宿登记明细表(如表3-7所示),消费明细表(如表3-8所示)。

管理员表(tb_user)表结构

字段名称 数据类型 主键 是否空 说明
id int(11) Y N 管理员ID
userName varchar(20) N Y 账号
password varchar(20) N Y 密码

旅客表(tb_account)表结构

字段名称 数据类型 主键 是否空 说明
id int(11) Y N 旅客ID
papersID int(11) N Y 证件ID
educationDegreeID int(11) N Y 证件ID
genderID int(11) N Y 性别ID
passengerLevelID int(11) N Y 旅客级别ID
nationID int(11) N Y 民族ID
name varchar(20) N Y 姓名
papersNumber varchar(30) N Y 证件号码
birthDate varchar(30) N Y 出生日期
papersValidity varchar(50) N Y 证件有效期
profession varchar(20) N Y 职业
contactPhoneNumber varchar(20) N Y 联系电话
remarks varchar(100) N Y 备注

房间表(tb_room)表结构

字段名称 数据类型 主键 是否空 说明
id int(11) Y N 房间ID
guestRoomLevelID int(11) N N 客房等级ID
roomStateID int(11) N N 房态ID
roomNumber varchar(10) N N 房间号
roomAmount varchar(10) N N 床位数
standardPriceDay decimal(8,2) N Y 标准房价/天
standardPrice decimal(8,2) N Y 标准房价/小时
maxDuration varchar(10) N Y 时长限制(小时)
firstDuration varchar(10) N Y 首段时长(小时)
firstPrice decimal(8,2) N Y 首段价格

商品表(tb_menu)表结构

字段名称 数据类型 主键 是否空 说明
id int(11) Y N 商品ID
commodityTypeID int(11) N Y 商品类别ID
uOMID int(11) N Y 计量单位ID
commodityName varchar(50) N Y 商品名称
salePrice decimal(8,2) N Y 销售价格

预定登记表(tb_checkin)表结构

字段名称 数据类型 主键 是否空 说明
id int(11) Y N 预定ID
roomID int(11) N Y 房间ID
predetermineTargetID int(11) N Y 预定对象ID
passengerID int(11) N Y 旅客ID
payWayID int(11) N Y 支付方式ID
predetermineStateID int(11) N Y 预定状态ID
arriveTime timestamp N Y 抵达时间
deposit decimal(8,2) N Y 押金
predetermineDay varchar(10) N Y 预定天数
remind int(11) N N 到时提示

住宿登记表(tb_authority)表结构

字段名称 数据类型 主键 是否空 说明
id int(11) Y N 住宿登记ID
predetermineID int(11) N Y 预定ID
rentOutTypeID int(11) N Y 出租方式ID
roomID int(11) N Y 房间ID
payWayID int(11) N Y 结账方式ID
billUnitID int(11) N Y 结账单位ID
passengerTypeID int(11) N Y 旅客类别ID
receiveTargetID int(11) N Y 接待对象ID
deputyID int(11) N Y 副ID
isBillID int(11) N Y 结账否
registerTime timestamp N Y 登记时间
stayNumber varchar(20) N Y 住店天数/小时
sumConst decimal(8,2) N Y 总费用
ChangingRoomNumber varchar(10) N Y 换房次数
changRoomMoney decimal(8,2) N Y 换房费
remarks varchar(200) N Y 备注
payTime timestamp N Y 结账时间
changRoomTime timestamp N Y 换房时间
remind int(11) N N 提醒结账

住宿登记明细表(tb_item_param)表结构

字段名称 数据类型 主键 是否空 说明
id int(11) Y N 住宿登记明细id
stayRegisterID int(11) N Y 住宿登记id
passengerID int(11) N Y 旅客id

消费明细表(tb_item_param_item)表结构

字段名称 数据类型 主键 是否空 说明
id int(11) Y N 消费明细ID
stayRegisterID int(11) N Y 住宿登记ID
commodityID int(11) N Y 商品ID
consumptionNumber varchar(10) N Y 消费数量
consumptionMoney decimal(8,2) N Y 消费金额
consumptionTime timestamp N Y 消费时间

4 系统实现

4.1 系统开发规划

酒店管理系统采用JAVA标准分层的基于组件模型设计。将处理过程拆分到不同的层级、不同服务、不同应用服务器中分别处理,使服务器资源得到更好的利用,解决网络传输时高并发的问题。

酒店管理系统采用经典的三层结构,面向对象的JAVA语言和MYSQL数据库存储数据。三层框架包括了界面层、逻辑层和数据层。

  • 表现层 :是系统数据来源和UI部分,承担用户操作与逻辑层之间的交互。在本层中实现前台页面的信息显示。后台登录和基本信息的管理操作。用户通过界面操作和业务逻辑层传输数据

  • 逻辑层 :是整个系统的核心,它与这个系统的业务紧密相关

  • 数据层 :其功能主要是负责数据库的访问。简单的说就是实现对数据表的Select, Insert, Update, Delete的操作。数据库的设计是在这一套开发系统中十分重要的,好的数据库建立可以让其更快的完成项目。整个数据库的创建是酒店管理系统开发和创立的核心技术,概括的说,就是根据用户的需求创立起满足用户的需要的数据库。数据库的整体设计是在软件开发是其最主要的问题

4.2 开发语言简介

4.2.1 JSP语言

JSP本是一个简化的Servlet设计,它 是由Sun Microsystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。JSP技术有点类似ASP技术,它是在传统的网页HTML(标准通用标记语言的子集)文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件,后缀名为(*.jsp)。 用JSP开发的Web应用是跨平台的,既能在Linux下运行,也能在其他操作系统上运行。

JSP技术使用Java编程语言编写类XML的tags和scriptlets,来封装产生动态网页的处理逻辑。网页还能通过tags和scriptlets访问存在于服务端的资源的应用逻辑。JSP将网页逻辑与网页设计的显示分离,支持可重用的基于组件的设计,使基于Web的应用程序的开发变得迅速和容易。 JSP(JavaServer Pages)是一种动态页面技术,它的主要目的是将表示逻辑从Servlet中分离出来。

4.2.2 MYSQL数据库

酒店管理系统使用MYSQL平台,MYSQL相比其它数据库软件有独特的优越性,可视化的数据库创建平台,自动生成数据库关系图,视图的可视化编辑,这些特性都为程序员带来了很大便捷。MYSQL数据库和JAVA配合较为紧密,选用MYSQL数据库,无须再编写驱动或者下载驱动。ADO.NET提供了所有操作MYSQL数据库的方法。而MYSQL数据库是相对比较成熟和完善的,适合酒店管理系统的要求。

4.3 开发页面简介

4.3.1 用户登录页面

登录界面如图4-1所示,如果用户不存在则点击注册去进行注册,注册界面如图4-2所示:

在登录页面输入用户名、密码和验证码后,点击提交,跳转到登陆的controller层中,在controller中会对用户名和密码进行判断,以下为登陆的关键代码。

java @RequestMapping(value="/login",method=RequestMethod.POST) @ResponseBody public Map<String,String> loginAct(Account account,String vcode,HttpServletRequest request){ Map<String,String> retMap = new HashMap<String, String>(); if(account == null){ retMap.put("type", "error"); retMap.put("msg", "请填写正确的用户信息!"); return retMap; } if(StringUtils.isEmpty(account.getName())){ retMap.put("type", "error"); retMap.put("msg", "用户名不能为空!"); return retMap; } if(StringUtils.isEmpty(account.getPassword())){ retMap.put("type", "error"); retMap.put("msg", "密码不能为空!"); return retMap; } if(StringUtils.isEmpty(vcode)){ retMap.put("type", "error"); retMap.put("msg", "验证码不能为空!"); return retMap; } Object attribute = request.getSession().getAttribute("accountLoginCpacha"); if(attribute == null){ retMap.put("type", "error"); retMap.put("msg", "验证码过期,请刷新!"); return retMap; } if(!vcode.equalsIgnoreCase(attribute.toString())){ retMap.put("type", "error"); retMap.put("msg", "验证码错误!"); return retMap; } Account findByName = accountService.findByName(account.getName()); if(findByName == null){ retMap.put("type", "error"); retMap.put("msg", "用户名不存在!"); return retMap; } if(!account.getPassword().equals(findByName.getPassword())){ retMap.put("type", "error"); retMap.put("msg", "密码错误!"); return retMap; } if(findByName.getStatus() == -1){ retMap.put("type", "error"); retMap.put("msg", "该用户已被禁用,请联系管理员!"); return retMap; } request.getSession().setAttribute("account", findByName); request.getSession().setAttribute("accountLoginCpacha", null); retMap.put("type", "success"); retMap.put("msg", "登录成功!"); return retMap; }

在注册页面输入用户名和密码、确认密码、手机号码后,点击提交跳转到注册的controller层中,在controller中会对注册的内容进行判断,以下为注册的关键代码。

java @RequestMapping(value="/reg",method=RequestMethod.POST) @ResponseBody public Map<String,String> regAct(Account account){ Map<String,String> retMap = new HashMap<String, String>(); if(account == null){ retMap.put("type", "error"); retMap.put("msg", "请填写正确的用户信息!"); return retMap; } if(StringUtils.isEmpty(account.getName())){ retMap.put("type", "error"); retMap.put("msg", "用户名不能为空!"); return retMap; } if(StringUtils.isEmpty(account.getPassword())){ retMap.put("type", "error"); retMap.put("msg", "密码不能为空!"); return retMap; } if(StringUtils.isEmpty(account.getMobile())){ retMap.put("type", "error"); retMap.put("msg", "手机号不能为空!"); return retMap; } if(isExist(account.getName())){ retMap.put("type", "error"); retMap.put("msg", "该用户名已经存在!"); return retMap; } if(accountService.add(account) <= 0){ retMap.put("type", "error"); retMap.put("msg", "注册失败,请联系管理员!"); return retMap; } retMap.put("type", "success"); retMap.put("msg", "注册成功!"); return retMap; }

4.3.2 首页

本界面是酒店管理系统的首页设计,其功能主要具体如图4-3所示。

会员可以进行登录、注册、预定酒店房间、搜索酒店等等功能,以下为html关键代码。

```html 酒店管理系统首页

登录 | 注册 欢迎您:${account.name }  | 用户中心 | 注销登录

客房列表

客房 房型 可住人数 床位数 房价 房态 预订

${roomType.name }

${roomType.remark }

${roomType.liveNum } ${roomType.bedNum } ${roomType.price } 已满房 可预订
``` ### 4.3.3 房间管理 本界面是酒店管理系统的房间管理设计,其功能主要具体如图4-4所示。 ![](http://www.writebug.com/myres/static/uploads/2021/10/19/5a480bc1c0c590f90354a13d5b7c6b08.writebug) 管理员可以进行客房设置、搜索、增加、修改、删除客房信息,以下为html关键代码。 ```html
<%@include file="../common/menus.jsp"%>
``` ### 4.3.4住宿管理 本界面是酒店管理系统的住宿管理设计,其功能主要具体如图4-5所示。 ![](http://www.writebug.com/myres/static/uploads/2021/10/19/6c3b9bd9bc64c72f47dbc06185b72410.writebug) 管理员进行住宿管理,可以搜索、增加、修改和删除住宿信息,以下为管理住宿信息的主页。以下为js关键代码。 ```java function add(){ var validate = $("#add-form").form("validate"); if(!validate){ $.messager.alert("消息提醒","请检查你输入的数据!","warning"); return; } var data = $("#add-form").serialize(); $.ajax({ url:'add', dataType:'json', type:'post', data:data, success:function(data){ if(data.type == 'success'){ $.messager.alert('信息提示','添加成功!','info'); $("#add-sn").val(''); $("#add-remark").val(''); $('#add-dialog').dialog('close'); $('#data-datagrid').datagrid('reload'); }else{ $.messager.alert('信息提示',data.msg,'warning'); } } }); } /** * 编辑记录 */ function edit(){ var validate = $("#edit-form").form("validate"); if(!validate){ $.messager.alert("消息提醒","请检查你输入的数据!","warning"); return; } var data = $("#edit-form").serialize(); $.ajax({ url:'edit', dataType:'json', type:'post', data:data, success:function(data){ if(data.type == 'success'){ $.messager.alert('信息提示','修改成功!','info'); $('#edit-dialog').dialog('close'); $('#data-datagrid').datagrid('reload'); }else{ $.messager.alert('信息提示',data.msg,'warning'); } } }); } /** * 删除记录 */ function remove(){ $.messager.confirm('信息提示','确定要删除该记录?', function(result){ if(result){ var item = $('#data-datagrid').datagrid('getSelected'); if(item == null || item.length == 0){ $.messager.alert('信息提示','请选择要删除的数据!','info'); return; } $.ajax({ url:'delete', dataType:'json', type:'post', data:{id:item.id}, success:function(data){ if(data.type == 'success'){ $.messager.alert('信息提示','删除成功!','info'); $('#data-datagrid').datagrid('reload'); }else{ $.messager.alert('信息提示',data.msg,'warning'); } } }); } }); } /** * Name 打开编辑窗口 */ function openEdit(){ //$('#add-form').form('clear'); var item = $('#data-datagrid').datagrid('getSelected'); if(item == null || item.length == 0){ $.messager.alert('信息提示','请选择要编辑的数据!','info'); return; } $('#edit-dialog').dialog({ closed: false, modal:true, title: "编辑房间信息", buttons: [{ text: '确定', iconCls: 'icon-ok', handler: edit }, { text: '取消', iconCls: 'icon-cancel', handler: function () { $('#edit-dialog').dialog('close'); } }], onBeforeOpen:function(){ //$("#add-form input").val(''); $("#edit-id").val(item.id); $("#edit-sn").val(item.sn); $("#edit-status").combobox('setValue',item.status); $("#edit-roomTypeId").combobox('setValue',item.roomTypeId); $("#edit-floorId").combobox('setValue',item.floorId); $("#edit-remark").val(item.remark); $("#edit-preview-photo").attr('src',item.photo); $("#edit-photo").val(item.photo); } }); } /** * Name 打开添加窗口 */ function openAdd(){ //$('#add-form').form('clear'); $('#add-dialog').dialog({ closed: false, modal:true, title: "添加房间信息", buttons: [{ text: '确定', iconCls: 'icon-ok', handler: add }, { text: '取消', iconCls: 'icon-cancel', handler: function () { $('#add-dialog').dialog('close'); } }], onBeforeOpen:function(){ //$("#add-form input").val(''); } }); } //搜索按钮监听 $("#search-btn").click(function(){ var option = {sn:$("#search-sn").val()}; var status = $("#search-status").combobox('getValue'); var roomType = $("#search-roomType").combobox('getValue'); var floor = $("#search-floor").combobox('getValue'); if(status != -1){ option.status = status; } if(roomType != -1){ option.roomTypeId = roomType; } if(floor != -1){ option.floorId = floor; } $('#data-datagrid').datagrid('reload',option); }); ``` ### 4.3.5 财务管理 本界面是酒店管理系统的财务管理设计,其功能主要具体如图4-6所示。 ![](http://www.writebug.com/myres/static/uploads/2021/10/19/95dd20c181e1baebbeada5f06bf8a858.writebug) 管理员进行财务管理,以下为财务管理主页面,以列表方式显示每笔住宿业务,显示接待对象、登记时间、结账时间和总费用等信息。以下为Controller关键代码。 ```java @RequestMapping(value="/list",method=RequestMethod.POST) @ResponseBody public Map list( @RequestParam(name="name",defaultValue="") String name, @RequestParam(name="realName",defaultValue="") String realName, @RequestParam(name="idCard",defaultValue="") String idCard, @RequestParam(name="mobile",defaultValue="") String mobile, @RequestParam(name="status",required=false) Integer status, Page page ){ Map ret = new HashMap (); Map queryMap = new HashMap (); queryMap.put("name", name); queryMap.put("status", status); queryMap.put("realName", realName); queryMap.put("idCard", idCard); queryMap.put("mobile", mobile); queryMap.put("offset", page.getOffset()); queryMap.put("pageSize", page.getRows()); ret.put("rows", accountService.findList(queryMap)); ret.put("total", accountService.getTotal(queryMap)); return ret; } ``` ### 4.3.6 旅客管理 本界面是酒店管理系统的旅客管理设计,其功能主要具体如图4-7所示。 ![](http://www.writebug.com/myres/static/uploads/2021/10/19/4c26758a2f4bad4e5f978510910e602d.writebug) 管理员进行旅客管理,以下为个人旅客管理主页面,以列表形式显示个人旅客信息,显示包括姓名、性别、民族、证件类型、证件号码和联系电话等信息。以下为html关键代码。 ```html
<%@include file="../common/menus.jsp"%>
``` # 5 性能测试与分析 测试是开发时期最后一个阶段,是保证软件质量的重要手段。软件测试就是在受控制的条件下对系统或应用程序进行操作并评价操作结果的过程,所谓控制条件应包括正常条件与非正常条件。软件测试过程中应该故意地去促使错误的发生,也就是事情在不该出现的时候出现或者在应该出现的时候没有出现。从本质上说,软件测试是"探测",在"探测"中发现软件的毛病。 ## 5.1 系统测试的定义 软件测试是为了发现错误而执行程序的过程。它不仅是软件开发阶段的有机组成部分,而且在整个软件工程(即软件定义、设计和开发过程)中占据相当大的比重。软件测试是软件质量保证的关键环节,直接影响着软件的质量评估。软件测试不仅要讲究策略,更要讲究时效性。验收测试作为软件测试过程的最后一个环节,对软件质量、软件的可交付性和软件项目的实施周期起到"一锤定音"的作用。 ## 5.2 系统测试的目的及意义 软件危机曾经是软件界甚至整个计算机界最热门的话题。为了解决这场危机,软件从业人员、专家和学者做出了大量的努力。现在人们已经逐步认识到所谓的软件危机实际上仅是一种状况,那就是软件中有错误,正是这些错误导致了软件开发在成本、进度和质量上的失控。有错是软件的属性,而且是无法改变的,因为软件是由人来完成的,所有由人做的工作都不会是完美无缺的。问题在于我们如何去避免错误的产生和消除已经产生的错误,使程序中的错误密度达到尽可能低的程度。 ## 5.3 系统测试的重要性 软件测试在软件生命周期中占据重要的地位,在传统的瀑布模型中,软件测试学仅处于运行维护阶段之前,是软件产品交付用户使用之前保证软件质量的重要手段。近来,软件工程界趋向于一种新的观点,即认为软件生命周期每一阶段中都应包含测试,从而检验本阶段的成果是否接近预期的目标,尽可能早的发现错误并加以修正,如果不在早期阶段进行测试,错误的延时扩散常常会导致最后成品测试的巨大困难。 事实上,对于软件来讲,不论采用什么技术和什么方法,软件中仍然会有错。采用新的语言、先进的开发方式、完善的开发过程,可以减少错误的引入,但是不可能完全杜绝软件中的错误,这些引入的错误需要测试来找出,软件中的错误密度也需要测试来进行估计。测试是所有工程学科的基本组成单元,是软件开发的重要部分。自有程序设计的那天起测试就一直伴随着。统计表明,在典型的软件开发项目中,软件测试工作量往往占软件开发总工作量的40%以上。而在软件开发的总成本中,用在测试上的开销要占30%到50%。如果把维护阶段也考虑在内,讨论整个软件生存期时,测试的成本比例也许会有所降低,但实际上维护工作相当于二次开发,乃至多次开发,其中必定还包含有许多测试工作。 ## 5.4 系统测试的常用方法 程序测试的主要方法分为两大类,白盒测试和黑盒测试。 **白盒测试**:一种是以程序的内部逻辑结构为依据而设计测试用例的方法,因而又称结构测试或玻璃盒测试,将软件看成一个透明的白盒子,按照程序的内部结构和处理逻辑来选定测试用例,对软件的逻辑路径及过程进行测试,检查它与设计是否相符。白盒测试就是要选取足够的测试用例,对源代码实行比较充分的覆盖,以便尽可能多地发现程序中的错误。主要有两种方法:一种称为逻辑覆盖法,另一种称为路径覆盖法。 **黑盒测试**:也称功能测试,数据驱动测试等,它将待测对象堪称是一个黑盒子,在完全不考虑程序的内部结构和特性的情况下,只依据规格说明书检查程序的功能是否能正常使用。 黑盒测试主要是根据输入条件和输出条件的确定测试数据,来检查程序是否能产生正确的输出。进行黑盒测试主要有下面几种方法:等价分类法、边界值分析法、猜错法、因果图法。 本系统的测试综合了白盒测试、黑盒测试两种方法,但主要使用的是黑盒测试方法。在测试当中遵循了“尽早地和不断进行测试”,“保证测试用例的完整性和有效性”原则。通过测试达到以下测试目的: - **功能检查**:检查功能是否争取,是否遗漏或实现不了应该实现的功能等 - **接口检查**:检查能否正确地接受信息或输出信息 - **数据检查**:检查数据结构或外部信息是否有(如数据文件)访问错误 - **性能检查**:检查性能需求能否得到满足 - **初始化、终止检查**:检查是否能进行正确地初始化或终止 ## 5.5 测试环境与测试条件 - **处理器**:Inter(R) Core (TM)2 Duo T5750 - **内存**:6GB - **硬盘**:500G - **操作系统**:Windows 10 - **数据库**: MySQL ## 5.6 软件测试 通过对酒店管理系统的分析、设计和实现,完成了系统功能,下面对酒店管理系统进行系统测试,完成软件开发最后步骤。 在测试过程中,可以使用测试工具进行系统测试、功能测试,测试过程中,遇到的Bug,需要及时修改,并形成测试文档,说明测试过程、修改情况。 软件测试包括了黑盒测试和白盒测试,不同的测试方法,测试目的不同,通过对酒店管理系统的详细测试,完成了测试目的。 ## 5.7 功能测试 酒店管理系统包括了多个功能,下面对各主要功能进行测试用例说明。由于测试过程具有一定的相似性,所以本系统选取一部分功能进行测试,其余相似功能模块不再一一展示。 ## 5.8 测试总结 通过对系统的全面测试,所有测试条目都已经通过,实现了基本要求,系统可以正常运行。 # 6 总结与展望 设计开发基于 Jsp+SSM+MySql的酒店管理系统是集业务管理与软件技术为一身的工作,只有在理解业务的基础上,才能对业务操作流程进行提炼优化,并通过软件设计与开发技术实现。本文设计的酒店管理系统界面友好、功能丰富、操作简单,能适应大部分环境下的酒店管理所需要的工作。本系统在设计采用了 J2EE 框架,设计上实现了高内聚、低耦合的要求,在设计上做到了可扩张和维护。本文在论文撰写、系统开发时对现有酒店管理系统做了深入的调研,并行性了需求分析和系统设计,最终实现了一个实用的酒店管理系统。 通过开发《酒店管理系统》,我较为全面的掌握了JAVA的基本知识和编程技巧,并在开发过程中我的JAVA开发能力得到了进一步的提高。如:更进一步的深入了解MVC设计模式,软件三层框架;SQL语言的使用。 在开发过程中我学到了一些经验:系统分析的好坏将决定着的系统开发成功与否,一份好分析设计将是成功开发主要因素。我们在着手开发之前不要急于编程,先应有较长的时间去把分析做好,做好数据库设计工作,写出相关的开发文档等。然后再开始编写程序代码,这样做到每段代码心底都有数,有条不紊。当然也有些还需待继续深入地方如:控件的应用等。 # 参考文献 [1] 韦超英.MySQL数据库备份及恢复方法解析[J].网络安全技术与应用,2019(10):73-74. [2] 罗永权.HTML语言的网页制作技巧与方法研究[J].计算机产品与流通,2019(10):151. [3] 郑茹琼,刘杨.基于SSM的母婴购物网站的设计与实现[J].电脑知识与技术,2019,15(26):264-265. [4] 董珊,周德阳,罗荣良.基于SSM的实验室管理系统设计[J].电脑知识与技术,2019,15(27):45-46+49. [5] 杨嘉诚,柯海丰.基于HTML5和JavaScript的信息学学习网站的设计与实现[J].计算机时代,2019(11):32-34+37. [6] 张丛丛.基于HTML语言的网页制作方法[J].电子技术与软件工程,2019(20):20-21. [7] 尹莺,陈继林,曹永年.基于SSM模型下产业结构分析——以巢湖市为例[J].现代营销(经营版),2019(12):154-156. [8] 孙开鑫,樊启润,唐彪,万美琳,卢仕.基于物联网的自助洗车系统设计与实现[J].计算机测量与控制,2019,27(10):243-248. [9] 甘启宏,崔亚强,王皓,余淇,冯鸟东.基于SSM框架的高校教学设备管理系统设计与实现[J/OL].软件导刊:1-4[2019-11-15].http://kns.cnki.net/kcms/detail/42.1671.TP.20190906.1321.002.html. [10] Margaretha Ohyver,Jurike V. Moniaga,Iwa Sungkawa,Bonifasius Edwin Subagyo,Ian Argus Chandra. The Comparison Firebase Realtime Database and MySQL Database Performance using Wilcoxon Signed-Rank Test[J]. Procedia Computer Science,2019,157. [11] Juan C. Roldán,Patricia Jiménez,Rafael Corchuelo. On extracting data from tables that are encoded using HTML[J]. Knowledge-Based Systems,2019. [12] 刘仲会.基于Windows Service的高校管理软件间数据同步系统的设计与实现[J].天津职业院校联合学报,2019,21(09):102-108. [13] 王佳新,黄晓光,张蜜蜜.关系型数据库开源产品技术的应用[J].电子技术与软件工程,2019(18):172-174.

参考文献

  • 用JSP技术开发基于WEB的房地产网络管理信息系统(大连理工大学·齐鲲鹏)
  • 基于J2EE的酒店管理系统的设计与实现(电子科技大学·王雪鹏)
  • 旅游管理系统的设计与实现(东北大学·王宇慧)
  • 基于SSH框架的连锁酒店客房管理系统的研究与实现(吉林大学·李敏琳)
  • 宾馆信息管理系统的分析设计与实现(电子科技大学·阎骏)
  • 酒店资源管理预订系统的设计与实现(南京大学·朱世杰)
  • 基于ASP.NET的酒店管理系统的设计与实现(电子科技大学·李艳)
  • 北京世豪国际酒店管理系统设计与实现(北京工业大学·左瑶)
  • 基于web酒店客房预定系统的设计与实现(电子科技大学·陈立卫)
  • 云麓山庄酒店管理系统设计与实现(电子科技大学·郑可)
  • 基于JSP的中小型酒店管理系统的设计与实现(江西财经大学·杨达宇)
  • 基于WEB的中小型商务酒店信息管理系统设计与实现(北京工业大学·宋伟威)
  • 基于ASP.NET MVC3酒店管理系统的设计与实现(电子科技大学·周伟)
  • 酒店客房信息管理系统(山东大学·张敏)
  • 酒店资源管理预订系统的设计与实现(南京大学·朱世杰)

本文内容包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主题。发布者:代码驿站 ,原文地址:https://bishedaima.com/yuanma/35231.html

相关推荐

发表回复

登录后才能评论