大家好,今天给大家介绍基于javaEE+原生Servlet+MySql的酒店管理系统设计与实现,文章末尾附有本毕业设计的论文和源码下载地址哦。
文章目录:
酒店管理系统,不仅能够加大对酒店的有效管理,而且能够使顾客享受到更优质服务。这个酒店管理系统从实际的需求出发实现了管理员权限管理模块,餐饮信息管理模块,客房信息管理和餐饮预订模块,顾客消费情况管理,客房预订操作模块。
这个系统以jsp风格为主要的开发语言,使用现在比较流行的MVC框架作为辅助手段,运用于开源免费的小型tomcat服务器来进行对MYSQL操作,在Myeclipse企业版开发环境软件上运行,完成了一个酒店管理系统。本系统具有简单易懂的操作方式和显示详细的房间信息,用户可以方便的了解到本酒店的全面信息,节约时间和成本。
1安装配置
1)前期准备
a、安装好MySQL数据库,用户名root,密码root
b、安装配置java环境(JDK1.7+,当前JDK1.8.0_152)
c、安装配置好Tomcat(Tomcat7+,当前Tomcat7.0.69)
2)初始化数据库
a、创建db_jiudian数据库
b、执行数据库脚本文件,初始化数据库
3)部署酒店系统
4)启动测试
2 功能介绍
1)基本操作
2)客户管理
3)客房管理
4)菜品管理
5)餐桌预定
6)餐饮消费管理
项目难度:中等难度
适用场景:相关题目的毕业设计
配套论文字数:25002个字55页
包含内容:整套源码+完整毕业论文+答辩PPT+任务书+辅导视频+运行截图
提示:以下为毕业设计的简略介绍,项目源码及完整毕业论文下载地址见文末。
绪论
1.1课题背景
省略
1.2目的和意义
省略
1.3开发工具及技术
1.3.1开发工具
这个项目采用的是MyEclipse+tomcat+Mysql+JSP开发。以下分别介绍这次开发的主要技术方法和应用方式。
MyEclipse
Myeclipse是在面向对象的开发过程中还是很有用的。实在eclipse的基础之上有增加了一系列有利于开发人员编程的插件的集合,另外自己还可以根据自己的具体需求来进行私人订制,增加一些具有特色的功能。Myeclipse对我们软件开发人员来说确实是一个功能齐全的企业级应用开发环境。
Tomcat
Tomcat是由一些知名软件公司开发的,例如Apache和sun等等公司。首先要明确,tomcat的开发者很人性,不收取费用,而且还给我们提供了其制作原理。是属于服务器,而且是轻量级的对设备的要求低,我们可以从tomcat的实际原理进行参考,对自己分析研究服务器设计具有重大意义。为什么要选择tomcat是因为它在占用很少的资源的情况下能够独立运行一些应用,而且扩展性能也是非常好的。
MySQL
MYSQL是一项公益性的,供编程人员模仿学习,它的存在一直对我们研究学习工作意义非凡,不仅能够降低我们的开发成本,减少投入资金,而且我们可以欣赏到大师级的代码技术和代码风格,最主要的是能够学到他们的设计理念和设计思想。另一方面,MYSQL使用了各种各样的不同风格的编译器和开发工具的测试,使得我们的源代码能够轻松移植到其他平台上,减轻我们的开发。
1.3.2 JSP
JSP,ASP,PHP是现代流行的动态网页技术标准,是有一些十分优秀的大公司结合实际需求制定的一个标准。在以前众所周知的HTML程序段中添加一些具有特殊意义的java程序段以及自己特定的jsp标签属性,由此形成了JSP文件。当然,jsp完全继承了Java的一些优秀的特点,能够应用与各种不同的平台之上。
为了满足我们对动态网站迅速开发的目标,到达编程人员的身心需求,缓解人员的工作状态,JSP进一步改进优化:
将具体所需的内容与所要显示的界面进行分离:web开发工程师在进行网站设计的时候,可以采用HTML或者是XML来确定最终页面的具体情况到底是什么界面。通过使用JSP来实现动态页面的制作,其中具体的逻辑过程被封装起来。这样的话,对我们所写的代码具有一定的保护作用,又能保证在任何其他浏览器上都具有一定的可用性。
可重复使用组件:开发人员及软件工程师能够共享和重复使用经常使用的组件。
可以跨平台实现:在市面上的几乎所有平台都支持JSP+servlet+JavaBean,不需要考虑不同平台之间的移植问题。
为了方便与数据库相连接,专业人员开发了JDBC驱动程序来供我们使用。除此之外,sun公司还有许多关于数据库的技术供我们使用参考。这里就不一一介绍,希望在后期学习中在做介绍。
1.3.3 MVC简介
MVC是一种编程思想,是一种将代码中的输入部分,输出部分和程序的逻辑处理部分分开进行代码设计。这种编程方法主要将代码分成三部分:模型,视图和控制器三个核心部分。
视图
主要是指用户主管视觉上能够欣赏的界面。在以前的网站中,视图主要是有HTML来扮演主要的角色。但随着世界上计算机科学与技术水平的不断革新,新的技术水平不断出现,主要有xml,flash等等。
视图仅仅是允许数据输出和用户能够就行操作等简单界面,并没有进行真正的逻辑处理。
模型
模型表示系统的逻辑处理部分,主要指在数据库中处理数据。一个视图可以对应多个模型,因此大大减少了代码的数量和代码的重复量。
控制器
控制器是指在知晓用户输入的情况下,通过使用模型和调用视图来满足用户的具体需求。
MVC工作过程是:首先让用户输入信息并使用控制器来得到用户输入的结果。接下来根据用户的具体请求,用具体模块来处理用户的信息请求并返回最终结果。最后,控制器用具体的视图来显示来返回请求数据。
1.4软硬件需求
本系统开发机器的配置:
处理器:Intel(R)Core™ i5-3230M CPU @2.60GHz 2.60GHz
RAM: 4.00GB
软件需求:
操作系统版本:Win7
开发工具:MyEclipse 10
后台服务器:jdk1.8.0_05 Apache Tomcat 6.0
开发语言:Java
浏览器:360安全浏览器8.1
1.5本章小结
本章主要介绍了本文研究的课题所涉及背景以及研究所的目的及其意义。表明研究是十分有必要的。同时,也简单介绍了本课题所研究的一些关键技术,表达了为什么要用这些技术以及这些技术的优势。最后也简单介绍了本次研究所需要准备的软硬件条件和设施。
2 需求分析
省略
2.1需求调研
省略
2.2可行性分析
省略
2.2.1技术的可行性
主要用Myeclipse进行本系统的发布,在eclipse不能运行,运用主流的tomcat开源免费的服务器,数据库也是开源免费的Mysql数据库。主要开发语言还是面向对象的开发语言Java。这个系统主要完成一些简单业务,如客房信息管理和客房预订操作模块,餐饮信息管理模块和餐饮预订操作模块。前端界面采用html+css等技术进行页面设计,后台采用java来操作数据库进行增删改查和用Java实现图片上传等操作。同时java也是开源的,为系统开发也提供了一些系统架包。由此可以看出,现有的技术是完全可以支撑起本系统的开发。
2.2.2经济的可行性
省略
2.2.3操作可行性
省略
2.2.4法律的可行性
省略
2.3系统用户用例图
2.3.1管理员用例图
管理员是酒店管理系统的主要管理权限用户,主要有以下四大功能,管理人员对使用本系统用户人员管理,对客房信息进行管理,对餐厅餐饮和菜色进行管理,对顾客消费情况进行管理。
管理员用例图
2.4功能模块需求分析
本酒店管理系统与现代开发软件的特点完美结合,界面友好,观赏性强。下面依次介绍本系统的功能:
(1)本系统界面友好,且具有良好的健壮性,能预防各种出现的错误提示操作。
(2)管理人员对使用本系统用户人员管理,对客房信息进行管理,对餐厅餐饮和菜色进行管理,对顾客消费情况进行管理。
(3)本着对用户和酒店负责的态度,对酒店信息和用户信息起到一定安全作用,防止信息泄露,对用户和酒店造成困扰。
管理员功能模块说明:
(1)用户人员管理:这个功能主要包括对系统人员就行删除增加和密码修改等基本操作等。
(2)客房信息管理,主要有以下几部分组成:
客房类型的增加和删除:现在有单人间,双人间和豪华间等等。
客房信息的补充和修改:主要指房间号,房间面积,价格以及房间的真实图片等必要的信息。
客房预订的增加和删除:主要是指客户对酒店的预订情况,包括客房的房间号,预订天数,预定时间和客户信息等。
(3)客户信息的增加修改和删除和查看:主要用于完成对客户信息的修改和删除,当然也可以进行客户信息的增加和查看。
(4)餐饮管理,主要有以下几部分组成:
特色菜品的介绍:对特色菜品进行及时增加,过时的菜品进行删除和不合理的菜品进行修改,查看本店特色菜品操作,特色菜的名称,价格,和真实图片等操作进行管理。也能增加和删除特色菜品。
餐桌预订管理: 对已经预订了的餐桌消费人员进行修改,查看预订信息进行就餐和删除一些已经就餐完成或就餐预订取消的信息。
餐桌预订添加:将顾客要求的预订信息添加到本系统。
(5)消费管理:主要指住房消费和餐饮消费两部分,用于对顾客消费情况进行登记和查看,以便对酒店收入情况进行管理。
2.5性能需求
2.5.1系统的安全性
本文设计的这个酒店管理系统具有严格的执行权限要求,只有符合管理员身份的人员才可以对其进行操作管理,对已经取消管理员资格的人员也可以手动对其进行删除管理,提高系统的安全性。
2.5.2数据的完整性
1.对数据的记录要求精确,信息不能出现空白信息,否则显示错误。
2.各个数据项的记录必须要求是正确的,不能出现虚假信息,造成错误。
3.不同界面显示的相同信息的数据也必须保持一致,不能出现相同信息不同数据的现象。
2.6 本章小结
本章主要是对软件的需求进行分析。不过在其分析之前,简单的从经济,技术,操作,法律等方面研究了本系统是否值得分析设计。其次,本文采用用例图来分析软件在功能方面的实际需求。都软件的性能需求也进行了评价分析。
3 系统分析与设计
省略
3.1 系统模块设计
3.1.1 总体设计框架
在上述对系统的分析的基础上,现在对系统进行总体设计,总体设计功能的模块如图 3.1所示。
图3.1 总体设计功能的模块图
3.1.2 总体设计具体模块
按照总体设计的功能模块和需求分析,酒店管理系统的各个模块的数据字典:
1、系统管理员数据:包含的数据项用户名,密码。
2、客房类型数据:包含的数据项有id号,类型名称。
3、客房信息数据:包含的数据项有房间号,房间面积,房间简介,房间图片,房间类型。
4、房间预订数据:包含的数据项有预订客房,预订时间,预订用户的名字及电话,预订天数。
5、入住消费数据:包含的数据项有入住客房,入住时间,客户姓名及联系方式,预订天数和消费金额。
6、客户信息数据:包含的数据项有客户名字,地址,电话,E-mail。
7、特色餐品数据:包含的数据项有名称,描述,图片,价格。
8、餐桌预订数据:包含的数据项有预订时间,预订餐桌号,预订人。
9、餐饮消费数据:包含的数据项有消费时间,消费金额,消费者姓名。
3.2数据库的分析与设计
省略
3.2.1数据库的概念结构设计
省略
通过对酒店管理系统的需求分析和系统所需的概念结构,结合自己对E-R图的理解,下面是建立的E-R模型图
酒店管理系统的数据库E—R图如图3.2所示:
3.2酒店管理系统的数据库E—R图
3.2.2数据库的逻辑结构设计
众所周知,数据库的概念模型与某个具体的数据库是没有关系的,因此,我们需要结合实际所使用的数据库的特征来进行具体变化,也就是转化成逻辑关系模型,来让计算机进行处理加工。概念模型向数据库的逻辑模型进行转化需要遵守的规则:
*每一个实体要转换成一个关系
*所有的主键必须定义非空(NOT NULL)
*对于有多个联系的实体要区分主次,按照一对多,一对一和多对多的顺序来依次建立外键。
通过以上的分析,我们现在建立了相应的逻辑结构,下面逻辑结构的详细说明部分。
(1)用户信息表主要是记录了住房客户基本信息,表结构如表3.3所示。
表3.3用户信息表
(2)管理员信息表主要记录了管理员基本信息,表结构如表3.4所示。
(7)餐饮预订信息表主要是记录了用户餐饮预订的基本信息,表结构如图3.9所示。
3.2.3数据库的连接原理
Hibernate是由专业人员设计的一种对酒店管理系统进行有效管理的系统框架,本文就采用了这种框架。Hibernate 是一种开源的,并且能够将对象关系进行映射的一种框架,它通过对JDBC部分对象的进行了封装设计,因此,我们程序员在编程设计时,可以根据自己喜好使用面向对象的编程思想来进行数据库的各种操作。它可以完成具体的Java类与其相应的数据库表来进行映射,也能够对数据进行查询和对数据进行恢复。与JDBC连接数据库的传统方式相比较来看,Hibernate在很大程度上已经可以减少工作量的操作。另一方面,Hibernate提供了代理模式,它可以对需要载入的具体类进行简化操作。使用代理模式的目的主要是减少从数据库提取数据所需的代码工作量,这样我们的开发时间和开发成本也就得到了有效的缓解和降低。 由于Hibernate具有众多优点,受到了技术人员的青睐,现在市面上流行的服务器都是可以与Hibernate进行良好的集成。
Hibernate 的运行过程如图3.5所示:
图3.1 Hibernate的运行过程如下图
图3.1给出了 Hibernate 的具体运行过程,它可以与应用程序之间建立持久性服务的主要原因是使用了数据库和利用了配置文件。
3.3 设计思想
省略
3.4 详细设计
3.4.1 登录模块设计
(1)在登录界面,包含用户名,密码信息,输入之后点击登录进入酒店管理系统。
(2)用户名和密码都不能为空,否则会弹出对话框进行提醒。
(3)后端也会进行验证。如果验证不通过,弹出对话框提示用户名或密码错误。后端验证成功,提示登录成功,跳转到系统页面。
3.4.2 客房管理模块设计
3.4.2.1 客房类型模块
(1)客房类型界面主要包括类型的id号,类型名称,操作和添加。
(2)可以查看客房类型的具体信息,每项都有具体的值都不可以是空的。
(3)通过操作下方编辑和删除按钮可以对客房类型信息进行操作。
(4)点击下方添加按钮可以进行客房类型进行添加。
3.4.2.2 客房信息模块
(1)客房信息界面主要包括房间号,房间面积,房间简介,房间图片和房间类型和操作。
(2)可以了解房间的具体信息,若有一项的值为空的话是不合法的。
(3)点击操作下方的删除按钮可以删除某个特定房间。
(4)点击本页面上的添加按钮,跳转到客房添加界面进行客房信息添加。添加的信息同(1),并且要上传房间图片。
3.4.2.3 客房预订模块
(1)在这个模块中,主要有预订的客房号,预订时间,预订天数,预订人的名字和电话和操作。
(2)主要用于管理用户的预订信息,其中房间号必须和客房信息里面的房间号相一致,不会出现不存在的房间号。预订时间也一定在今天及其以后的时间,不会出现已经过去的时间。预订人和联系方式已经预订天数都不允许空,都有具体值。
(3)使用鼠标点击特定预订信息后面的删除按钮,可以删除此条预订信息。
(4)通过添加按钮出现客房预订信息界面,可以进行客房预订信息的添加。
3.4.2.3 入住消费模块
(1)入住消费模块主要信息是入住的房间号,入住时间及天数,入住者的名字及其联系电话和消费金额。
(2)主要是用于记录用户的消费记录情况,入住的房间号一定是存在的房间号,入住时间也必须符合现实,联系电话是11位阿拉伯数字,这些信息参数值也必须不为空。
(3)对已经付过账要离开的顾客可以点击对应后面的删除按钮进行删除操作,去除记录。
(4)对于将要入住和正在入住的顾客点击添加按钮进行消费信息的添加。
3.4.3 客户模块设计
3.4.3.1 客户信息模块
(1)客户信息模块主要用于显示客户信息和根据顾客名查询特定入住者。
(2)客户信息模块主要有查询框和查询按钮,以及一些顾客基本信息比如:用户名字和联系方式,住所等等信息。
(3)对已经离开和将要离开的用户,通过其信息后面对应的删除按钮进行删除,完成住宿。
3.4.3.2 添加客户模块
(1)添加客户模块对于已经入住的顾客进行信息添加完善。
(2)添加客户模块主要包含多个文本框,比如客户名字,联系方式和地址等等一些必要信息,还有一个提交和重置按钮。
(3)当填写完用户信息,点击提交按钮时,弹出对话框提示操作成功。这时,客户信息界面上就会显示刚才添加的用户信息。
3.4.4 特色菜品介绍模块设计
3.4.4.1 特色菜品模块
(1)特色菜品模块所显示的信息可供顾客选择菜单上的菜品,提供餐饮服务,方便顾客选菜。
(2)特色菜品模块显示一些菜品的名称,菜品的描述和图片以及价格等必要的信息和删除操作。
3.4.4.2 添加特色菜品模块
(1)添加特色菜品界面上包含几个文本框信息和提交,重置按钮。
(2)这几个文本框所要填写的信息与特色菜单模块上的信息必须一一相对应,不能出现不相符的状况。
(3)当填写完特色菜品信息进行提交后,弹出提示框显示操作成功,并且在特色菜品界面上会显示刚才所添加的菜品信息。
3.4.5 餐桌预订管理模块设计
3.4.5.1 餐饮预订模块
(1)餐饮预订界面主要是显示餐桌预订的相关信息,包括预订时间,预订餐桌和预订人以及删除操作。
(2)预订时间也是需要符合当前时间,不能是已经过去的时间,预订时间和预订人不能为空。
(3)当顾客已经就过餐或者不在就餐时,点击删除按钮可以取消预订的信息。
3.4.5.2 添加餐饮预订模块
(1)餐饮预订添加界面包含预订的时间,预订人的名字和预订的餐桌号三个文本框信息,以及重置和提交按钮。
(2)添加餐饮预订界面上的信息和餐饮预订界面上的信息是完全吻合的,需要将添加的信息显示到餐饮预订界面上。
3.4.6 餐饮消费管理模块设计
(1)餐饮消费管理界面主要是保存了用户消费的相关内容,比如消费时间,金额和消费者名字和删除信息操作。
(2)当本次消费已经完成时,就可以点击删除按钮就可以删除此条所要删除的信息记录。
3.5 本章小结
本章主要是进行系统设计。首先进行系统的总体设计,确定系统的主要功能模块。其次我们根据系统所需要完成的功能模块来进行ER图的分析和建立。再根据E-R图来确定数据库的逻辑模型,建立数据库的逻辑模型结构。最后是系统的详细设计阶段,确定各个模块的具体细节,为下一阶段的系统实现做充分的准备。
4 系统功能实现
前面我们已经明白了用户的具体需求,也经过了系统的分析和设计阶段,本章是进行系统的实现。根据前面对系统的分析和设计,我们现在对系统进行具体的代码实现。通过前面的对系统的逻辑分析,现在要正真转化成能够在机器上运行的物理系统,是对前面所做工作的总结和肯定。
4.1系统登陆页面实现
1.描述:每个系统都需要相应的账号和密码进行登录。这样,不会因为随意登录操作系统而造成系统混乱。在系统设计之初,给出了管理员账号。
2.下面展示了程序的运行效果如图4.1所示:
图4.1 系统登录页面设计
3.进行登录时,输入本人自己的用户名和密码进行登录。然后点击登录按钮进行信息的提交。然后我们的后台会寻找相应的service来进行用户名和密码的匹配操作。根据用户名和密码的具体情况,返回具体的结果。
public String login(String userName,String userPw,int userType)
{
String result="no";
String sql="from TAdmin where userName=? and userPw=?";
Object[] con={userName,userPw};
List adminList=adminDAO.getHibernateTemplate().find(sql,con);
if(adminList.size()==0)
{
result="no";
}
else
{
WebContext ctx = WebContextFactory.get();
HttpSession session=ctx.getSession();
TAdmin admin=(TAdmin)adminList.get(0);
session.setAttribute("userType", 0);
session.setAttribute("admin", admin);
result="yes";
}
return result;
}
4.2总体功能模块
1.描述:我们登录到系统后,可以看到可供我们操作的六大功能模块。这时,只需要点击相应的菜单来运用相应的功能。
2.我们的效果图如图4.2所示:
图4.2管理员主页面
在本文具体设计过程中,本系统的每个页面都进行了系统性的拦截,防止不法分子不需要登录来进行恶意操作。
if(session.getAttribute(“user”)==null)
{
out.print(“”);
}
4.2.1管理员管理
4.2.1.1系统管理员信息管理
1.描述:登录人员进入管理员操作界面后,后天根据用户的具体操作来寻找具体的action类来进行系统响应。本文中主要是利用了List对象集合,通过request来显示出具体的信息。
2.程序效果图如下图4.3所示
图4.3 系统管理员管理
3.系统管理员管理关键代码:
添加系统管理员
public void adminAdd(HttpServletRequest req,HttpServletResponse res)
{
String userName=req.getParameter("userName");//获取填写用户名
String userPw=req.getParameter("userPw");/获取密码
String sql="insert into t_admin(userName,userPw) values(?,?)";//数据添加到数据库中
Object[] params={userName,userPw};
DB mydb=new DB();
mydb.doPstm(sql, params);
mydb.closed();
req.setAttribute("message", "操作成功");
req.setAttribute("path", "admin?type=adminMana");
String targetURL = "/common/success.jsp";
dispatch(targetURL, req, res);
}
系统管理员删除
public void adminDel(HttpServletRequest req,HttpServletResponse res)
{
String sql="delete from t_admin where userId="+Integer.parseInt(req.getParameter("userId"));//在数据库中查找满足userId的数据
Object[] params={};
DB mydb=new DB();
mydb.doPstm(sql, params);
mydb.closed();
req.setAttribute("message", "操作成功");
req.setAttribute("path", "admin?type=adminMana");
String targetURL = "/common/success.jsp";
dispatch(targetURL, req, res);
}
4.2.1.2系统管理员密码修改界面
描述:管理员点击左侧的菜单“密码修改”,系统显示出密码修改的界面。修改时,必须要输入正确的原密码。否则,会弹出对话框提示原密码错误。其次,新密码和确认密码保持一致。不然会弹出对话框两次输入的密码不一致。
2.程序效果图如下图4.4所示
图4.4 系统管理员密码修改
4.2.2客房类别管理
4.2.2.1客房类别信息录入
1.描述:本功能需要操作人员输入正确的客房类型。如果操作人员出现失误信息填写错误,系统都会给相应的出错信息。本文在后台也设置了相应的函数来进行信息的处理。要能够将管理员填写的信息正确反映到客房信息界面上,信息的提交以及信息的交互都具有及时性。
2.本文程序的实际效果如下图4.5所示:
图4.5客房类别信息录入
4.2.2.2客房类别信息管理
1.描述:本文这个功能主要是显示本酒店所有的客房类别信息供顾客选择和对酒店客房进行更好的分类。这些客房类别信息都保存在list对象里面,并通过request对象来进行显示输出。
2.程序效果图如下图4.6所示
图4.6类别信息管理页面
4.2.2.3客房类别信息删除
1.描述:本功能可以对已经过时货已经不存在的客房类别进行去除操作,能够及时反映本酒店的真实信息。删除时,给出了提示,为了防止出现误删除。
2.程序效果图如下图4.7所示
图4.7类别信息删除页面
3.客房类别信息删除删除代码
public void kefangleixingDel(HttpServletRequest req,HttpServletResponse res)
{
String sql="update t_kefangleixing set del='yes' where id="+Integer.parseInt(req.getParameter("id"));
Object[] params={};
DB mydb=new DB();
mydb.doPstm(sql, params);
mydb.closed();
req.setAttribute("message", "操作成功");
req.setAttribute("path", "kefangleixing?type=kefangleixingMana");
String targetURL = "/common/success.jsp";
dispatch(targetURL, req, res);
}
4.2.2.4客房类别信息修改
1.描述:设置这个功能的主要目的是为了修改录入客房类别时出现的错误,或者对已经不符合酒店实际情况的信息进行修改。
4.2.3客房信息管理
4.2.3.1客房信息添加录入
1.描述:当我们的酒店进行进一步扩张和发展的时候,我们就需要运用这个功能。这个要求使用人员要输入不存在的房间号和已经存在的房间类型,否则给出相应的信息提示,录入信息失败。这个功能所填写的信息通过后台的service及时反映到客房信息界面上。
2.程序效果图如下图4.8所示:
图4.8客房信息增加录入
3.客房信息添加关键代码:
String fangjianhao=req.getParameter("fangjianhao");
String fangjianmianji=req.getParameter("fangjianmianji");
String fangjianjianjie=req.getParameter("fangjianjianjie");
String fujian=req.getParameter("fujian");
String fujianYuanshiming=req.getParameter("fujianYuanshiming");
String kefangleixingId=req.getParameter("kefangleixingId");
String del="no";
String sql="insert into t_kefang(fangjianhao,fangjianmianji,fangjianjianjie,fujian,fujianYuanshiming,kefangleixingId,del) values(?,?,?,?,?,?,?)";
Object[] params={fangjianhao,fangjianmianji,fangjianjianjie,fujian,fujianYuanshiming,Integer.parseInt(kefangleixingId),del};
DB mydb=new DB();
mydb.doPstm(sql, params);
mydb.closed();
req.setAttribute("message", "操作成功");
req.setAttribute("path", "kefang?type=kefangMana");
String targetURL = "/common/success.jsp";
dispatch(targetURL, req, res);
4.2.3.2客房信息管理
1.描述:客房信息管理方便入住人员对房间的信息有一个大致的了解,节约了顾客寻找房间的时间。相应的list对象来保存相应客房信息,然后利用系统提供的request对象来进行显示。
2.程序效果图如下图4.9所示
图4.9 客房信息管理页面
4.2.3.3客房信息修改
1.描述:本文通过使用这个功能对房间的真实信息已经改变了的状况进行修改,让顾客第一时间来反映本酒店客房的真实信息。
2.程序效果图如下图4.10所示
图4.10 客房信息修改
4.2.3.4客房信息删除
1.描述:主要是对已经不存在的客房进行去除操作,当本酒店对某个特定的客房进行去除时,就需要用此功能进行客房的删除。删除后,客房信息界面上也就不再显示本客房的具体情况。
2.客房信息管理关键代码:
TKefang kefang=kefangDAO.findById(id);
kefang.setDel(“yes”);
kefangDAO.attachDirty(kefang);
Map request=(Map)ServletActionContext.getContext().get(“request”);
request.put(“msg”, “操作成功”);
return “msg”;
4.2.4客房预订信息管理
4.2.4.1客房预订信息管理
1.描述:客房预订这个功能的需求性非常高,顾客可以提前寻找酒店进行入住,不需要因无法找到二无法入住。它显示了顾客的预订信息,顾客可以凭借这些信息来进行入住。
2.程序效果图如下图4.12所示
图4.12 客房预订信息管理页面
预订信息管理关键代码:
public String yudingMana()
{
String sql="from TYuding where del='no'";
List yudingList=yudingDAO.getHibernateTemplate().find(sql);
for(int i=0;i<yudingList.size();i++)
{
TYuding yuding=(TYuding)yudingList.get(i);
yuding.setUser(userDAO.findById(yuding.getUserId()));
yuding.setKefang(kefangDAO.findById(yuding.getKefangId()));
}
Map request=(Map)ServletActionContext.getContext().get("request");
request.put("yudingList", yudingList);
return ActionSupport.SUCCESS;
}
4.2.4.2客房预订信息删除
1.描述:当顾客因意外无法入住或者已经入住完,我们就可以使用客房预订删除功能来进行处理。当删除了预订信息后,后台会将预订信息界面上的删除的信息进行去除,不在显示。
2.客房预订信息删除代码
public String yudingDel()
{
TYuding yuding=yudingDAO.findById(id);
yuding.setDel("yes");
yudingDAO.attachDirty(yuding);
Map request=(Map)ServletActionContext.getContext().get("request");
request.put("msg", "操作成功");
return "msg";
}
4.2.4.3客房预订信息添加
1.描述:当顾客计划将要在本酒店入住时,我们就可以记录下预订顾客的信息为后期顾客入住提供证明。本界面上客房必须是现存的房间号,不存在的房间号不会显示出来供选择。
2.程序效果图如下图4.13所示:
图4.13 客房预订信息添加管理页面
4.2.5客户信息管理
4.2.5.1客户信息管理
1.描述:我们需要记录客户的信息来进行客户管理,我们可以方便查询客户信息,为客户提供服务。这些客户信息都是运用了list对象进行处理的,在需要的时候,调用request对象来进行显示供参考。当客户信息过多时,管理人员可以输入客户的名称进行特定客户查询。
2.程序真实表达他如下图4.14所示:
图4.14客户信息查询页面
4.2.5.2客户信息添加
1.描述:客户来进行入住登记的时候,就可以利用本系统的这个功能将特定的客户添加到本系统中。
2.下面就是本文中的现实的图如图4.15所示:
图4.15客户信息添加页面
4.2.6特色餐饮管理
4.2.6.1特色菜品介绍
1.描述:本功能主要展示本酒店提供的餐饮服务有哪些。当顾客需要聚会就餐时,可以参考本页面上的餐品信息的具体介绍并根据自己的口味爱好来进行选择,方便就餐人员的选择。
2.菜品介绍功能真实图如下图4.16所示:
图4.16特色菜品介绍页面
4.2.6.2特色菜品添加
1.描述:管理员点击左侧的菜单“特色菜品添加”,就可以添加特定菜品
2.菜品添加界面如下图4.17所示:
图4.17特色菜品添加页面
4.2.7餐桌预订管理
4.2.7.1餐桌预订管理
1.描述:当顾客想在本酒店进行餐饮服务,而现在不在本酒店的时候,就可以运行此功能。它显示了所有就餐人员的时间,信息等等。当具体进行餐饮服务时,可以利用本界面的信息进行对比。
2.餐桌预订的效果图如下图4.18所示:
图4.18餐桌预订管理页面
4.2.7.2餐桌预订信息添加
1.描述:当有顾客有要预订餐饮的需求的时候就要使用本界面上的信息,并且将本界面填写的信息正确反映到餐桌预订的界面上。
2.餐桌预订信息添加效果图如下图4.19所示:
图4.19餐桌预订添加页面
4.2.8客户消费管理
4.2.8.1客户入住消费管理
1.描述:当顾客入住时,需要对其的消费情况做一个记录信息。一方面顾客可以对自己的消费的情况有一个真实的的了解。同时,也可以对了解本酒店的经营状况,确定是否需要改进。
2.客户入住消费图如下图4.20所示:
图4.20客户入住消费管理页面
4.2.8.2客户入住消费删除
1.描述:当顾客的消费记录已经过去很久了,为了节约存储空间,就可以对其进行删除处理。
2.客户入住消费删除图如下图4.21所示:
图4.21客户入住消费删除页面
4.2.8.3客户入住消费添加
1.描述:当顾客办理入住手续的时候,需要对其消费情况进行添加。并且其添加的信息显示到客户入住消费的界面上。
2.客户入住消费添加图如下图4.22所示:
图4.22客户入住消费添加页面
4.2.8.4客户餐饮消费管理
1.描述:这里真实的记录了某个特定人的真实消费情况,顾客可以查询自己的消费情况,并进行支付。酒店也可以知道餐饮服务这块业务的收入情况,并进行适当的调整和完善。
2.客户餐饮消费运行图如下图4.23所示:
图4.23客户餐饮消费管理页面
4.2.8.5客户餐饮消费删除
1.描述:对已经结过餐饮费用且对消费金额无异议的顾客。按照实际情况,将结账记录久远的信息去掉。
2.客户餐饮消费删除执行图如下图4.24所示:
图4.24客户餐饮消费删除页面
4.2.8.6客户餐饮消费添加
1.描述:当顾客就餐结账的时候,需要对顾客就餐消费情况进行统计管理。在本页面上添加的信息会体现到客户餐饮消费界面上。
2.下图4.25就是其运行结果:
图4.25客户餐饮消费添加页面
4.3 本章小结
本章主要用来说明系统设计开发的情况。也就是说,向用户展现的系统概貌。这一章已经可以看出对对上一章中总体设计和详细设计中所展现的功能模块都已经实现完成了,也达到了需求分析中用户的实际需求。通过本章节对系统的介绍,相信会对本系统有一个多方面的客观认识。
5 系统测试
5.1系统测试目的与意义
省略
5.2 测试原则
省略
5.3 测试目标
省略
5.4 测试用例设计的原则
全面性
1 .应尽可能覆盖程序的各种路径。
2. 应考虑存在跨年、跨月的数据。
3. 大量数据并发测试的准备。
正确性。
1. 输入界面后的数据应与测试文档所记录的数据一致。
2. 预期结果应与测试数据发生的业务吻合。
符合正常业务惯例
1. 测试数据应符合用户实际工作业务流程。
2. 兼顾各种业务变化的可能。
可操作性
测试用例中应写清测试的操作步骤,不同的操作步骤相对应的操作结果
5.5测试过程
5.5.1主页面的登录模块测试
测试流程: 1.打开系统首页,输入错误的登录信息
2.登录
3.输入正确的登录信息
4.登录
5.测试结果
(1)登录模块的测试记录表,测试过程如5-1所示
5.5.2 修改密码测试
测试步骤: 1.登录系统后,点击“密码修改”
2.输入原密码,新密码和确认密码
3.点击提交按钮
4.测试结果鉴定
(2)管理员模块的测试信息表,测试过程如5-2所示
5.5.3 客房添加测试
测试步骤: 1.登录系统后,点击“客房信息”页面上的添加按钮
2.在文本框中输入数据
3.点击提交按钮
4.对比测试结果
(3)客房添加测试信息表,测试过程如5-3所示
5.5.4 客房预订添加测试
测试步骤: 1.登录系统后,点击“客房预订”。
2.点击添加按钮,进入客房添加界面。
3.点击提交按钮
4.对比测试结果
(4)客房预订添加测试信息表,测试过程如5-4所示
5.5.5客户信息查询测试
测试步骤: 1.登录系统后,点击“客户信息”。
2在查询的文本框中输入要查询的顾客名
3.点击提交查询按钮
4.分析显示结果
(5)客房预订添加测试信息表,测试过程如5-5所示
5.5.6其余模块测试
剩余模块与已经列出了的模块测试都是大同小异,本文就不在这里一一列举。但是在实际的测试中所有的模块都是经过严格的测试。
5.6中文乱码问题处理
在web.xml中配置:
<param-name>encoding</param-name>
<param-value>gb2312</param-value>
对应的SetCharacterEncodingFilter.java文件中的重要代码,在初始化init()方法中定义:
public void init(FilterConfig filterConfig) throws ServletException {
this.filterConfig = filterConfig;
this.encoding = filterConfig.getInitParameter("encoding");
String value = filterConfig.getInitParameter("ignore");
}
try{
byte[] tempByte = gbStr.getBytes("GB2312");
uniStr = new String(tempByte,"ISO8859_1");
}catch(Exception ex){
}
return uniStr;
}
5.7其他错误
本文在程序开发阶段,由于自己不够细心和代码量庞大的缘故,难免会出现一些传值得名字不一致无法找到、传值参数的类型不同而无法识别和传值得个数不同而无法运行等等情况。下图5.17就是因为路径问题而导致的错误。
图 5.17由于servlet路径配置错误,运行时的提示
5.8本章小结
本章主要对各个模块进行单元测试,当然也对本系统进行了集成测试。主要采用黑盒测试的方法学,找出程序功能上的不足,并通过调试来进一步完善系统。测试中发现了一些不足,比如中文乱码,信息没有及时传递等等问题。由此可以看出,系统测试也是我们软件开发过程中的不可或缺的一环,对我们系统的完善性和健壮性有很大的帮助。所以,在以后要注重系统测试环节。
结 论
省略
这个系统可以帮助酒店工作人员刚好的管理酒店,本系统主要实现了一下几个功能:
(1)客房管理功能。在这个模块中,我们可以查看,增加和删除客房的类型。也可以查看客房的信息和预订客房并记录消费情况。
(2)客户管理功能。我们可以利用此功能查询特定客户的信息情况,了解客户的实际情况,也可以增加新的顾客。
(3)特色菜品功能。在这个功能下,详细的记录了本酒店的餐饮服务,顾客可以根据自己的喜好来选择餐饮服务,也可以添加新的菜色。
(4)餐饮预订功能。顾客可以根据自己的实际情况来进行就餐时间,就餐地点的选择,方便顾客的实际用餐。
(5)餐饮消费功能。记录了顾客的餐饮消费金额,方便顾客查阅,了解自己的消费细节。
参考文献
[11] 黄剑.基于移动互联网酒店管理系统的设计与实现[D]. 电子科技大学,2014(11):21-25
[12] 杨玉平.基于WEB的酒店管理系统的设计[D].吉林:吉林大学 , 2012,(21):21-38
[13] 宣振国.基于Mysql的数据库集群设计与实现[D].北京:北京邮电大学,2013:25-28
[14] 莫祖英,马费成. 数据库信息资源内容质量用户满意度模型及实证研究[J]. 中国图书馆学报,2013,(10):113-115
[15] 杨宏. 大数据与智慧酒店管理[J].科技创新与应用,2015 ,(32):76+102
[16] 陈娅玲. 新形势下酒店管理如何实现创新[J].黑龙江教育学院学报, 2014,(22):174-203
[17] 陈世敏.大数据分析与高速数据更新[J].计算机研究与发展, 2015, (74):115+168
[18] Michael J.A.Berry,LinoffGordonS.Mastering Data mining,The art and science of customer management [C].America,2004,11-34
[19] MarkAllenWeiss.Data structure and algorithm analysisin C[J].America.2004,12+97
[20] Thomas M.Cover,Joy A.Thomas.Elements of Information Theory[J]America.2011,27-86
致谢
省略
外文文献
省略
翻译
省略
本项目源码及论文如下,有需要的朋友可以点击进行下载
序号 | 毕业设计全套资源(点击下载) |
---|---|
本项目源码 | 基于javaEE+原生Servlet+MySql的酒店管理系统设计与实现(源码+文档)_JAVAEE_酒店管理系统.zip |