java课程设计 酒店管理系统.docx
- 文档编号:7061675
- 上传时间:2023-01-16
- 格式:DOCX
- 页数:18
- 大小:282.06KB
java课程设计 酒店管理系统.docx
《java课程设计 酒店管理系统.docx》由会员分享,可在线阅读,更多相关《java课程设计 酒店管理系统.docx(18页珍藏版)》请在冰豆网上搜索。
java课程设计酒店管理系统
一、设计题目
酒店管理系统
二、设计目的
1.运用已学过的知识进行一个简单的应用程序的开发。
2.通过设计,掌握使用SSH技术、Java高级语言、SQL语言开发一个基于J2EE的应用系统的基本方法。
后台数据库主要采用MySQLServer数据库。
3.基本掌握实现对数据库的连接、对数据的查询、修改、插入、删除等操作。
4.设计系统主界面,主界面上包括系统功能菜单。
5.界面友好,操作方便。
三、设计分析
3.1可行性分析
可行性研究的目的,就是用最小的代价在尽可能短的时间内确定问题是否能够解决。
要达到这个目的,必须分析几种主要的可能解法的利弊,从而判断原定的系统规模和目标是否现实,系统完成后所能带来的效益是否达到值得投资开发这个系统的程度。
因此,可行性研究实质上是要进行一次大大压缩简化了的系统分析和设计的过程,也就是在较高层次上以较抽象的方式进行的系统分析和设计的过程。
系统的可行性分析主要包括经济上的可行性,技术上的可行性和操作上的可行性,下面将分别介绍三种技术上的可行性。
3.1.1技术上可行性
酒店管理系统是采用Java语言编写的,具有Java的一次编写,到处运行的优点,所以此系统在不同的操作系统上都可以运行,具有很强的移植性、健全性和安全性。
并且酒店管理系统应具备功能完备、易于使用、易于维护等特点,而对于后者则要求能建立数据一致性和完整性强、数据安全性好的库。
基于以上的要求,本系统采用MyEclipse6.0作为开发工具,使得代码编写的过程大大的简化。
而数据库则是采用目前较为流行的Mysql,Java对Mysql具有很好的支持,并且在经历了多年的发展后Mysql具有很好的口碑。
此系统在技术上是可行的。
3.1.2操作上可行性
酒店管理系统具备友好的用户界面,使用方便,易于维护,操作简单易于被用户接受,用户只需有一定的计算机操作基础,并对此系统的使用做简单的了解,即可方便使用此系统,而且使用此系统可以大大减少管理人员的负担。
因此从使用操作方面看,此系统的开发是可行的。
3.1.3经济上可行性
本酒店管理系统运行的硬件环境只需一台廉价的电脑既可,软件环境则是安装windowsXP系统,MyEclipse6.0,Mysql既可。
对于一般的中小型酒店来说都是很小的成本支出。
因此此系统在经济上、技术上、操作上的开发都是可行的。
3.2系统功能分析
满足客户的需求,实现酒店管理的流程。
此管理系统主要功能包括添加新管理员、修改密码、客户预订和入住、客户住宿管理、客户餐饮管理、客户结账等等。
添加新管理员:
此功能可以添加新的管理员。
客户入住开单:
完成客户入住开单,实现客户入住酒店。
客户住宿管理:
可以实现管理人员对客人住宿情况的管理。
客户餐饮管理:
可以实现管理人员对客人餐饮情况的管理。
客户结账:
实现客户离宿后结账。
四、总体设计
4.1设计思想
本系统实现了宾客入住酒店从登记到离宿的管理,本系统主要的功能如下:
客户入住开单:
完成客户预定或者现场入住开单,实现客人入住酒店。
其中需要录入客人的身份证信息、入住时间、房间选择情况等等。
客户住宿管理:
可以实现管理人员对客人住宿情况的管理。
客户餐饮管理:
可以实现管理人员对客人餐饮情况的管理。
主要体现在入住客人的就餐消费管理和非入住客人的就餐消费管理等等。
客户结账:
实现客户离宿结账,包含住宿消费和就餐消费。
4.2系统功能模块
如图4-1。
图4-1系统功能模块图
4.3系统流程分析
本系统主要流程如下图4-2。
图4-2系统流程图
系统E-R图如图4-3。
图4-3系统E-R图
4.4功能需求与程序模块对应的关系
如表4-4。
表4-4功能需求与程序模块对应的关系
住房信息添加
住房信息查询
住房信息修改
餐饮信息添加
餐饮信息查询
餐饮信息修改
住房结账
餐饮结账
客户入住
Y
住房管理
Y
Y
餐饮管理
Y
Y
Y
结账
Y
Y
4.5数据库结构设计
4.5.1系统数据库性能需求
整个系统应当操作简便,界面友好,维护简便。
数据库要求运行稳定,执行速度快,数据安全性高。
软件系统本身运行对计算机硬件平台和操作系统平台要求适中。
数据库技术是信息资源管理最有效的手段。
数据库设计是指对于一个指定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,有效存储数据,满足用户信息要求和处理要求。
数据库结构设计的好坏将直接对应用系统的效率及实现的效果产生影响。
合理的数据库设计可以提高数据存储的效率,保证数据的完整和一致。
本系统采用Mysql数据库,灵活方便。
4.5.2本系统数据库表设计中所遵守的基本原则
系统时间:
由数据库产生的系统时间首选数据库的日期型,如DATE类型。
外部时间:
由数据导入或外部应用程序产生的日期时间类型采用varchar类型,数据格式采用YYYYMMDDHH24MISS。
大字段:
如无特别需要,尽可能避免使用大字段(blob,clob,long,text,image等)
4.5.3数据库需求分析
针对此适用于中小型酒店的酒店管理系统的需求,设计如下的数据项和数据结构:
住房信息的输入包括:
房间号、客房编号、住房费用、住宿时间、开始日期等。
顾客信息的输入包括:
顾客ID、顾客姓名等。
用户登录信息的输入包括:
用户名、用户密码、验证码等。
餐厅信息的输入包括:
餐桌号、服务人员、就餐编号、就餐日期、就餐费用、客人房间号等。
4.5.4数据字典设计及数据库表命名规则
本系统的数据库共包含5张数据库表,各个数据库表字段的命名遵守见名知意的规则。
下面为主要的3个表的结构:
1.住房信息表4-5。
表4-5住房信息表
字段名
类型
可否为空
键值
备注
stayID
int(10)
否
PK
客房编号
roomID
varchar(45)
是
房间号码
customerID
number(33)
否
顾客ID
customerName
varchar(180)
否
顾客姓名
stayTime
varchar(45)
否
住宿时间
fee
int(10)
否
房间单价
startDate
datetime
是
开始日期
2.用户登录表4-6。
表4-6用户登录表
字段名
类型
可否为空
键值
备注
userID
int(10)
否
PK
用户ID
userName
varchar(180)
否
用户名
passWord
number(90)
否
用户密码
userPosition
varchar(150)
是
验证码
3.顾客餐饮信息表4-7。
表4-7顾客餐饮信息表
字段名
类型
可否为空
键值
备注
eatingID
int(10)
否
PK
用餐编号
tableNumber
varchar(45)
否
餐桌号
fee
int(10)
否
用餐费用
eatingDate
datetime
否
用餐日期
roomID
int(10)
否
FK
房间号码
server
varchar(180)
是
服务人员
4.空餐桌信息表4-8。
表4-8空餐桌信息表
字段名
类型
可否为空
键值
备注
tableNumber
varcher(15)
否
PK
餐桌号
tableDescribe
varcher(30)
否
餐桌信息
5.空房间信息4-9。
表4-9空房间信息表
字段名
类型
可否为空
键值
备注
roomID
varcher(20)
否
PK
房间号码
fee
Int(11)
否
房间单价
roomDescribe
varcher(30)
否
房间信息
五、详细设计
5.1系统登陆界面
用户在登陆本酒店管理系统的时候,只需要输入正确的用户名、密码和验证码,验证码每次登陆都会随机刷新出来,假如输入的信息有误,系统会提示错误之处,重新登陆即可。
如图5-1。
图5-1登陆界面
5.2添加住房信息功能
添加住房信息功能可以实现客户的入住登记,其中包含客人的姓名、身份证号、入住日期、选择房间的情况等等,便于管理员进行管理和查询。
如图5-2。
图5-2添加住房信息界面
实现此功能的代码如下:
privatevoiddoAddAssetsInfoAction(HttpServletRequestrequest,
HttpServletResponseresponse,
StayInfoActionformoneStayInfoActionform)throwsServletException,IOException{
StayInfoPOoneStayInfoPO=newStayInfoPO();
stayInfoActionFormSaveToStayInfoPO(oneStayInfoActionform,oneStayInfoPO);
oneStayInfoPO.setStayID(SystemUtil.getRandomIntegerNumber(10,6));
booleanreturnResult;
StayInfoCRUDImpleoneStayInfoCRUDImple=newStayInfoCRUDImple();
try{
returnResult=oneStayInfoCRUDImple.insertOneStayInfo(oneStayInfoPO);
}catch(WebExceptione){
forwardToShowErrorInfoTargetPage(request,response,e.getMessage());
return;
}
if(returnResult){
forwardToSuccessTargetPage(request,response,"/main.html");
}
else{forwardToShowErrorInfoTargetPage(request,response,"在添加住房信息时,系统出现了错误,请重新添加该住房的信息!
");}
return;
}
5.3住房信息查询功能
住房信息查询功能便于管理员和客户的查询,可以按住房编号查询,也可以按照入住日期查询,还可以直接查看全部的住宿信息,准确快捷。
如图5-3。
图5-3住房信息查询界面
5.4添加就餐信息功能
就餐信息添加功能,能够实现管理员对客人就餐消费的管理,如图5-4。
图5-4添加就餐信息界面
实现此功能的代码如下:
privatevoiddoQueryAssetsInfoAction(HttpServletRequestrequest,
HttpServletResponseresponse,
EatingInfoActionformoneEatingInfoActionform)throwsServletException,IOException{
EatingInfoPOoneEatingInfoPO=newEatingInfoPO();
eatingInfoActionFormSaveToEatingInfoPO(oneEatingInfoActionform,oneEatingInfoPO);
oneEatingInfoPO.setEatingID(SystemUtil.getRandomIntegerNumber(10,6));
booleanreturnResult;
EatingInfoCRUDImpleoneEatingInfoCRUDImple=newEatingInfoCRUDImple();
try{
returnResult=oneEatingInfoCRUDImple.insertOneEatingInfo(oneEatingInfoPO);
}catch(WebExceptione){
forwardToShowErrorInfoTargetPage(request,response,e.getMessage());
return;
}
if(returnResult){
forwardToSuccessTargetPage(request,response,"/main.html");
}
else{forwardToShowErrorInfoTargetPage(request,response,"在添加就餐信息时,系统出现了错误,请重新添加就餐信息!
");}
return;}
5.5就餐信息查询功能
就餐信息查询功能便于管理员和客人对就餐消费信息的查询,如图5-5。
图5-5就餐信息查询界面
5.6结账功能
当宾客离店结账的时候可以分开进行就餐结账和住房结账,也可以两种账单和在一起清算,如图5-6。
图5-6结账界面
六、结论
本系统综合了中小型星级酒店的的特点,从界面的设计到系统的使用都是从方便用户使用的角度出发,具有很强的实用性
主要功能包括客户预订、入住开单、客户住宿管理、客户餐饮管理、客户结账等等。
系统的特色归纳如下:
本系统可以运行在多种操作系统平台上(WindowsNT/Windows2000/WindowsXP)。
数据库管理系统采用Mysql数据库。
并且利用安全可靠的Java来编写,使得系统具有很强的移植性和易于维护等特点。
及时全面地处理各种错误异常,特别是对用户提交的信息进行判断,若出现输入错误或信息为空的现象,系统就会及时给予用户出错提示。
避免了用户的误操作和输入非法数据的可能性。
用户界面比较友好,操作简单,使用方便。
符合酒店管理的基本流程。
本系统基本上满足了酒店管理方面的需要。
满足了酒店管理人员对客房管理的工作。
在界面上力求做到美观、在操作方面尽量避免由于用户操作不当带来的系统出错现象。
但由于时间仓促,本系统还存在一些不足之处,主要体现在:
需要进一步修饰和美化;部分模块功能实现有些简单,与实际情况有一定的出入,在以后的学习和工作时间里,我会进一步加强其功能。
附录(部分源代码)
验证码:
publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)
throwsServletException,IOException{
CreateVerifyCodeImageBeanoneCreateVerifyCodeImageBean=newCreateVerifyCodeImageBean();
java.awt.imag12y67lc,e.BufferedImageimage=oneCreateVerifyCodeImageBean.createSomeOneVerifyImage();
HttpSessionsession=request.getSession();
StringverifyCodeInSession=oneCreateVerifyCodeImageBean.getVerifyCodeString();
session.setAttribute("verifyCodeNameInSession",verifyCodeInSession);//将认证码存入SESSION对象中
response.setContentType("image/jpeg");//该已经必须要有
response.setHeader("Pragma","No-cache");
response.setHeader("Cache-Control","no-cache");
response.setDateHeader("Expires",0);
javax.imageio.ImageIO.write(image,"JPEG",response.getOutputStream());//输出图像
}
登陆界面:
publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)
throwsServletException,IOException{
request.setCharacterEncoding("gb2312");
StringverifyCode=request.getParameter("verifyCode");
StringuserName=request.getParameter("userName");
StringpassWord=request.getParameter("passWord");
UserInfoRUImpleoneUserInfoRUImple=newUserInfoRUImple();
UserInfoPOoneUserInfoPO=newUserInfoPO();
HttpSessionsession=request.getSession();
StringverifyCodeInSession=(String)session.getAttribute("verifyCodeNameInSession");
if(verifyCode.equals(verifyCodeInSession)){
try{
oneUserInfoPO=
oneUserInfoRUImple.selectUserInfo(userName,passWord);
}catch(WebExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
if(oneUserInfoPO==null){
request.setAttribute("errorText","用户名和密码输入错误!
");
RequestDispatcheroneRequestDispatcher=request.getRequestDispatcher(this.getServletContext().getInitParameter("forwardShowErrorInfoTargetPage"));
oneRequestDispatcher.forward(request,response);
return;
}
else{
RequestDispatcheroneRequestDispatcher=request.getRequestDispatcher("/index.html");
oneRequestDispatcher.forward(request,response);
}
}
else{
request.setAttribute("errorText","验证码输入错误!
");
RequestDispatcheroneRequestDispatcher=request.getRequestDispatcher(this.getServletContext().getInitParameter("forwardShowErrorInfoTargetPage"));
oneRequestDispatcher.forward(request,response);
return;
}
}
住房信息查询:
privatevoiddoQueryAssetsInfoAction(HttpServletRequestrequest,
HttpServletResponseresponse,
StayInfoActionformoneStayInfoActionform)throwsServletException,IOException{
StringsqlQueryWhereString=null;
PageStatePOonePageStatePO=null;
onePageStatePO=newPageStatePO();
onePageStatePO.setCurrentPageNumber
(1);//由于是第一次访问,因此获得第一页的数据
onePageStatePO.setOnePageSize(AllConstantItems.OnePageSize);
switch(oneStayInfoActionform.getQueryMethodRadioButtonID()){
caseAllConstantItems.ProductionInfoManage_QueryAllData:
sqlQueryWhereString="";
break;
caseAllConstantItems.ProductionInfoManage_QueryDataByProductionID:
if(oneStayInfoActionform.getStayID()!
=0){
sqlQueryWhereString="wherestayID="+oneStayInfoActionform.getStayID();
}
break;
caseAllConstantItems.ProductionInfoManage_QueryDataBySomeProductionInfo:
sqlQueryWhereString="wherestartDatelike'%"+oneStayInfoActionform.getStartDate()+"%'";
break;
}
StayInfoCRUDImpleoneStayInfoCRUDImple=newStayInfoCRUDImple();
List
try{
someStayInfo=oneStayInfoCRUDImple.selectSomeStayInfo(sqlQueryWhereString,onePageStatePO);
}catch(WebExceptione){
forwardToShowErr
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java课程设计 酒店管理系统 java 课程设计 酒店 管理 系统