酒店客房管理系统设计与实现_第1页
酒店客房管理系统设计与实现_第2页
酒店客房管理系统设计与实现_第3页
酒店客房管理系统设计与实现_第4页
酒店客房管理系统设计与实现_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

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

文档简介

课程名称网页设计与网站建设课题名称酒店客房管理系统设计与实现目录TOC\o"1-3"\h\u1.系统分析 11.1功能需求 11.2开发及运行环境 21.2.1硬件平台 21.2.2软件要求 22.系统设计 32.1网站设计 32.1.1网站的设计目标 32.1.2网站的深入调查 32.1.3网站设计的特点 32.1.4网站开发的设计思想 32.2模块设计 42.2.1基于MVC的应用开发模型 42.3程序设计 52.3.1系统流程分析 53.系统实现 93.1用户登录模块实现 93.2客户预订模块实现 103.3查询模块实现 123.4入住模块实现 143.5退房模块实现 154.总结 19参考文献: 211.系统分析系统需对用户登录进行管理。使用各功能模块时,系统应验证用户身份的有效性,否则要求用户登录。另外,允许用户对自己的密码进行修改。系统应提供客房的分类管理功能,可分类制订客房面积、价格、是否配备空调等客房类型,对不同标准的客房进行有效管理。系统可实现对客房信息的添加、删除以及修改。在进行入住/退房管理时,系统可以根据客房当前的状态自动提示可用服务(入住/退房)。如果客房没有客人入住,则该客房的可用服务为“入住”;否则,可用服务为“退房”。系统的客户端在Windows平台下运行,服务器端可在Windows平台运行。系统还需要有较好的安全性和可扩展性。需求分析是从客户的需求中提取出软件系统能够帮助用户解决的业务问题,通过对用户业务问题的分析,规划出系统的功能模块,即定义用例。这个步骤是对理解需求的升华,直接关系到该系统的质量。整个系统可以分为2大部分。酒店网站部分(客户服务网站)和酒店管理部分(管理员部分)。1.1功能需求a)客户信息管理:包括对入住客户的客房消费,入住等各种信息的管理。b)酒店客房管理:包括对宾馆已住客房和未住客房的安排、客房使用率、不同消费群体对各种客房的需求分析统计等。c)入住管理d)预定管理e)退房管理f)各种信息查询:能够方便地查询宾馆及旅客的各种最新信息等。总体功能图:系统管理系统管理 客户预定模块查询信息模块入住模块退房模块客户预定模块查询信息模块入住模块退房模块 显所有客户信息显示房间状态查询房间登记入住退房预定入住修改登记预定登记取消登记显所有客户信息显示房间状态查询房间登记入住退房预定入住修改登记预定登记取消登记图1-1总体功能图1.2开发及运行环境1.2.1硬件平台CPU:Pentium42.0GHz以上内存:512MB以上容量显卡:32MB或以上显存之AGP接口显卡1.2.2软件要求操作系统:MicrosoftWindows7运行环境:Tomcat/jdk1.6开发工具:MyEclipse2.系统设计2.1网站设计2.1.1网站的设计目标本购物系统由于需要演示程序,故为了演示方便,采用JSP+MySql数据库的架构实现的,此系统分为前台管理和后台管理。前台管理是友好的操作界面,供用户浏览、查询使用。包括:查询客房信息,客户信息,客房状态等功能;后台提供给管理员的,其中包括:添加,删除客户信息,管理员登陆,管理员添加,删除,房间信息的添加,删除等。2.1.2网站的深入调查经过以上的初步调查和研究,并且确定了该平台的可行性,并决定开发本平台,为了能够对现行的平台内容进行充分了解,使所要开发的平台更具有实用性和适应性,通过两个月的实习调查和指导老师的耐心介绍,设计出该平台功能如下:1.能够完成客户信息管理:包括对入住客户的客房消费,入住等各种信息的管理。2.能够完成酒店客房管理:包括对客房已住客房和未住客房的安排、客房使用率、不同消费群体对各种客房的需求分析统计等。3.能够完成入住管理,预定管理,退房管理。4.各种信息查询:能够方便地查询客房及旅客的各种最新信息等。2.1.3网站设计的特点我所设计和开发的网上购物平台是经过很长时间的调查和分析才开始具体实施的,它的主要特点是改变了以往的购物只能过现实的商场才能达到的结果,采用Web技术,借助于Internet互联网广泛应用技术,科技化,规范化的管理酒店客房,提高工作效率,具有较好的交互性,从而实现信息化,规范化,系统化,网络化的平台。2.1.4网站开发的设计思想酒店客房管理主要是对后台管理和前台操作。后台管理是管理员对本网站的维护,通过客户信息管理,包括对入住客户的客房消费,入住等各种信息的管理。酒店客房管理,包括对客房已住客房和未住客房的安排、客房使用率、不同消费群体对各种客房的需求分析统计等。能够完成入住管理,预定管理,退房管理。各种信息查询:能够方便地查询客房及旅客的各种最新信息等。酒店客房管理的特点是客户和消费信息量很大,管理员需要整理的信息很多,为让管理员轻松、方便、快捷的管理。2.2模块设计根据需求分析以及功能需求,我们得出我们的购物网站的总体框架以及程序的实际运用流程.2.2.1基于MVC的应用开发模型在传统的基于Web的应用系统中,例如ASP,CGI等,通常开发者将业务逻辑,数据逻辑、展示逻辑等混杂在一起,在同一个界面面里既进行后台数据库的访问和操作,同时还包含业务流程和页面表示。这样编写出来的程序,既不利于程序员对业务代码的调试,同时也不利于编辑人员进行交互页面的设计。同时系统也不具备可扩展性,当我们要在现有业务上进行扩展的时候,通常无法借助于现有的资源和应用,而只能够重新编写,大大增加了投资,延长了系统上线的时间,失去了竞争市场的优势。在本酒店客房管理管理系统中,将采用通行的MVC中的Struts模式来构建应用。这种模式有功能齐全的标签库及开发源代码等优点,但是在测试过程中还有许多的困难,因此,Struts2应运诞生。它是基于WebWork,经过多年的独立运行后,WebWork和Struts两个技术相结合创建了Struts2。主要核心的类库有:Client:客户端浏览器。HTML/JSP:前端视图层(View),用于发起用户请求request和显示服务器端响应response。符合JSP2.0、Servlet

2.4、JSTL

1.0标准。

Action

Control:struts控制器,通过配置xml文件初始化容器。符合JSP2.0、Servlet

2.4、JSTL

1.0标准,ServiceAction:业务流程模型(主要支持业务流转以及办理流程)。DAO:数据访问对象,Hibernate提供整个项目的数据访问接口。Database数据库服务器。如图:图2-12.3程序设计2.3.1系统流程分析2.3.1.1用户登陆在本次系统中,用户登陆模块与普通应用系统的用户登陆是基本相同的。因此当一个用户登陆管理系统之后,管理员的操作流程如2-2所示。登陆界面登陆界面输入用户名和密码输入用户名和密码查询成功 否查询成功是登陆管理界面登陆管理界面图2-2用户登陆流程图2.3.1.2客户预定预定模块有三个子功能实现:预定登记,修改登记和取消登记;各子模块实现如下:在本系统中,预定系统模块主要实现对酒店预定添加,修改,取消的管理,关系如下列图。添加是为预定客户保留预定信息,流程如图2-3所示:点击点击“添加”按钮是否有空房是否有空房显示空列表否显示空列表 是 显示空房列表显示空房列表选择房间选择房间 弹出预定客户客户信息表弹出预定客户客户信息表输入客户信息,点击确定输入客户信息,点击确定提示操作成功提示操作成功图2-3“添加”流程2.3.1.3查询在本系统中,查询系统模块主要实现对酒店房间状态查询,客户查询和所有客户信息查询的管理,查询设计主要包括:房间入住情况查询,客户查询和显示所有客户;关系如下列图。查询房间状态能更好的了解酒店入住情况,为客户修改房间号提供依据,流程如下:点击“房间状态显示点击“房间状态显示”显示所有房间入住情况图2-4“房间状态”查询流程2.3.1.4入住在本系统中,入住系统模块主要实现对预定客户入住和散客登记入住的管理,关系如下列图。预定入住是为预定客户提供入住手续的模块,为预定客户提供方便,其流程图如下:点击“点击“预定入住” 显示空列表是否有预定客户 否显示空列表是否有预定客户 是 显示所有预定客户信息显示所有预定客户信息选择预定入住客户,点击选择预定入住客户,点击“入住”提示操作成功提示操作成功图2-5“预定入住”流程2.3.1.5退房在本系统中,退房模块主要实现对入住客户退房的管理,关系如下列图。点击点击“退房”输入房间号,点击确定输入房间号,点击确定是否有入住 是否有入住不存在 否 否不存在 是 显示客户信息及消费情况显示客户信息及消费情况 提示操作成功提示操作成功结账,点击“结账,点击“退房”图2-6“退房”操作流程3.系统实现3.1用户登录模块实现登陆模块主要思想为:当输入用户名和密码提交后到logincheck控制模块进行处理,当输入正确时转到jiemian.jsp;否则回到login.jsp页面重新输入,同时提醒登陆错误。Logincheck代码如下:request.setCharacterEncoding("utf-8"); Stringusername=request.getParameter("username"); Stringpassword=request.getParameter("password"); DataSourceds=null; Stringmessage=null; Contextcontext; try{ context=newInitialContext(); ds=(DataSource)context.lookup("java:/comp/env/jdbc/mysqlds"); }catch(NamingExceptione){ e.printStackTrace(); System.out.println("获取数据源错误!"); } 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").forward(request,response); } }catch(SQLExceptione){e.printStackTrace();}}登录界面效果如图3-1所示:图3-1系统登陆界面截图3.2客户预订模块实现预定登记设计思想:当登记时首先经过getallroom控制块处理,获得还有的空房在roomseachnull.jsp界面显示,然后选择预定的房间进行预定,接着转到addclient.jsp进行客户信息填写,最后经过insertroom到数据库添加。getallroom代码实现如下:request.setCharacterEncoding("utf-8"); 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";} QueryRunnerrun=newQueryRunner(ds); Listlist=(List)run.query(sql,newBeanListHandler( room.class));request.setAttribute("list",list);if(i==1){request.getRequestDispatcher("/main/roomseach.jsp").forward(request, response);}else{request.setAttribute("yuding",yuding);request.getRequestDispatcher("/main/roomseachnull.jsp").forward(request, response);} }catch(SQLExceptione){ e.printStackTrace(); }}预定界面效果如图3-2所示图3-2预登记模块界面截图选择预定房间,点击“预定”后;预定客户信息表设计界面如图3-3所示图3-3预定客户信息表界面3.3查询模块实现房间查询的思想为:先到getallroom控制块对条件进行处理,将满足条件的房间号的数组放到room.Class中,再到Roomseach.Jsp页面将数组显示出来。getallroom代码实现如下:try{ sql="selectroomno,statue,startdate,enddatefromroom"; QueryRunnerrun=newQueryRunner(ds);Listlist=(List)run.query(sql,newBeanListHandler(room.class));request.setAttribute("list",list);request.getRequestDispatcher("/main/roomseach.jsp").forward(request,response);}catch(SQLExceptione){e.printStackTrace();} 客户查询为其他人员查找客户提供方便快捷的功能,提高效率,其流程图如下:点击点击“客户查询”输入身份证号输入身份证号 是否存在 是否存在显示空列表 否显示空列表是显示客户信息显示客户信息图3-4“客户”查询流程设计思想与gatallroom基本相同。 显示所有客户信息是客户查询的进一步扩展,可以查看所有的客户,并提供修改的功能,其流程图如下:点击点击“显示所有客户信息”显示所有客户的信息列表图3-5“显示所有客户”流程查询界面效果如图3-6所示图3-6查询模块界面截图“显示所有客户”界面效果如图3-7示图3-7“显示所有客户”查询界面截图3.4入住模块实现预定入住设计思想为:首先到getclient控制块中查询已经预定的客户信息,到Yudingruzu.Jsp页面显示出来,然后选择客户进行入住。getclient代码实现如下:try{Stringsql="selectclientname,sex,shenfenzheng,roomnumberfromclientwhereyuding='1'";QueryRunnerrun=newQueryRunner(ds);Listlist=(List)run.query(sql,newBeanListHandler(dbcommen.class));request.setAttribute("list",list);request.getRequestDispatcher("/main/yudingruzhu.jsp").forward(request,response);}catch(SQLExceptione){e.printStackTrace();}登记入住是为散客提供入住的操作,其流程如图3-8所示:点击点击“登记入住”是否有空房是否有空房显示空列表 否显示空列表显示“空房信息列表显示“空房信息列表”选择房间,点击选择房间,点击“入住”填写客户信息,点击“填写客户信息,点击“确定”提示操作成功 提示操作成功图3-8“登记入住”流程预订入住界面效果如图3-9所示图3-9“预定入住”模块界面截图3.5退房模块实现客户退房模块设计是:输入房间号后查询客户信息及消费情况;在输出之前首先要预先查询房间号是否有人入住,再修改数据库信息,最后显示客户的信息及消费情况。退房设计思想为:当输入房间号后到trueroom2控制块中查询该房间是否已经入住,到满足条件时,到insertroom对数据库插入退房时间,然后再到getall控制块查询:客户信息,房间入住,退房时间以及客户消费信息。最后到all.Jsp页面显示所有信息。然后结账,退房。trueroom2预先查询代码如下:request.setCharacterEncoding("utf-8"); Stringroomno=request.getParameter("roomno");Stringleixing=request.getParameter("leixing");try{ Stringsql="select*fromroomwherestatue=?androomno=?"; QueryRunnerrun=newQueryRunner(ds); Stringstr[]={leixing,roomno}; Listlist=(List)run.query(sql,str,newBeanListHandler( room.class));ServletContextapplication1=getServletContext(); application1.setAttribute("roomno",roomno); application1.setAttribute("leixing",leixing); RequestDispatcherrs=request.getRequestDispatcher("/servlet/insertroom"); try{rs.forward(request,response);return; }catch(Exceptione){}} }catch(SQLExceptione){e.printStackTrace();}Insertroom的实现如下:request.setCharacterEncoding("utf-8"); ServletContextapplication=getServletContext(); Stringleixing=(String)application.getAttribute("leixing"); Stringroomno=(String)application.getAttribute("roomno"); System.out.println(roomno); System.out.println(leixing);inti=Integer.parseInt(leixing); intresult=0; Stringmessage=null; Stringsql=null; try{ switch(i){ case0:sql="updateroomsetstatue=1whereroomno=?";break; case1:sql="updateroomsetstatue=2,startdate=now()whereroomno=?";break; case2:sql="updateroomsetenddate=now()whereroomno=?";break; } Stringsr[]={roomno}; QueryRunnerrun=newQueryRunner(ds); 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",roomno); RequestDispatcherrs=request.getRequestDispatcher("/servlet/seachall"); try{ rs.forward(request,response); return; }catch(Exceptione){ }} else{if(result==1){ message="操作成功!"; }else{ message="操作失败!"; } request.setAttribute("message",message); request.getRequestDispatcher("/addResult.jsp").forward(request, response);} }catch(SQLExceptione){ e.printStackTrace(); } }Seachall的实现如下:request.setCharacterEncoding("utf-8"); ServletContextapplication=getServletContext(); Stringroomno=(String)application.getAttribute("roomno"); Stringconsumerno="123456"; DataSourceds=null; Stringsql=null; try{sql="selectclientname,sex,shenfenzhengfromclientwhereyuding=2androomnumber=?"; QueryRunnerrun=newQueryRunner(ds); Stringstr[]={roomno}; Listlist=(List)run.query(sql,str,newBeanListHandler( dbcommen.class)); dbcommenbl=(dbcommen)list.get(0); request.setAttribute("bl",bl); sql="selectroomno,startdate,enddate,timestampdiff(day,startdate,enddate)asdayfromroomwherestatue=2androomno=?";Listlist1=(List)run.query(sql,str,newBeanListHandler(room.class)); roomroom1=(room)list1.get(0); request.setAttribute("room1",room1); sql="select*fromconsumerwhereconsumerno=?"; Stringstr1[]={consumerno};Listlist2=(List)run.query(sql,str1,newBeanListHandler(consumer.class));consumercm=(consumer)list2.get(0);request.setAttribute("cm",cm); if(list.isEmpty()||list1.isEmpty()||list2.isEmpty()){System.out.println("读取失败!");}else{ request.getRequestDispatcher("/seachall.jsp").forward(request, response);} }catch(SQLExceptione){e.printStackTrace();}}退房界面效果如图3-10所示输入房间号:302后:图3-104.总结

通过一段时间的设计与编写,酒店客房管理系统终于有了一个比较完整的框架,现在就这段时间的努力做出以下总结:从设计这个系统的过程中,我

温馨提示

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

评论

0/150

提交评论