信息系统管理酒店客房管理系统.docx
《信息系统管理酒店客房管理系统.docx》由会员分享,可在线阅读,更多相关《信息系统管理酒店客房管理系统.docx(23页珍藏版)》请在冰豆网上搜索。
![信息系统管理酒店客房管理系统.docx](https://file1.bdocx.com/fileroot1/2023-7/11/a3e726df-08ae-4b6e-8189-6238f97a899c/a3e726df-08ae-4b6e-8189-6238f97a899c1.gif)
信息系统管理酒店客房管理系统
信息管理系统课程
设计报告
课题名称酒店客房客房管理系统
班级1303班
指导教师
组长李(20131003)
组员樊(20131003)
李(20131003)
王(20131003)
王(20131003)
2016年06月18日
第一章概述
随着人类社会进入信息时代,计算机越来越多地活跃在社会各个领域,成为不可缺少的工具,尤其在管理方面,管理软件的出现使大量繁琐复杂的问题变得简单易行。
在人民生活水平提高的同时,餐饮,住宿,娱乐业在服务行业中占有越来越重要的地位。
要使在当前酒店行业日趋激烈的竞争中脱颖而出,必须努力发展自己在管理方面的特色,避免传统管理方法的失误,使酒店的信誉以及各个管理方面都能够出现零失误,给管理者和普通的营业员带来操作上的方便,对整个酒店各个方面的业务带来快捷,方便,高效的服务,才是管理软件的成功之处。
现今酒店宾馆的规模不断扩大,客户数量急剧增加,有关客户的各种信息也成倍增长,尤其是大量的客房预订信息。
面对庞大的信息量,需要有客户信息管理系统来提高客户管理工作的效率。
通过这样的系统,可以做到信息的规范管理,科学统计和快速查询,从而减少管理方面的工作量。
当前许多酒店正在逐步完善客户信息管理工作,需要一个能满足内部管理需求,提高管理效率的应用系统进行内部管理。
许多酒店经过多年的发展,规模不断扩大,客流量成倍增长,积累了大量的客户信息急需进行统一管理以防信息的流失。
因此,许多酒店需要一个功能全面的客户信息管理系统来进行管理,以使管理客户信息的工作在该系统的配合下更加高效和便捷。
第二章系统分析
该酒店预订管理系统使用户能迅速而便捷的了解和查询酒店信息,根据自己的需求来预订房间。
一个方便地实现对客房变更、房价及预订信息的自动化操作。
使用该系统全面管理酒店信息,为用户节省时间和人力,更能全面、有效地掌握酒店基本情况,及时获取最新的准确资料和信息。
该软件能系统管理酒店的信息,功能与实现方面有相当的针对性和实用性。
该系统的主要功能有酒店信息管理,房间类型管理,订单信息管理,业务人员编辑和系统用户管理。
酒店客房管理系统需要具有以下的功能:
1)系统管理功能:
普通接待人员的注册
2)客户管理功能:
提供住宿客户信息的登记以及浏览。
3)住房管理功能:
可以进行客户入住、房间更换、退房的管理。
4)查询管理功能:
提供对所有用户和房间信息的查询。
如:
房间状态查询、客户住房信息查询、客户退房查询、管理员信息查询等。
5)房间管理功能:
提供房间的信息管理,例如:
房间状态,不同类型房价的剩余量的记录。
6)其他特殊功能:
不同权限的用户登录实现不同的功能、各类信息的统计。
第三章系统设计
3.1总体设计
3.1.1课程设计的实验环境:
硬件要求能运行WindowsXP操作系统;开发工具可采用MicrosoftVisualStudio2005,数据库管理系统采用SQLserver。
3.1.2课程设计的预备知识
熟悉软件开发的基本知识,有熟练运用数据库管理系统、.net或Java开发平台、方案设计能力等诸多具体问题有感性的认识和深入的理解、软件设计、开发和维护的能力。
3.2数据库概要设计
3.2.1系统结构体系图
系统功能模块图
3.2.2数据库设计
根据E-R模型和数据库需求分析,本系统总共涉及10个数据表格。
其中包括用户表、房间表、客户表表、结算表4个基本表,同时还需要不用的用户登录实现不同的功能,因此还需要角色表、角色类型表,同时还引入了房间状态表,实现简单的操作。
本系统的数据表设计如所示。
Account表
Function表
Living表
Role表
Role_function表
Room表
Rooms表
Roomstate表
User表
User_role表
3.3数据库物理设计
3.3.1系统功能建模
对用户需求进行分析,画出系统的数据流图,如图3.1——图3.4所示。
图3.1酒店客房管理系统的顶层数据流图
图3.2酒店客房管理系统的二层数据流图
3.3.2酒店客房管理系统的E-R图
根据系统数据流程图,我们可以列出以下系统所需的数据项:
客户:
姓名、性别、年龄、证件号码、押金、房间号、房间状态
用户:
账户名、账户密码、姓名、性别、年龄、联系电话
房间:
房间号、房间类型、房间单价、电话、房间状态
款项:
已收押金、消费金额、结余金额
同时系统还需要进行记录的数据项:
入住及退房记录:
客户姓名、入住时间、退出时间、
管理员查询记录:
日期、当天收入金额、支出金额、全部押金
管理员更新记录:
房价更改、客户登记、结算金额
用户ER图
房间ER图
客户ER图
结算ER图
总体ER图
第五章系统的详细设计及其实现
设计思想:
不同的用户通过不同的用户名和密码登录,通过判断,显示不同的界面,进行不同的操作,整体设计通过树形图的方式,通过展开父类节点,可以实现功能的分类,打开相应的操作模块。
职员登录的界面可以进行客户登记、退房登记、查询记录以及结算,实现作为职员的基本功能;经理在职员功能的基础上增加了房间管理模块,可以对房间进行增删;老板在经理的基础上增加了权限管理的功能,可以对职员和经理的功能进行增删。
总体来说,作为一个简单的信息管理系统,需要这样不同的用户进行了不同的操作,进而实现整个的酒店管理。
在系统中包括以下功能:
登录界面,入住登记,退房登记,结算,修改密码,房间管理,权限管理,房间管理,帮助。
分为以下几个模块:
5.1注册页面
//注册新用户
protectedvoiddoZhuCe(HttpServletRequestreq,HttpServletResponseresp)
throwsServletException,IOException{
Useruser=newUser();
ResultMsgrmsg=null;
try{
BeanUtils.copyProperties(user,req.getParameterMap());
SqlSessionsqlsession=MybatisUtil.getSqlSession();
sqlsession.insert("User.insert1",user);
mit();
sqlsession.close();
rmsg=newResultMsg(true,"注册成功");
}catch(IllegalAccessExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}catch(InvocationTargetExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
JsonUtil.outJsonStrAndColse(resp,JsonUtil.transToJsonStr(rmsg))
}
}
5.2用户登录
//判断用户名和密码是否正确
protectedvoiddoCheckLogin(HttpServletRequestreq,HttpServletResponseresp)
throwsServletException,IOException{
Useruser=newUser();
try{
BeanUtils.copyProperties(user,req.getParameterMap());
SqlSessionsqlsession=MybatisUtil.getSqlSession();
System.out.println(user.getAccount());
Useruu=sqlsession.selectOne("User.select1",user);
System.out.println("name=="+uu.getAccount()+"p==="+uu.getPwd());
if(uu.getAccount().equals(user.getAccount())&&uu.getPwd().equals(user.getPwd())){
req.getSession().setAttribute("loginuser",uu);
//正确跳转到主页面
req.getRequestDispatcher("Myjsp/main.jsp").forward(req,resp);
}
}catch(Exceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
//不正确跳转到登录页面
req.getRequestDispatcher("Myjsp/login.jsp");
}
}
5.3入住登记
//添加一条入住信息
protectedvoidaddAccount(HttpServletRequestreq,HttpServletResponseresp)
throwsServletException,IOException{
//TODOAuto-generatedmethodstub
Accountacc=newAccount();
ResultMsgrmsg=null;
SqlSessionsqlsession=MybatisUtil.getSqlSession();
System.out.println(req.getParameterMap());
try{
BeanUtils.copyProperties(acc,req.getParameterMap());
System.out.println("addddddddddddddddacc==========="+acc);
if(acc.getAccid()==0){
System.out.println(888888);
sqlsession.insert("Acc.insert1",acc);
if(acc.getStateidfk()==3){
Stringaccs=acc.getAccount();
Accountaccse=newAccount();
Livelive=newLive();
Datedate=newDate();
accse.setAccount(accs);
System.out.println("accs-----------"+accse);
Accountacclive=sqlsession.selectOne("Acc.select5",acc.getAccid());
live.setCheckdate(date.toLocaleString());
live.setAccidfk(acclive.getAccid());
live.setRoomidfk(acclive.getRoomidfk());
live.setCashpledge(acc.getCashpledge());
sqlsession.insert("Acc.insert2",live);
}
}else{
System.out.println("updateacc=============="+acc);
sqlsession.update("Acc.update1",acc);
if(acc.getStateidfk()==3){
Stringaccs=acc.getAccount();
Accountaccse=newAccount();
Livelive=newLive();
Datedate=newDate();
accse.setAccount(accs);
System.out.println("accs-----------"+accse);
Accountacclive=sqlsession.selectOne("Acc.select5",accse);
live.setCheckdate(date.toLocaleString());
live.setAccidfk(acclive.getAccid());
live.setRoomidfk(acclive.getRoomidfk());
live.setCashpledge(300);
sqlsession.insert("Acc.insert2",live);
}
}
Roomro=newRoom();
introomid=acc.getRoomidfk();
intstatidfk=acc.getStateidfk();
ro.setRoomid(roomid);
ro.setStateidfk(statidfk);
sqlsession.update("Acc.update2",ro);
mit();
sqlsession.close();
rmsg=newResultMsg(true,"操作成功");
}catch(Exceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
rmsg=newResultMsg(true,"操作失败");
}
JsonUtil.outJsonStrAndColse(resp,JsonUtil.transToJsonStr(rmsg));
}
}
5.3离店结账并生成结账报表
//结账信息
protectedvoidDelete(HttpServletRequestreq,HttpServletResponseresp)
throwsServletException,IOException{
//TODOAuto-generatedmethodstub
intlivid=Integer.parseInt(req.getParameter("livid"));
intbill=Integer.parseInt(req.getParameter("bill"));
System.out.println("livid===="+livid);
System.out.println("bill=="+bill);
SqlSessionsqlsession=MybatisUtil.getSqlSession();
ResultMsgrmsg=null;
Livelive=newLive();
live.setLivid(livid);
live.setBill(bill);
try{
Livelives=sqlsession.selectOne("Live.select4",livid);
/*sqlsession.delete("Live.delete1",livid);
System.out.println("accid======="+accid);
sqlsession.delete("Live.delete2",accid);*/
sqlsession.update("Acc.update3",lives.getAccidfk());
sqlsession.update("Room.update_room_state",lives);
sqlsession.update("Live.update1",live);
Livelive2=sqlsession.selectOne("Live.select6",livid);
mit();
sqlsession.close();
StringBuffersb=newStringBuffer();
sb.append("center;'>账单姓名:
"+live2.getAccount().getAccount());
sb.append("");
sb.append("房间号:
"+live2.getRoomnumber().getRoomnumber());
sb.append("");
sb.append("押金:
"+live2.getCashpledge());
sb.append("");
sb.append("消费:
"+live2.getBill());
sb.append("");
sb.append("结余:
"+(live2.getCashpledge()-live2.getBill()));
sb.append("");
sb.append("时间:
"+live2.getCheckdate());
sb.append("");sb.append("");
sb.append("欢迎下次光临!
");
rmsg=newResultMsg(true,sb.toString());
}catch(Exceptione){
e.printStackTrace();
rmsg=newResultMsg(true,"结算失败");
}
JsonUtil.outJsonStrAndColse(resp,JsonUtil.transToJsonStr(rmsg));
}
}
5.4房间增加
//添加房型
protectedvoidaddType(HttpServletRequestreq,HttpServletResponseresp)
throwsServletException,IOException{
//TODOAuto-generatedmethodstub
RoomTypetypes=newRoomType();
ResultMsgrmsg=null;
SqlSessionsqlsession=MybatisUtil.getSqlSession();
try{
BeanUtils.copyProperties(types,req.getParameterMap());
System.out.println(types.getRoomsid());
if(types.getRoomsid()==0){
System.out.println(888888);
sqlsession.insert("RoomType.insert1",types);
}else{
System.out.println(000000);
sqlsession.update("RoomType.update1",types);
}
mit();
sqlsession.close();
rmsg=newResultMsg(true,"操作成功");
}catch(Exceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
rmsg=newResultMsg(true,"操作失败");
}
JsonUtil.outJsonStrAndColse(resp,JsonUtil.transToJsonStr(rmsg));
}
}
5.5房间删除
//移除一种房间类型
protectedvoidtoremove(HttpServletRequestreq,HttpServletResponseresp)
throwsServletException,IOException{
//TODOAuto-generatedmethodstub
ResultMsgrmsg=null;
try{
Stringroomsids=req.getParameter("roomsid");
introomsid=Integer.parseInt(roomsids);
SqlSessionsqlsession=MybatisUtil.getSqlSession();
sqlsession.delete("RoomType.delete1",roomsid);
mit();
sqlsession.close();
rmsg=newResultMsg(true,"删除成功");
}catch(Exceptione){
e.printStackTrace();
rmsg=newResultMsg(true,"删除失败");
}
JsonUtil.outJsonStrAndColse(resp,JsonUtil.transToJsonStr(rmsg));
}
5.6房间查询
//查询所有房间类型
protectedvoiddoList(HttpServletRequestreq,HttpServletResponseresp)
throwsServletException,IOException{
//TODOAuto-generatedmethodstub
SqlSessionsqlsession=MybatisUtil.getSqlSession();
List