酒店客房管理系统Word格式文档下载.docx
《酒店客房管理系统Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《酒店客房管理系统Word格式文档下载.docx(19页珍藏版)》请在冰豆网上搜索。
4.5入住模块…………………………………………………………………………………..12
4.6退房模块………………………………………………………………………………….12
五维护....................................................................................................................................15
5.1数据库的维护...............................................................................................................…15
六总结与体会…………………………………………………………………………….15
一前言
1.1选题背景
酒店业是一个前景广阔而又竞争激烈的行业。
改革开放以来,我国的酒店业迅速发展,已经成为一个具有相当规模的产业。
由于我国的旅游业迅速发展,通过调查,我国在2020年将成为世界上第四大旅游国家;
同时我国加入世界贸易组织,酒店业将完全开放,这个时候,我国的酒店业将面临着前所未有的机遇和挑战。
但是,现在甚至还有一些酒店还停留在由人工操作和管理阶段,这样已经无法适应当前的发展趋势。
因此,要想使酒店的工作质量和效率提高,采用先进的计算机网络通信技术改变酒店业务模式,实现酒店业务管理的自动化已经成为一种必然。
酒店管理系统采用B/S结构。
按照按国家星级宾馆标准化业务程序流式设计,会采用主流开发工具来开发,搭建比较稳定可靠安全的服务端来辅佐客户管理,并且还采用数据库mysql,会通过测试用例来达到测试效果,技术支持会采用轻量级框架struts和hibernate持久化来完成,服务器采用tomcat,通过powerdesigner来设计数据模型为最初业务流程的概念设计阶段和详细设计阶段打好基础[1]。
1.2本文的研究内容
论文设计选题《酒店管理系统》,主要研究了:
酒店业务的管理(划分为,登陆界面部分,查询界面部分,入住界面部分,退房界面部分)。
二系统分析
2.1需求分析
系统需对用户登录进行管理。
使用各功能模块时,系统应验证用户身份的有效性,否则要求用户登录。
另外,允许用户对自己的密码进行修改。
系统应提供客房的分类管理功能,可分类制订客房面积、价格、是否配备空调等客房类型,对不同标准的客房进行有效管理。
系统可实现对客房信息的添加、删除以及修改。
在进行入住/退房管理时,系统可以根据客房当前的状态自动提示可用服务(入住/退房)。
如果客房没有客人入住,则该客房的可用服务为“入住”;
否则,可用服务为“退房”。
系统的客户端在Windows平台下运行,服务器端可在Windows平台或UNIX平台下运行。
系统还需要有较好的安全性和可扩展性[8]。
需求分析是从客户的需求中提取出软件系统能够帮助用户解决的业务问题,通过对用户业务问题的分析,规划出系统的功能模块,即定义用例。
这个步骤是对理解需求的升华,直接关系到该系统的质量。
整个系统可以分为2大部分。
酒店网站部分(客户服务网站)和酒店管理部分(管理员部分)。
本系统只做了有关酒店管理的一部分。
三数据库设计
3.1数据库概念设计
3.1.1概念结构
在需求分析阶段所得到的应用需求应该首先抽象为信息世界的结构,才能更好地、更准确地用某一DBMS实现这些需求。
概念结构主要特点:
(1)能真是、充分地反映显示世界,包括事物和事物之间的联系,能满足用户对数据的处理要求,是对现实世界的一个只是模型;
(2)易于理解,从而可以用它和不熟悉计算机的用户交换意见,用户的积极参与是数据库设计成功的关键。
(3)易于更改,当应用环境和应用要求改变时,容易对概念模型修改和扩充;
(4)易于向关系、网状、层次等各种数据模型转换;
概念结构时各种数据模型的共同基础,它比数据模型更独立于机器、更抽象,从而更加稳定。
3.2.2酒店管理系统系统E-R图
3.2数据库逻辑结构设计
3.2.1酒店管理系统逻辑结构设计
有了基本的E-R模型就可以进行逻辑结构设计,也就是设计基本的关系模式。
设计基本的关系模式主要从E-R模型出发,将其直接转换为关系模式。
根据转换规则,这个E-R转换的关系模式为:
(1)用户(用户序号,用户名,餐台号,菜品编号,消费单编号),主码为用户序号。
(2)消费单(消费单编号,所属餐台号,时间,消费额,操作用户,餐台编号,菜品编号,用户序号),主码为消费单编号。
(3)菜品(菜品编号,所属菜系,名称,祝记码,单位,单价,菜品状态,消费单编号,用户序号,菜系序号),主码为菜品编号。
(4)菜系(菜系序号,名称,菜品编号),主码为菜系序号。
(5)餐台(餐台编号,人数,消费单编号,用户序号,菜品编号),主码为餐台编号。
现在分析一下这些关系模式。
由于在设计关系模式时是以现实存在的实体为依据,而且遵守一个基本表只描述现实世界的一个主题的原则,每个关系模式中的每个非主码属性都完全由主码唯一确定,因此上述所有这些关系模式都是第三范式的关系模式。
四详细设计
4.1数据库设计与实现
数据库通用类由DAO部分来实现,它是应用程序通过数据池访问数据的基础类,也是应用程序实现上层业务逻辑的基础。
该类主要封装了创建访问数据库的一些对象或方法,如数据库连接对象等,以及执行数据库操作的对象或方法。
数据库连接是连接数据库的必要对象,在该类定义了连接对象CON,该对象在整个类中都可以使用。
数据库连接代码实现如下:
DataSourceds=null;
Contextcontext;
try{
context=newInitialContext();
ds=(DataSource)context.lookup("
java:
/comp/env/jdbc/mysqlds"
);
}catch(NamingExceptione){
e.printStackTrace();
System.out.println("
获取数据源错误!
"
}
4.2用户登陆
在本次系统中,用户登陆模块与普通应用系统的用户登陆是基本相同的。
因此当一个用户登陆管理系统之后,管理员的操作流程如以下图所示。
图4-1管理员登陆操作流程
登陆模块主要思想为:
当输入用户名和密码提交后到logincheck控制模块进行处理,当输入正确时转到jiemian.jsp;
否则回到login.jsp页面重新输入,同时提醒登陆错误。
Logincheck代码如下:
request.setCharacterEncoding("
utf-8"
Stringusername=request.getParameter("
username"
Stringpassword=request.getParameter("
password"
DataSourceds=null;
Stringmessage=null;
try{Stringsql="
selectusername,passwordfromuserwhereusername=?
andpassword=?
;
QueryRunnerrun=newQueryRunner(ds);
Stringstr[]={username,password};
Listlist=(List)run.query(sql,str,newBeanListHandler(room.class));
if(list.isEmpty()){
message="
登陆失败!
请重新输入"
request.setAttribute("
message"
message);
request.getRequestDispatcher("
/login.jsp"
).forward(request,response);
}
else{
request.getRequestDispatcher("
/jiemian.jsp"
}catch(SQLExceptione){e.printStackTrace();
}}
4.3客户预定模块
预定模块有三个子功能实现:
预定登记,修改登记和取消登记;
各子模块实现如下:
在本系统中,预定系统模块主要实现对酒店预定添加,修改,取消的管理,关系如下列图。
添加是为预定客户保留预定信息,流程如下:
图4-3“添加”流程
预定登记设计思想:
当登记时首先经过getallroom控制块处理,获得还有的空房在roomseachnull.jsp界面显示,然后选择预定的房间进行预定,接着转到addclient.jsp进行客户信息填写,最后经过insertroom到数据库添加。
getallroom代码实现如下:
Stringleixing=request.getParameter("
leixing"
Stringyuding=request.getParameter("
yuding"
inti=Integer.parseInt(leixing);
//i!
=1;
为预定登记操作
try{if(i==1)
{sql="
selectroomno,statue,startdate,enddatefromroom"
}
else
{sql="
selectroomno,statue,startdate,enddatefromroomwherestatue=0"
Listlist=(List)run.query(sql,newBeanListHandler(
room.class));
request.setAttribute("
list"
list);
if(i==1){
/main/roomseach.jsp"
).forward(request,
response);
else{request.setAttribute("
yuding);
/main/roomseachnull.jsp"
}catch(SQLExceptione){
}}
提交到insertroom对数据库操作:
当leixing=0时是预定操作,leixing=1时是入住操作,当leixing=2时是退房操作。
Insertroom代码如下:
ServletContextapplication=getServletContext();
Stringleixing=(String)application.getAttribute("
Stringroomno=(String)application.getAttribute("
roomno"
System.out.println(roomno);
System.out.println(leixing);
inti=Integer.parseInt(leixing);
try{context=newInitialContext();
}catch(NamingExceptione){e.printStackTrace();
System.out.println("
intresult=0;
Stringmessage=null;
Stringsql=null;
try{switch(i){case0:
sql="
updateroomsetstatue=1whereroomno=?
break;
case1:
updateroomsetstatue=2,startdate=now()whereroomno=?
case2:
updateroomsetenddate=now()whereroomno=?
Stringsr[]={roomno};
result=run.update(sql,sr);
if(i==1){
sql="
updateclientsetyuding=2whereroomnumber=?
QueryRunnerrun1=newQueryRunner(ds);
run1.update(sql,sr);
}if(i==2){ServletContextapplication1=getServletContext();
application1.setAttribute("
roomno);
RequestDispatcherrs=request.getRequestDispatcher("
/servlet/seachall"
try{
rs.forward(request,response);
return;
}catch(Exceptione){
}}else{if(result==1){message="
操作成功!
}else{message="
操作失败!
message);
request.getRequestDispatcher("
/addResult.jsp"
“修改”操作为预定客户提供修改相关信息的功能,流程图如下
图4-6“修改”流程
设计思想:
输入身份证号后提交经trueroom查找客户信息,在xiugai.Jsp页面显示客户的信息,修改后提交update对数据库进行修改.
Truroom代码如下:
Stringleixing=(String)application.getAttribute("
Stringroomno=(String)application.getAttribute("
try{Stringsql="
select*fromroomwherestatue=?
androomno=?
Stringstr[]={leixing,roomno};
Listlist=(List)run.query(sql,str,newBeanListHandler(room.class));
if(list.isEmpty()){
request.getRequestDispatcher("
/servlet/insertroom"
}
else{ServletContextapplication1=getServletContext();
roomno);
leixing);
RequestDispatcherrs=request.getRequestDispatcher("
try{rs.forward(request,response);
return;
}catch(Exceptione){}}
“取消”操作为客户提供取消预定的功能,方便客户改变计划,流程图如下:
图4-8“取消”流程
4.4查询模块
在本系统中,查询系统模块主要实现对酒店房间状态查询,客户查询和所有客户信息查询的管理,查询设计主要包括:
房间入住情况查询,客户查询和显示所有客户;
关系如下列图。
查询房间状态能更好的了解酒店入住情况,为客户修改房间号提供依据,流程如下:
图4-9“房间状态”查询流程
房间查询的思想为:
先到getallroom控制块对条件进行处理,将满足条件的房间号的数组放到room.Class中,再到Roomseach.Jsp页面将数组显示出来。
try{sql="
QueryRunnerrun=newQueryRunner(ds);
Listlist=(List)run.query(sql,newBeanListHandler(room.class));
}catch(SQLExceptione){
e.printStackTrace();
客户查询为其他人员查找客户提供方便快捷的功能,提高效率,其流程图如下:
图5-11“客户”查询流程
设计思想与gatallroom基本相同,只是SQL语句中的查询表不同。
显示所有客户信息是客户查询的进一步扩展,可以查看所有的客户,并提供修改的功能,其流程图如下:
图4-12“显示所有客户”流程
4.5入住模块
在本系统中,入住系统模块主要实现对预定客户入住和散客登记入住的管理,关系如下列图。
预定入住是为预定客户提供入住手续的模块,为预定客户提供方便,其流程图如下:
图4-14“预定入住”流程
预定入住设计思想为:
首先到getclient控制块中查询已经预定的客户信息,到Yudingruzu.Jsp页面显示出来