版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、滨江学院数据库原理课程设计题目酒店客房管理系统院系 滨江学院计算机系专业网络工程学生学号指导教师二0一一年六月二十四日目录31.1.31.2.3.32.1.333.1.33.1.1.33.1.2E-R.33.2.33.2.1.444.144.254.364.4.114.5.124.6.12.155.1.15.15一前言1.1选题背景酒店业是一个前景广阔而又竞争激烈的行业。改革开放以来,我国的酒店业迅速发展,已经成为一个具有相当规模的产业。由于我国的旅游业迅速发展,通过调查,我国在2020年将成为世界上第四大旅游国家;同时我国加入世界贸易组织,酒店业将完全开放, 这个时候,我国的酒店业将面临着前
2、所未有的机遇和挑战。但是, 现在甚至还有一些酒店还停留在由人工操作和管理阶段,这样已经无法适应当前的发展趋势。因此,要想使酒店的工作质量和效率提高,采用先进的计算机网络通信技术改变酒店业务模式,实现酒店业务管理的自动化已经成为一种必然。酒店管理系统采用 B/S 结构。按照按国家星级宾馆标准化业务程序流式设计,会采用主流开发工具来开发,搭建比较稳定可靠安全的服务端来辅佐客户管理,并且还采用数据库mysql ,会通过测试用例来达到测试效果,技术支持会采用轻量级框架struts和 hibernate持久化来完成,服务器采用tomcat ,通过 powerdesigner来设计数据模型为最初业务流程的
3、概念设计阶段和详细设计阶段打好基础1。1.2本文的研究容论文设计选题 酒店管理系统 ,主要研究了: 酒店业务的管理 (划分为, 登陆界面部分,查询界面部分,入住界面部分,退房界面部分)。二系统分析2.1需求分析系统需对用户登录进行管理。使用各功能模块时,系统应验证用户身份的有效性,否则要求用户登录。另外,允许用户对自己的密码进行修改。系统应提供客房的分类管理功能,可分类制订客房面积、价格、是否配备空调等客房类型,对不同标准的客房进行有效管理。系统可实现对客房信息的添加、删除以及修改。在进行入住 / 退房管理时, 系统可以根据客房当前的状态自动提示可用服务(入住/退房)。如果客房没有客人入住,则
4、该客房的可用服务为“入住”;否则,可用服务为“退房”。系统的客户端在 Windows 平台下运行,服务器端可在Windows 平台或 UNIX 平台下运行。系统还需要有较好的安全性和可扩展性8。需求分析是从客户的需求中提取出软件系统能够帮助用户解决的业务问题,通过对用户业务问题的分析,规划出系统的功能模块,即定义用例。这个步骤是对理解需求的升华,直接关系到该系统的质量。整个系统可以分为 2 大部分。酒店部分(客户服务)和酒店管理部分(管理员部分)。本系统只做了有关酒店管理的一部分。三 数据库设计3.1数据库概念设计概念结构在需求分析阶段所得到的应用需求应该首先抽象为信息世界的结构,才能更好地、
5、更准确地用某一 DBMS实现这些需求。概念结构主要特点:( 1) 能真是、 充分地反映显示世界,包括事物和事物之间的联系,能满足用户对数据的处理要求,是对现实世界的一个只是模型;(2) 易于理解, 从而可以用它和不熟悉计算机的用户交换意见,用户的积极参与是数据库设计成功的关键。( 3) 易于更改,当应用环境和应用要求改变时,容易对概念模型修改和扩充;( 4)易于向关系、网状、层次等各种数据模型转换;概念结构时各种数据模型的共同基础, 它比数据模型更独立于机器、 更抽象,从而更加稳定。 酒店管理系统系统 E-R 图3.2数据库逻辑结构设计酒店管理系统逻辑结构设计有了基本的E-R 模型就可以进行逻
6、辑结构设计,也就是设计基本的关系模式。设计基本的关系模式主要从E-R 模型出发, 将其直接转换为关系模式。根据转换规则, 这个 E-R 转换的关系模式为:( 1)用户 ( 用户序号,用户名,餐台号,菜品编号,消费单编号), 主码为用户序号。( 2)消费单 ( 消费单编号,所属餐台号,时间,消费额,操作用户,餐台编号,菜品编号,用户序号 ) ,主码为消费单编号。(3) 菜品 ( 菜品编号,所属菜系,名称,祝记码,单位,单价,菜品状态,消费单编号,用户序号,菜系序号 ) ,主码为菜品编号。(4) 菜系 ( 菜系序号,名称,菜品编号 ) ,主码为菜系序号。(5)餐台 ( 餐台编号,人数,消费单编号,
7、用户序号,菜品编号) ,主码为餐台编号。现在分析一下这些关系模式。由于在设计关系模式时是以现实存在的实体为依据,而且遵守一个基本表只描述现实世界的一个主题的原则,每个关系模式中的每个非主码属性都完全由主码唯一确定,因此上述所有这些关系模式都是第三式的关系模式。四 详细设计4.1数据库设计与实现数据库通用类由DAO部分来实现,它是应用程序通过数据池访问数据的基础类,也是应用程序实现上层业务逻辑的基础。该类主要封装了创建访问数据库的一些对象或方法,如数据库连接对象等, 以及执行数据库操作的对象或方法。数据库连接是连接数据库的必要对象,在该类定义了连接对象CON,该对象在整个类中都可以使用。数据库连
8、接代码实现如下:DataSource ds = null;Context context;try context = new InitialContext();ds = (DataSource) context.lookup("java:/comp/env/jdbc/mysqlds"); catch (NamingException e) e.printStackTrace();获取数据源错误!");4.2用户登陆在本次系统中,用户登陆模块与普通应用系统的用户登陆是基本相同的。因此当一个用户登陆管理系统之后,管理员的操作流程如以下图所示。图4-1管理员登陆操作流程
9、登陆模块主要思想为:当输入用户名和密码提交后到输入正确时转到jiemian.jsp;否则回到login.jspLogincheck代码如下:logincheck 控制模块进行处理,当页面重新输入,同时提醒登陆错误。request.setCharacterEncoding("utf-8");String username=request.getParameter("username");String password=request.getParameter("password");DataSource ds = null;String
10、 message=null;Context context;try context = new InitialContext();ds = (DataSource) context.lookup("java:/comp/env/jdbc/mysqlds"); catch (NamingException e) e.printStackTrace();获取数据源错误!");try String sql = "select username,password from user where username=? and password=?"Que
11、ryRunner run = new QueryRunner(ds);String str=username,password;List list = (List) run.query(sql,str, new BeanListHandler(room.class); if(list.isEmpty()message="登陆失败!请重新输入"request.setAttribute("message",message);request.getRequestDispatcher("/login.jsp").forward(request
12、,response);elserequest.getRequestDispatcher("/jiemian.jsp").forward(request,response); catch (SQLException e) e.printStackTrace();4.3客户预定模块预定模块有三个子功能实现:预定登记,修改登记和取消登记;各子模块实现如下:在本系统中,预定系统模块主要实现对酒店预定添加,修改,取消的管理,关系如下列图。添加是为预定客户保留预定信息,流程如下:图4-3“添加”流程预定登记设计思想:当登记时首先经过getallroom控制块处理,获得还有的空房在roo
13、mseachnull.jsp界面显示,然后选择预定的房间进行预定,接着转到addclient.jsp行客户信息填写,最后经过insertroom到数据库添加。getallroom代码实现如下:request.setCharacterEncoding("utf-8");String leixing=request.getParameter("leixing");String yuding=request.getParameter("yuding");int i=Integer.parseInt(leixing);/i!=1;为预定登记操
14、作try if(i=1)进 sql = "select roomno,statue,startdate,enddate from room" elsesql="selectroomno,statue,startdate,enddatefromroomwherestatue=0"QueryRunner run = new QueryRunner(ds);List list = (List) run.query(sql, new BeanListHandler(room.class);request.setAttribute("list"
15、,list);if(i=1)request.getRequestDispatcher("/main/roomseach.jsp").forward(request, response);elserequest.setAttribute("yuding",yuding); request.getRequestDispatcher("/main/roomseachnull.jsp").forward(request,response); catch (SQLException e) e.printStackTrace();提交到 inse
16、rtroom对数据库操作:当作,当 leixing=2时是退房操作。leixing=0时是预定操作,leixing=1时是入住操Insertroom代码如下:request.setCharacterEncoding("utf-8");ServletContext application = getServletContext();String leixing = (String) application.getAttribute("leixing");String roomno= (String) application.getAttribute(&qu
17、ot;roomno");int i=Integer.parseInt(leixing);DataSource ds = null;Context context;try context = new InitialContext();ds = (DataSource) context.lookup("java:/comp/env/jdbc/mysqlds");获取数据源错误!");int result = 0;String message = null;String sql=null;tryswitch(i)case0:sql="updatero
18、om set statue=1where roomno=?"break;case1:sql="updateroomsetstatue=2,startdate=now()whereroomno=?"break;case 2:sql="update room set enddate=now() where roomno=?"break;String sr = roomno;QueryRunner run = new QueryRunner(ds);result = run.update(sql, sr);if(i=1)sql="updat
19、e client set yuding=2 where roomnumber=?"QueryRunner run1 = new QueryRunner(ds);run1.update(sql, sr);if(i=2)ServletContext application1 = getServletContext();application1.setAttribute("roomno", roomno);RequestDispatcher rs = request.getRequestDispatcher("/servlet/seachall");
20、try rs.forward(request, response);return; catch (Exception e) elseif (result = 1) message = " else message = "操作失败 !"操作成功!"request.setAttribute("message", message);request.getRequestDispatcher("/addResult.jsp").forward(request,response); catch (SQLException e)
21、 e.printStackTrace();“修改”操作为预定客户提供修改相关信息的功能,流程图如下图 4-6 “修改”流程设计思想:输入号后提交经trueroom查找客户信息,在xiugai.Jsp页面显示客户的信息,修改后提交update 对数据库进行修改.Truroom 代码如下:request.setCharacterEncoding("utf-8");ServletContext application = getServletContext();String leixing= (String) application.getAttribute("leix
22、ing");String roomno = (String) application.getAttribute("roomno");DataSource ds = null;Context context;try context = new InitialContext();ds = (DataSource) context.lookup("java:/comp/env/jdbc/mysqlds"); catch (NamingException e) e.printStackTrace();获取数据源错误!");try String
23、 sql = "select * from room where statue=? and roomno=?" QueryRunner run = new QueryRunner(ds);String str=leixing,roomno;List list=(List) run.query(sql,str,new BeanListHandler(room.class); if(list.isEmpty()request.getRequestDispatcher("/servlet/insertroom").forward(request,respons
24、e);elseServletContext application1= getServletContext();application1.setAttribute("roomno",roomno);application1.setAttribute("leixing",leixing);RequestDispatcherrs=request.getRequestDispatcher("/servlet/insertroom");tryrs.forward(request,response);return;catch (Exceptio
25、n e) catch (SQLException e) e.printStackTrace();“取消”操作为客户提供取消预定的功能,方便客户改变计划,流程图如下:图4-8“取消”流程4.4查询模块在本系统中, 查询系统模块主要实现对酒店房间状态查询,客户查询和所有客户信息查询的管理, 查询设计主要包括:房间入住情况查询,客户查询和显示所有客户;关系如下列图。查询房间状态能更好的了解酒店入住情况,为客户修改房间号提供依据,流程如下:图 4-9 “房间状态”查询流程房间查询的思想为: 先到组放到 room.Class 中,再到getallroom控制块对条件进行处理,Roomseach.Jsp
26、页面将数组显示出来。将满足条件的房间号的数getallroom代码实现如下:try sql = "select roomno,statue,startdate,enddate from room"QueryRunner run = new QueryRunner(ds);List list = (List) run.query(sql, new BeanListHandler(room.class);request.setAttribute("list",list);request.getRequestDispatcher("/main/roo
27、mseach.jsp").forward(request,response);catch (SQLException e) e.printStackTrace();客户查询为其他人员查找客户提供方便快捷的功能,提高效率,其流程图如下:图5-11“客户”查询流程设计思想与gatallroom基本相同,只是SQL语句中的查询表不同。显示所有客户信息是客户查询的进一步扩展,可以查看所有的客户,并提供修改的功能,其流程图如下:图 4-12“显示所有客户”流程设计思想与gatallroom基本相同,只是4.5入住模块SQL语句中的查询表不同。在本系统中, 入住系统模块主要实现对预定客户入住和散
28、客登记入住的管理,图。预定入住是为预定客户提供入住手续的模块,为预定客户提供方便,其流程图如下:关系如下列图 4-14“预定入住”流程预定入住设计思想为:首先到 getclient 控制块中查询已经预定的客户信息,到 Yudingruzu.Jsp 页面显示出来,然后选择客户进行入住。getclient代码实现如下:try String sql="select clientname,sex,shenfenzheng,roomnumber from client whereyuding='1'"QueryRunner run = new QueryRunner(
29、ds);List list = (List) run.query(sql, new BeanListHandler(dbcommen.class);request.setAttribute("list",list);request.getRequestDispatcher("/main/yudingruzhu.jsp").forward(request,response);catch(SQLExceptione) e.printStackTrace();登记入住是为散客提供入住的操作,其流程如下:图 4-16 “登记入住”流程4.6退房模块在本系统中,退
30、房模块主要实现对入住客户退房的管理,关系如下列图。图 4-17 “退房”操作流程客户退房模块设计是:输入房间号后查询客户信息及消费情况;在输出之前首先要预先查询房间号是否有人入住,再修改数据库信息,最后显示客户的信息及消费情况。退房设计思想为: 当输入房间号后到 trueroom2 控制块中查询该房间是否已经入住, 到满足条件时,到 insertroom 对数据库插入退房时间,然后再到 getall 控制块查询:客户信息,房间入住, 退房时间以及客户消费信息。 最后到 all.Jsp 页面显示所有信息。 然后结账, 退房。trueroom2预先查询代码如下:request.setCharact
31、erEncoding("utf-8");String roomno = request.getParameter("roomno");String leixing= request.getParameter("leixing");try String sql = "select * from room where statue=? and roomno=?"QueryRunner run = new QueryRunner(ds);String str = leixing, roomno ;List list =
32、(List)run.query(sql, str, new BeanListHandler(room.class);ServletContext application1 = getServletContext(); application1.setAttribute("roomno", roomno); application1.setAttribute("leixing", leixing);RequestDispatcher rs = request.getRequestDispatcher("/servlet/insertroom&qu
33、ot;);try rs.forward(request, response);return; catch (Exception e) catch (SQLException e) e.printStackTrace(); Insertroom 的实现如下:request.setCharacterEncoding("utf-8");ServletContext application = getServletContext();String leixing = (String) application.getAttribute("leixing");Str
34、ing roomno= (String) application.getAttribute("roomno");int i=Integer.parseInt(leixing);int result = 0;String message = null;String sql=null;try switch(i)case 0:sql="update room set statue=1 where roomno=?"break;case1:sql="updateroomsetstatue=2,startdate=now()whereroomno=?&q
35、uot;break;case 2:sql="update room set enddate=now() where roomno=?"break;String sr = roomno;QueryRunner run = new QueryRunner(ds);result = run.update(sql, sr);if(i=1)sql="update client set yuding=2 where roomnumber=?"QueryRunner run1 = new QueryRunner(ds);run1.update(sql, sr);if(
36、i=2)ServletContext application1 = getServletContext();application1.setAttribute("roomno", roomno);RequestDispatcher rs = request.getRequestDispatcher("/servlet/seachall");try rs.forward(request, response);return; catch (Exception e) elseif (result = 1) message = " 操作成功 !&quo
37、t; else message = " 操作失败 !"request.setAttribute("message", message); request.getRequestDispatcher("/addResult.jsp").forward(request,response); catch (SQLException e) e.printStackTrace();Seachall的实现如下:request.setCharacterEncoding("utf-8");ServletContext applica
38、tion = getServletContext();String roomno = (String) application.getAttribute("roomno");String consumerno = "123456"DataSource ds = null;String sql = null;try sql = "select clientname,sex,shenfenzheng from client where yuding=2 and roomnumber=?"QueryRunner run = new QueryRunner(ds);String str = roomno ;List list = (List) run.query(sql, str, new BeanListHandler(dbcommen.class);dbcommen bl = (dbcommen) list.get(0);request.setAttribute("bl", bl);sql = "select roomno,startdate,enddate,timestampdiff(day,startdate,enddate) as dayfrom room where statu
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年常德市武陵区公开选调公务员16人备考题库带答案详解
- 2026年广州医科大学校本部公开招聘工作人员备考题库及1套完整答案详解
- 2026年宁波公交通成科技有限公司劳务派遣岗的招聘备考题库有答案详解
- 2026年东营市东凯实验学校招聘数学教师备考题库附答案详解
- 2026年上海市医疗保险事业管理中心招聘辅助人员的备考题库及一套参考答案详解
- 2026年山东劳动职业技术学院公开招聘人员8人备考题库附答案详解
- 2026年国家电投集团苏州审计中心选聘备考题库附答案详解
- 2026年上海市新杨中学招聘备考题库及一套完整答案详解
- 2026年太平人寿保险有限公司陕西分公司招聘备考题库及一套答案详解
- 2026年寰宇东方国际集装箱(启东)有限公司招聘备考题库及参考答案详解
- 高标准农田建设培训课件
- 解答题 概率与统计(专项训练12大题型+高分必刷)(原卷版)2026年高考数学一轮复习讲练测
- 2024-2025学年北京市海淀区第二十中学高二上学期期末物理试题(含答案)
- 送你一朵小红花评语
- 2025至2030中国IT培训行业项目调研及市场前景预测评估报告
- 2025年国家开放大学《普通心理学(研究生)》期末考试参考题库及答案解析
- 多联机空调安装施工方案
- 2025秋期版国开河南电大专科《公务员制度讲座》一平台我要考试无纸化考试试题及答案
- 2025年三亚塑料包装材料项目可行性研究报告
- 2025年证券从业资格考试试卷及参考答案
- 2025贵州铜仁市公开招聘专业化管理村党组织书记43人考试参考题库及答案解析
评论
0/150
提交评论