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