1、北华大学 题目: 酒店客房管理系统院 系: 计算机学院 专业班级:网络12-2 学生姓名: 李冬冬(11) 张轶(36) 指引教师: 张淑英 年 12月 18 日 目录前言1第一章 系统概论21.1开发背景21.2开发目21.3系统概述21.4系统功能2第二章 系统可行性研究42.1可行性分析42.1.1操作可行性42.1.2经济可行性42.1.3社会因素方面可行性42.2技术可行性分析4第三章 系统需求分析73.1 需求分析73.2功能模块设计73.3业务流程图83.4数据流图构造93.4.1数据流图93.4.2数据流定义93.5开发及运营环境103.5.1网站开发环境103.5.2服务器端
2、103.5.3客户端10第四章 系统设计114.1数据库设计114.2概念构造设计114.3数据库关系图124.4数据库实现13第五章 系统功能实现155.1系统首页155.2顾客注册与登录155.3客房浏览与查询165.4订单管理175.5顾客点评185.6酒店信息动态展示18课程设计总结20参照文献21附件221、数据库连接代码222、客房查询代码22前言 当代化酒店组织庞大、客流量多、信息海量,要想提高劳动生产、减少成本、提高服务质量和管理水平,进而增进经济效益,必要借助计算机来进行当代化信息管理,酒店客房管理系统由此应运而生。本系统中采用 Java 开发,使用SQL Server数据库
3、。继承 Java “Write Once,Run Anywhere”长处,可以在任何一种系统下运营。该系统采用Jsp 应用开发技术,可实现一种动态、交互式、具备在线查询和订房应用系统。它以便、快捷,易与客户交流,宣传最新服务消息,并可广泛接受客户留言建议,积极改正,有利提高。核心词:酒店客房管理系统、Java、Microsoft SQL Server、JSP 第一章 系统概论1.1开发背景信息时代今天,宾馆、酒店业特色经营和个性化管理日趋明显,管理趋于信息化、网络化,再加上国际、国内名优公司扩展力度加大,宾馆、酒店业集团化步伐加快,预示着老式宾馆、酒店正逐渐向当代宾馆、酒店业方向转化。借助计算
4、机网络开发信息化管理系统已成为生存下去必然需求。1.2开发目网络信息化管理系统具备信息量大、数据精确、速度快、管理全面等特点。它可以满足客户通过网络服务足不出户实现客房查询、预订等一系列活动,并且实现随时随处快捷订房,符合当代迅速生活。与此同步,通过计算机网络对宾馆、酒店业进行管理,可以克服人为管理中人为因素给公司管理带来诸多不便,大大提高宾馆、酒店工作效率,为公司创造了更大利润。1.3系统概述本系统使用功能强大Eclipse作为开发工具,对整个系统进行设计与开发。本系统可以依照各应用品体状况,恰当加以修改,以便更好应用。此外,本系统还设计了详细查询功能,以供管理人员迅速掌握酒店各项业务及有关
5、信息。在数据库设计阶段使用了Microsoft SQL Server 软件,同步简介了数据库有关知识,对数据库进行数据库需求分析和数据库构造设计。分析在数据库中要建立多少存储信息表,又列出各表构造,分析表中字段之间。1.4系统功能(1)顾客注册和登录:顾客在订房之前要进行注册顾客信息,并登录酒店管理系统。(2)酒店服务信息浏览:顾客打开系统后,可以在首页浏览酒店各个服务信息,及时理解各种有用信息。(3)客房浏览:顾客可以在未登录系统状况下浏览该酒店所有客房信息,并可按条件查找符合自己规定客房。(4)客房预订:顾客在查找到心仪客房后,登录酒店客房管理系统可提交订单实现客房预订。(5)顾客留言:顾
6、客登录系统后,可以再留言栏中留下自己意见或建议。第二章 系统可行性研究2.1可行性分析2.1.1操作可行性系统运营良好,操作以便。顾客只需获取酒店客房管理系统网址即可,不需掌握复杂有关知识。2.1.2经济可行性系统开发所需人力、资源都可直接获取,开销基本为零。因此,从经济角度来看,该系统可行。2.1.3社会因素方面可行性(1)法律方面可行性:本系统开发不会涉及侵犯版权、专利权等侵权行为。(2)使用方面可行性:使用本系统只需简朴地计算机操作,在使用方面顾客不会有任何问题。2.2技术可行性分析本系统使用Eclipse作为开发工具,对整个系统进行设计与开发。本系统可以依照各应用品体状况,恰当加以修改
7、,以便更好应用。在数据库设计阶段使用了Microsoft SQL Server 软件,详细呈现了各个表设计与构造。此外,本系统还设计了详细查询功能,以供管理人员迅速掌握酒店各项业务及有关信息。1、 Eclipse简介Eclipse 是一种开放源代码、基于Java可扩展开发平台。就其自身而言,它只是一种框架和一组服务,用于通过插件组件构建开发环境。幸运是,Eclipse 附带了一种原则插件集,涉及Java开发工具(Java Development Kit,JDK)。对于编码、调试、重 构、单元测试等等, Eclipse 可以与任何一种 IDE 匹敌,甚至比它们还要好。与免费 JBuilder X
8、 Foundation 版本类似, Eclipse 也有代码补足、代码模板功能,以及对重构、Ant、CVS 和 JUnit 支持。事实上,Eclipse 对诸多特性支持都比 JBuilder 更好。例如, Eclipse 具备更多重构功能,可以更好地支持将本地代码与 CVS 服务器进行合并。 Eclipse源代码是开放,可扩展性较好,可以扩充诸多插件,开源插件和商业插件都可以用来扩充 Eclipse。如果需要基本 Eclipse IDE 所不具备特性,普通都可以找到需要插件。大某些状况下,都可以找到免费插件,至少可以完全实现所需功能 - 例如,对于 Web 和 J2EE 开发,普通都能找到这种
9、插件。总来说Eclipse长处诸多,最突出莫过于如下四大长处:(1)从编写、查错、编译、协助等等各方面为Java语言贴身定做;(2)可无限扩展强大插件功能;(3)众多公司、厂商、组织鼎立支持;(4)开放,自由,免费。2、 SQL Server 简介 Microsoft SQL Server 最早是由关系数据库Sybase演变而来。1988年由Sybase,Microsoft,Ashton-Tate三家公司共同开发了OS/2版本,日后又应用于Windows NT操作系统中。下面简介一下Microsoft SQL server新特点:(1)简朴图形化管理工具Microsoft SQL server
10、公司管理器是一种基于图形顾客界面继承管理工具,运用它可以配备管理Microsoft SQL server服务器,管理数据库和数据库对象,备份和恢复数据,调度任务和管理警报,实现数据复制和数据转换等。(2)隐含并发控制能力Microsoft SQL server运用动态锁定功能防止顾客在查询和更新并发操作时互相间发生冲突,动态锁定是隐含,顾客不必关怀缩定过程。(3)丰富编程接口工具Microsoft SQL Server 提供了丰富编程接口工具,为顾客进行程序设计提供了更大选取余地。此外,它还支持ODBC和OLE DB规范,可以使用ODBC和OLE DB接口函数访问Microsoft SQL S
11、erver 数据库。(4)多线程体系构造Microsoft SQL Server 支持多线程操作,在多顾客并发访问时,系统在产生较小额外承担状况下,可以进行并发解决,从而减小内存需求,提高系统吞吐量,在顾客数量增长时,SQL Server 运营速度也不会明显减慢。(5)具备较好伸缩性Microsoft SQL Server 既能运营在Windows 操作系统下,又可以运营在Windows NT,Workstation,Windows NT Server等操作系统下,并且运用了NT许多功能,如发送和接受消息,管理登录安全性等。基于Microsoft SQL Server 以上5个特点,咱们选取了
12、它为网站搭建数据库,使网站可以更快更好完毕数据库操作。 因此说,选取Eclipse和Microsoft SQL Server 作为系统开发工具是再适当但是。通过上述各个方面分析和考虑,本人最后以为该系统可以开发和使用。第三章 系统需求分析3.1 需求分析需求分析阶段是酒店客房管理系统开发最重要阶段。开发者一方面要理解和澄清顾客需求,然后严格地定义该系统需求规格阐明书。如下进行详细阐明:(1) 需求分析是从客户需求中提取出软件系统可以协助顾客解决业务问题,通过对顾客业务问题分析,规划出系统功能模块,即定义用例。这个环节是对理解需求升华,直接关系到该系统质量。(2) 通过开发者同客户需求分析后,拟
13、定酒店客房管理系统功能模块(用例)涉及: 顾客注册与登录 客房信息展示 客房预定 订单管理 客户点评酒店客房管理系统采用Web方式,能将系统各个功能提供应顾客,以协助顾客进行客房管理。为了保证客户和酒店信息具备更好安全性,系统除基本浏览功能外,顾客必要通过注册自己基本信息,登录系统,才可进行预订和点评。所有客户信息由后台数据库保存,不对外开放,安全可靠。 本系统重要由数据库系统作为支持,后台管理维护工作重要由系统管理员进行,涉及完毕对各个数据表单维护、数据库备份及恢复等工作,本实例咱们选用数据库系统为Microsoft SQL Server 。3.2功能模块设计本系统是依照酒店寻常管理需求进行
14、开发设计,重要实现如下目的。 顾客注册与登录 (36) 客房信息展示 (36) 客房预定 (36) 订单管理 (11) 客户点评 (11)其功能模块图如下图3.1所示:图3.1 功能模块图3.3业务流程图退订预定业务流程图如下图3.2所示:图3.2 退订预定业务流程图 入住业务流程图如下图3.3所示:图3.3 入住业务流程图3.4数据流图构造数据流图是构造化分析办法中使用工具,它以图形方式描绘数据在系统中流动和解决过程,由于它只反映系统必要完毕逻辑功能,因此它是一种功能模型。在构造化开发办法中,数据流图是需求分析阶段产生成果。3.4.1数据流图图3.4 酒店客服管理系统第一层数据流图图3.5
15、合法检查二层数据流图 3.4.2数据流定义1、酒店客房管理系统数据流:数据流编号:D1数据流名称:登录信息数据流来源:顾客数据流去向:管理系统数据流编号:D2数据流名称:顾客名数据流来源:顾客数据流去向:管理系统数据流编号:D3数据流名称:权限数据流来源:系统顾客表数据流去向:管理系统数据流编号:D4 数据流名称:祈求数据流来源:管理系统数据流去向:系统顾客表2、数据存储描述 数据存储编号:F1 数据存储名称:系统顾客表 简述:记录顾客信息。3.5开发及运营环境3.5.1网站开发环境网站开发环境:MyEclipse 8.5集成开发环境。网站开发语言:JSP+JAVA。网站后台数据库:Micro
16、soft SQL Server 。开发环境运营平台:Windows XP(SP2)/Windows (SP4)/Windows Server (SP1)。3.5.2服务器端操作系统:Windows 7。Web服务器:Internet 信息服务(IIS)管理器。数据库服务器:Microsoft SQL Server 。浏览器:IE 7.0。3.5.3客户端浏览器:IE 7.0。辨别率:最佳效果1024768像素。第四章 系统设计4.1数据库设计 本系统数据库采用Microsoft SQL Server 数据库,系统数据库中包括7张数据表。数据库连接代码如下:/import java.sql.*;
17、Class.forName(org.postgresql.Driver).newInstance();String url =jdbc:postgresql:/localhost/Hotel / Hotel为数据库名 String user=myuser;String password=mypassword;Connection conn= DriverManager.getConnection(url,user,password);Statement stmtNew=conn.createStatement();4.2概念构造设计数据库概念构造E-R图如下图4.1所示:图4.1 E-R图4.
18、3数据库关系图 roomtype和room之间数据库关系图如下图4.2所示:图4.2 roomtype和room之间数据库关系图tuser、orders和room之间数据库关系图如下图4.3所示:图4.3 tuser、orders和room之间数据库关系图4.4数据库实现 下面分别给出重要数据表构造。为使读者对本系统后台数据库中数据表有一种更清晰结识,如下。1、 顾客信息表(tuser)用来保存注册顾客信息,分别有顾客编号(id)、顾客名(username)、顾客密码(pwd)、性别(sex)、手机号码(phone)、证件名(cardtype_id)、证件号(idnum)。详细状况如下图4.4
19、所示。图4.4顾客信息表(tuser)2、 证件种类表(cardtype)用来保存证件信息,分别有证件号(id)、证件名(cardname)。详细状况如下图4.5所示。图4.5证件种类表(cardtype)3、 房间信息表(room)用来保存客房信息,分别有客房编号(id)、客房号(roomno)、客房图像(picture)、客房类型号(roomtype_id)、客房住宿单价(price)、客房满客状态(state)。详细状况如下图4.6所示。图4.6房间信息表(room)4、 房间种类表(roomtype)用来存储客房不同种类,由种类编号(id)、种类名(typename)。详细状况如下图4
20、.7所示。图4.7房间种类表(roomtype)5、 订单表(orders)用来保存订单信息,分别有订单编号(id)、顾客编号(user_id)、房间编号(room_id)、入住日期(checkindate)、退房日期(checkoutdate)、订房数量(number),详细状况如下图4.8所示。图4.8订单表(orders)6、 顾客点评表(comments)用来存储顾客点评基本信息,分别有点评信息编号(id)、顾客编号(user_id)、点评内容(contents)、点评时间(date),详细状况如下图4.9所示。 图4.9顾客点评表(comments)7、 酒店动态表(news)用来保
21、存酒店动态信息,分别有动态编号(id)、动态标题(title)、动态内容(text)、动态提交者(author)、动态提交时间(date),详细状况如下图4.10所示。 图4.10酒店动态表(news)第五章 系统功能实现5.1系统首页 本系统只要涉及五大模块:顾客注册与登录、客房浏览与查询、订单管理、顾客点评和酒店动态。各大模块均有各自相应网页,其图形优美,内容详细,各个网页跳转流畅。其网站首页如下图5.1所示:图5.1 网站首页5.2顾客注册与登录 在网站首页左上角是系统登录区域。在IE浏览器中进入网站后,需要顾客登录才干进行相应操作,而初次进入顾客要进行注册工作,注册登陆成功后,在登录区
22、域会浮现如下图5.2所示状况:图5.2 登陆成功 登录成功之后,点击个人中心弹出顾客信息,如下图5.3所示:图5.3 顾客信息 点击顾客信息右上角“编辑”区,则可以对顾客信息做出修改,如下图5.4所示:图5.4 顾客信息修改界面5.3客房浏览与查询 如在首页界面中显示所示,第二个菜单就是“客房查询”,点击该菜单系统会跳转到客房查询界面,如图5.5所示。在该界面中可以查看各个房间基本信息,也可以依照检索条件进行检索查询,检索条件有:客房类型和客房价格。图5.5 客房查询界面5.4订单管理 在查询可房后,可进行订房操作,提交订单后,在订单管理界面中可看到订单信息,如图5.6所示:图5.6 订单管理
23、界面5.5顾客点评 在顾客查看客房信息或入住使用客房之后,可对酒店客房及酒店服务进行点评,详细操作可在“我要点评”这个界面中进行,详细状况如下图5.7所示。但是在顾客进行点评之前,必要进行登录,登陆成功之后方可点评。图5.7 顾客点评界面5.6酒店信息动态展示 在系统首页右下角会及时更新酒店最新信息,其信息由数据库中直接导出,由后台管理人员编辑,点击“酒店动态”(其首页中位置如图5.8所示),可详细查看酒店动态信息,及时理解酒店最新消息,详细如图5.9所示:图5.8 “酒店动态”位置显示图图5.9 酒店动态信息界面课程设计总结通过一段时间设计与编写,咱们小组酒店客房管理系统终于有了一种比较完整
24、框架,当前就这段时间努力做出如下总结:从设计这个系统过程中,咱们感受到了关于软件工程、数据库设计、商业管理等各方面知识在实际工作中应用。在开发该系统过程中,咱们始终坚持如下四项原则,并朝相应目的靠拢。 1、实用为主 任何系统都应当以顾客需求为最后目的,以以便顾客为最高原则,同进要融入先进管理经验与技巧,力求满足当前及将来各种需求,真正为管理及决策提供强有力支持。 2、稳定可靠 无论在软件设计还是硬件制造中,稳定都是压倒一切。本管理系统通过选用先进开发软件和成熟网络构造及安全可靠数据库,再配合硬件优化选型,从而保证系统可靠性与容错性。 3、先进灵活 系统充分应用既有成熟网络技术,软件开发技术,先
25、进客户/服务器结构及高性能数据库,满足大型客户寻常运营、开展电子商务等需要。同步顾客可自行灵活设立参数和各种代码,适应自己特殊需要。 4、维护扩展以便本系统所有设计要遵循国际上现行原则进行,以提高系统开放性,以便后来业务扩展和系统扩容,便于软、硬件维护、升级等,使系统能适应公司将来需要。在这次课程设计中不但检查了我所学习知识,也培养了我如何去把握一件事情,如何去做一件事情,又如何完毕一件事情。 在设计过程中,与同窗分工设计,和同窗们互相探讨,互相学习,互相监督。学会了合伙,学会了运筹帷幄,学会了宽容,学会了理解,也学会了做人与处世。课程设计能体现出自己单独设计模具能力以及综合运用知识能力,体会
26、了学以致用、突出自己劳动成果喜悦心情,从中发现自己平时学习局限性和薄弱环节,从而加以弥补。参照文献1 张海藩 牟永敏,软件工程导论(第6版)M,北京:清华大学出版社,2 张建华,管理信息系统M,北京:中华人民共和国电力出版社,3 李兴华 王月清,Java Web 开发实战典型基本篇M,北京:清华大学出版社,4 周亚辉,Java数据库系统项目开发实践M,北京:科学出版社,5 王能斌,数据库系统教程(第2版)(上册)M,北京:电子工业出版社,6刘晓华,张健,周慧贞.JSP应用开发详解(第三版)M,北京:电子工业出版社,附件1、数据库连接代码package mon;import java.sql.C
27、onnection;import java.sql.SQLException;import javax.sql.DataSource;import com.mchange.v2.c3p0.ComboPooledDataSource;/* * 工具类, 提供数据库连接池和数据库连接 * author Administrator * */public class JDBCUtils private static DataSource dataSource = new ComboPooledDataSource();public static DataSource getDataSource() r
28、eturn dataSource;/* * 当DBUtils需要手动控制事务时,调用该办法获得一种连接 * return * throws SQLException */public static Connection getConnection() throws SQLException return dataSource.getConnection();2、客房查询代码package edu.jcut.mis.servlet;import java.io.IOException;import java.sql.SQLException;import javax.servlet.Servle
29、tException;import javax.servlet.annotation.WebServlet;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import edu.jcut.mis.model.PageData;import edu.jcut.mis.model.Room;import edu.jcut.mis.service.RoomService;/* * Servle
30、t implementation class SearchRoomServlet */WebServlet(/SearchRoom)public class SearchRoomServlet extends HttpServlet private static final long serialVersionUID = 1L;/* * see HttpServlet#doGet(HttpServletRequest request,HttpServletResponse response) */protected void doGet(HttpServletRequest request,H
31、ttpServletResponse response) throws ServletException,IOException doPost(request,response);/* * see HttpServlet#doPost(HttpServletRequest request,HttpServletResponse response) */protected void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException /获取检索条件参
32、数String roomtype_idStr = request.getParameter(roomtype_id);String priceStr = request.getParameter(price);/获取分页参数String pageNoStr = request.getParameter(pageNo);int roomtype_id = 0;int price = 0;int pageNo = 1;if (roomtype_idStr != null) roomtype_id = Integer.parseInt(roomtype_idStr);if (priceStr !=
33、null) price = Integer.parseInt(priceStr);if (pageNoStr != null) pageNo = Integer.parseInt(pageNoStr);/System.out.println(*+roomtype_id+ +price+ +pageNo);PageData pageData = null;try pageData = service.findByPage(roomtype_id,price,pageNo); catch (SQLException e) e.printStackTrace();/共享roomtype_id和price给前台, 以便回显数据request.setAttribute(roomtype_id,roomtype_id);request.setAttribute(price,price);/共享分页数据给前台request.setAttribute(pageData,pageData);request.getRequestDispatcher(room.jsp).forward(request,response);private RoomService service = new RoomService();