Java课程设计报告-酒店客房管理系统_第1页
Java课程设计报告-酒店客房管理系统_第2页
Java课程设计报告-酒店客房管理系统_第3页
Java课程设计报告-酒店客房管理系统_第4页
Java课程设计报告-酒店客房管理系统_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

《Java网络编程》课程设计报告酒店客房管理指导教师:***班级:1303班组长:*组员:* * * *完成日期:2016年6月20号运城学院计算机科学与技术系目录第一章问题定义 3第二章系统需求分析 32.1系统建设目标 32.2可行性分析 42.2.1技术可行性 42.2.2经济可行性 42.2.3运行可行性 42.2.4法律可行性 52.3系统需求分析 5第三章系统总体设计 53.1系统总体结构设计 53.2使用结构化方法进行系统分析 63.2.1系统功能建模 63.2.2学生宿舍管理系统的E-R图 73.3数据库设计 8第四章系统的详细设计及其实现 104.1注册页面 104.2用户登录 114.3入住登记 124.4离店结账并生成结账报表 144.5房间增加 164.6房间删除 174.7房间查询 174.8房间更新 184.9客户查询 19第五章系统测试 205.1测试综述 205.2测试方法 205.3测试步骤 205.4测试过程 205.5测试结论 21第六章课程设计体会 21

第一章问题定义随着人类社会进入信息时代,计算机越来越多地活跃在社会各个领域,成为不可缺少的工具,尤其在管理方面,管理软件的出现使大量繁琐复杂的问题变得简单易行。在人民生活水平提高的同时,餐饮,住宿,娱乐业在服务行业中占有越来越重要的地位。要使在当前酒店行业日趋激烈的竞争中脱颖而出,必须努力发展自己在管理方面的特色,避免传统管理方法的失误,使酒店的信誉以及各个管理方面都能够出现零失误,给管理者和普通的营业员带来操作上的方便,对整个酒店各个方面的业务带来快捷,方便,高效的服务,才是管理软件的成功之处。现今酒店宾馆的规模不断扩大,客户数量急剧增加,有关客户的各种信息也成倍增长,尤其是大量的客房预订信息。面对庞大的信息量,需要有客户信息管理系统来提高客户管理工作的效率。通过这样的系统,可以做到信息的规范管理,科学统计和快速查询,从而减少管理方面的工作量。当前许多酒店正在逐步完善客户信息管理工作,需要一个能满足内部管理需求,提高管理效率的应用系统进行内部管理。许多酒店经过多年的发展,规模不断扩大,客流量成倍增长,积累了大量的客户信息急需进行统一管理以防信息的流失。因此,许多酒店需要一个功能全面的客户信息管理系统来进行管理,以使管理客户信息的工作在该系统的配合下更加高效和便捷。 第二章系统需求分析2.1系统建设目标在对系统初步调查的基础上就可以提出项目的开发目标,即新系统建立后所要求达到的运行指标,这是系统开发和评价的依据。 由于传统的手工客房信息管理,管理过程复杂繁琐,低执行效率,并且容易出错。为了提高工作效率,减少工作中的错误,针对酒店客房管理开发管理软件,让前台客服人员通过电脑操作进行酒店客房管理,为用户节省时间和人力,更能全面、有效地掌握酒店基本情况,及时获取最新的准确资料和信息。本酒店客房管理系统主要以提高酒店客房服务的速度、精度,改善顾客服务的亲善程度,减少工作差错为目标,减少各项资金支出,提高管理质量,从而能为酒店经营上档次创造条件。2.2可行性分析 可行性分析是任何一个大型工程正式投入力量之前必须进行的一项工作。这对于保证资源的合理利用、避免浪费是一个十分重要的,也是项目一旦开始以后能顺利进行的必要保证。当系统的开发目标确定后,就可以从以下三方面对能否实现新系统目标进行可行性分析:2.2.1技术可行性技术可行性是指:根据现有的技术条件,能否达到所提出的要求;所需要的物理资源是否具备,能否得到。硬件:计算机的存储量大,运算速度快,成本较低,外部设备的功能好、效率高、可靠性高,通信设备的能力、质量都满足要求。系统软件:本系统主要采用B/S结构,其中B/S部分采用JSP技术来实现,由前台用户使用、后台系统管理部分两大部分组成,不需安装客户端,被授权用户通过浏览器即可登录系统。服务器以Win7为操作系统,Mysql为数据库,主体程序Eclipse实现。客户端以Win7为平台,用浏览器进行系统登陆和页面浏览。在B/S三层体系结构系统中,用户通过客户端浏览器向网络上的服务器发出请求,服务器对浏览器的请求进行处理,将用户所需信息返回到浏览器。B/S结构简化了客户机的工作,客户机上无需配置客户端软件。服务器将担负更多的工作,对数据库的访问和应用程序的执行将在服务器上完成。浏览器发出请求,而其余如数据请求、加工、结果返回以及动态网页生成等工作全部由WebServer完成。实际上B/S体系结构是把二层C/S结构的事务处理逻辑模块从客户机的任务中分离出来,由Web服务器单独组成一层来负担其任务,这样客户机的压力减轻了,把负荷分配给了Web[]服务器。2.2.2经济可行性经济可行性分析要估计项目的成本和效益,分析项目经济上是否合理,并将费用与效益进行比较,看是否有利。该酒店客房管理系统开发经费对于一个企业来来说是可以接受的,并且本系统实施后可以显著提高工作效率,有助于企业的信息化管理,所以为该企业开发酒店管理系统在经济上是可行的。2.2.3运行可行性运行可行性是指所建立的信息系统能否在该企业实现,在当前的操作环境下能否很好的进行,即组织内外是否具备接受和使用新系统的条件。该酒店管理系统是一个简单的信息管理系统,所耗费的资源非常少,并且将来的操作界面是直接浏览网页的形式,利用鼠标进行傻瓜式的操作,操作中的每一步都会有相应的提示,这样可以让更多的人群在最短的时间内学会使用他。2.2.4法律可行性整个系统由于是自行开发,自行使用,在开发过程中没有涉及合同、责任等与法律抵触的方面。因此,本系统在法律上是可行的。按上述四方面进行可行性分析、研究后,我们认为该项目是可行的。2.3系统需求分析该酒店预订管理系统使用户能迅速而便捷的了解和查询酒店信息,根据自己的需求来预订房间。一个方便地实现对客房变更、房价及预订信息的自动化操作。使用该系统全面管理酒店信息,为用户节省时间和人力,更能全面、有效地掌握酒店基本情况,及时获取最新的准确资料和信息。该软件能系统管理酒店的信息,功能与实现方面有相当的针对性和实用性。该系统的主要功能有酒店信息管理,房间类型管理,订单信息管理,业务人员编辑和系统用户管理。酒店客房管理系统需要具有以下的功能:1)系统管理功能:普通接待人员的注册2)客户管理功能:提供住宿客户信息的登记以及浏览。3)住房管理功能:可以进行客户入住、房间更换、退房的管理。4)查询管理功能:提供对所有用户和房间信息的查询。如:房间状态查询、客户住房信息查询、客户退房查询、管理员信息查询等。5)房间管理功能:提供房间的信息管理,例如:房间状态,不同类型房价的剩余量的记录。6)其他特殊功能:不同权限的用户登录实现不同的功能、各类信息的统计。第三章系统总体设计系统总体设计是对有关系统全局问题的设计,也就是设计系统总的处理方案,又称系统概要设计。它主要包括系统模块结构设计、数据库设计等内容。3.1系统总体结构设计本系统设计采用了自顶向下方式进行设计的。首先设计总体结构[4],然后再逐层深入,直至进行每一个模块的设计。总体设计主要是指在系统分析的基础上,针对企业电子商务的目标,刻画系统的内部结构及其相互关系,明确目标系统的各个组成部分、各个组成部分的作用及其相互关系,系统的流程如图所示:系统功能模块图3.2使用结构化方法进行系统分析3.2.1系统功能建模对用户需求进行分析,画出系统的数据流图,如图所示。 图3.1酒店客房管理系统的顶层数据流图图3.2酒店客房管理系统的二层数据流图3.2.2学生宿舍管理系统的E-R图根据系统数据流程图,我们可以列出以下系统所需的数据项:客户:姓名、性别、年龄、证件号码、押金、房间号、房间状态用户:账户名、账户密码、姓名、性别、年龄、联系电话房间:房间号、房间类型、房间单价、电话、房间状态款项:已收押金、消费金额、结余金额同时系统还需要进行记录的数据项:入住及退房记录:客户姓名、入住时间、退出时间、管理员查询记录:日期、当天收入金额、支出金额、全部押金管理员更新记录:房价更改、客户登记、结算金额用户ER图房间ER图客户ER图结算ER图总体ER图3.3数据库设计根据E-R模型和数据库需求分析,本系统总共涉及10个数据表格。其中包括用户表、房间表、客户表表、结算表4个基本表,同时还需要不用的用户登录实现不同的功能,因此还需要角色表、角色类型表,同时还引入了房间状态表,实现简单的操作。本系统的数据表设计如图所示。Account表Function表Living表Role表Role_function表Room表Rooms表Roomstate表User表User_role表第四章系统的详细设计及其实现本章所讲的主要内容是该系统的实现方法和原理。下面来详细介绍系统的实现4.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)) }}4.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"); } }4.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)); }}4.4离店结账并生成结账报表//结账信息 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("<divclass='billlist'><h3style='text-align:center;'>账单</h3>姓名:"+live2.getAccount().getAccount()); sb.append("</br>"); sb.append("房间号:"+live2.getRoomnumber().getRoomnumber()); sb.append("</br>"); sb.append("押金:"+live2.getCashpledge()); sb.append("</br>"); sb.append("消费:"+live2.getBill()); sb.append("</br>"); sb.append("结余:"+(live2.getCashpledge()-live2.getBill())); sb.append("</br>"); sb.append("时间:"+live2.getCheckdate()); sb.append("</br>");sb.append("</br>"); sb.append("欢迎下次光临!"); rmsg=newResultMsg(true,sb.toString()); }catch(Exceptione){ e.printStackTrace(); rmsg=newResultMsg(true,"结算失败"); } JsonUtil.outJsonStrAndColse(resp,JsonUtil.transToJsonStr(rmsg)); }}4.5房间增加//添加房型 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)); }}4.6房间删除//移除一种房间类型 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)); }4.7房间查询//查询所有房间类型 protectedvoiddoList(HttpServletRequestreq,HttpServletResponseresp) throwsServletException,IOException{ //TODOAuto-generatedmethodstub SqlSessionsqlsession=MybatisUtil.getSqlSession(); List<RoomType>typelist=sqlsession.selectList("RoomType.select1"); StringjsonStr=JsonUtil.transToJsonStr(typelist); System.out.println(typelist.get(0).getRoomtype()); JsonUtil.outJsonStrAndColse(resp,jsonStr); } protectedvoidtoUpdate(HttpServletRequestreq,HttpServletResponseresp) throwsServletException,IOException{ //TODOAuto-generatedmethodstub Stringroomsids=req.getParameter("roomsid"); introomsid=Integer.parseInt(roomsids); SqlSessionsqlsession=MybatisUtil.getSqlSession(); RoomTypetype=sqlsession.selectOne("RoomType.select2",roomsid); req.setAttribute("type",type); req.getRequestDispatcher("Myjsp/room/rotypeedit.jsp").forward(req,resp); }4.8房间更新//更新房间信息protected

void

toUpdate(HttpServletRequest

req,

HttpServletResponse

resp)

throws

ServletException,

IOException

{

//

TODO

Auto-generated

method

stub

String

roomsids=req.getParameter("roomsid");

int

roomsid=Integer.parseInt(roomsids);

SqlSession

sqlsession=MybatisUtil.getSqlSession();

RoomType

type

=sqlsession.selectOne("RoomType.select2",roomsid);

req.setAttribute("type",

type);

req.getRequestDispatcher("Myjsp/room/rotypeedit.jsp").forward(req,

resp);

}4.9客户查询//查询所有现入住客户 protectedvoidAccList(HttpServletRequestreq,HttpServletResponseresp) throwsServletException,IOException{ //TODOAuto-generatedmethodstub SqlSessionsqlsession=MybatisUtil.getSqlSession(); List<Account>Acclist=sqlsession.selectList("Acc.select1"); JsonUtil.outJsonStrAndColse(resp,JsonUtil.transToJsonStr(Acclist)); } protectedvoidtoUpdate(HttpServletRequestreq,HttpServletResponseresp) throwsServletException,IOException{ intaccid=Integer.parseInt(req.getParameter("accid")); SqlSessionsqlsession=MybatisUtil.getSqlSession(); Accountacc=sqlsession.selectOne("Acc.select2",accid); req.setAttribute("acc",acc); req.getRequestDispatcher("Myjsp/room/accountedit.jsp").forward(req,resp); }第五章系统测试5.1测试综述系统测试其实就是对系统实现的一个校正。也许某个用户用到的某个模块运行正常,也许该用户用其它的模块就出现了相应的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论