酒店预订系统设计Word格式文档下载.docx
《酒店预订系统设计Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《酒店预订系统设计Word格式文档下载.docx(30页珍藏版)》请在冰豆网上搜索。
![酒店预订系统设计Word格式文档下载.docx](https://file1.bdocx.com/fileroot1/2022-12/11/5f579693-7624-43d6-939f-916e07666031/5f579693-7624-43d6-939f-916e076660311.gif)
JSP;
Mysql;
factorypattern;
1.绪论
1.1本课题研究背景
旅游者对酒店的需求量越来越大,对就酒店的要求也越来越高。
随着社会的进步,经济的发展,当今社会人员流动越来越频繁,酒店管理工作也变得越来越复杂。
人们生活水平和消费意识的提高刺激了旅游业的发展,这无不为酒店行业提供了良好的环境,而酒店规模的扩大要求有一套实用而且方便的系统进行酒店客房的管理。
如何利用现代社会赋予我们的新观念、新手段向管理要效益,为酒店管理注入新的活力,从而在激烈的市场竞争中站稳脚跟,是摆在每个酒店管理人士面前的重要课题。
也正因此,酒店客房管理系统应运而生,可以为酒店行业有效的解决很多实际问题。
作为计算机应用的一部分,使用计算机对酒店信息进行管理,具有着手工管理所无法比拟的优点.例如:
检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。
这些优点能够极大地提高客房管理的效率,也是酒店的科学化、正规化管理的重要条件。
1.2国内外现状分析
在酒店在线预订方式上,美国有70%的网民会通过互联网在线预订的方式进行酒店预订,但在中国,这个比例仅为5%,市场发展的潜力巨大。
随着中国使用互联网人数的增加,以及在线酒店预订市场和出入境旅游慢慢走向成熟,中国已经成为了此块业务发展的首选,以填补中国旅游市场内高端商旅市场和境外酒店信息资源及服务的空缺。
随着互联网络技术的发展和普及,酒店就可以充分这一有效的途径,开设互连网上客房预订系统,不但能为国内顾客提供有效的订房服务,同时也能不受地域的限制,为国外的客人提供异地订房服务。
因此开发该系统要求能够充分满足客户的需求。
1.3本课题的研究内容
本论文第一章为绪论,主要描述了论文研究的内容和国内外现状;
第二章为开发工具和开发环境的介绍,主要描述了MVC框架、三层架构模式、工厂模式、SQL数据库;
第三章为酒店预定系统的设计,主要描述了酒店需求分析、系统功能分析,以及数据库的结构设计;
第四章为系统设计的具体实现,主要描述了系统详细设计,包括用户注册登录,用户信息管理,酒店预定的实现;
最后是论文总结。
2.酒店预定系统开发工具和技术
2.1MVC框架
本论文开发的酒店预定系统中,利用MVC框架。
实现用户界面、业务逻辑与数据库的统一协调控制。
MVC全名是ModelViewController,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑和数据显式分离的方法组织代码,将业务逻辑聚集到一个部件里面,在界面和用户围绕数据的交互能被改进和个性化定制的同时而不需要重新编写业务逻辑。
MVC被独特的发展起来用于映射传统的输入、处理和输出功能在一个逻辑的图形化用户界面的结构中。
(1)Model(模型)
数据库专家进行数据管理和数据库设计,模型包含应用程序的核心功能。
模型封装了应用程序的状态。
有时它包含的唯一功能就是状态。
它对视图或控制器一无所知。
主要的功能作用是:
封装应用程序状态、响应状态查询、应用程序的功能、通知视图改变。
(2)View(视图)
界面设计人员进行图形界面设计,视图提供模型的表示,它是应用程序的外观。
视图可以访问模型的读方法,但不能访问方法。
此外,它对控制器一无所知。
当更改模型时,视图应得到通知。
解释模型、模型更新请求、发送用户输入给控制器、允许控制器选择视图。
(3)Controller(控制器)
程序员编写程序应有的功能(实现算法等),控制器对用户的输入信息作出反应,创建并设置模型。
定义应用程序能力、用户动作映射成模型更新、选择响应的视图。
MVC减弱了业务逻辑接口和数据接口之间的耦合,以及让视图层更富于变化。
模型、视图与控制器的分离,使得一个模型可以具有多个显示视图。
如果用户通过某个视图的控制器改变了模型的数据,所有其它依赖于这些数据的视图都应反映出这些变化。
因此,无论何时发生了何种数据的变化,控制器都会将变化通知到所有的视图,导致显示的更新。
这实际上是一种模型的变化传播机制。
模型、视图、控制器三者之间的关系和各自的主要功能,如图2-1所示。
图2-1MVC组件类型的关系和功能
2.2三层架构模式
本论文开发的酒店预定系统中,利用三层架构模式。
三层架构(3-tierarchitecture)通常意义上的三层架构就是将整个业务应用划分为:
表现层(UI)、业务逻辑层(BLL)、数据访问层(DAL)。
区分层次的目的即为了“高内聚,低耦合”的思想。
(1)表现层(UI)
通俗讲就是展现给用户的界面,即用户在使用一个系统的时候他的所见所得。
(2)业务逻辑层(BLL)
针对具体问题的操作,也可以说是对数据层的操作,对数据业务逻辑处理。
(3)数据访问层(DAL)
该层所做事务直接操作数据库,针对数据的增添、删除、修改、查找等。
所谓三层体系结构,是在客户端与数据库之间加入了一个“中间层”,也叫组件层。
这里所说的三层体系,不是指物理上的三层,不是简单地放置三台机器就是三层体系结构,也不仅仅有B/S应用才是三层体系结构,三层是指逻辑上的三层,即把这三个层放置到一台机器上。
三层体系的应用程序将业务规则、数据访问、合法性校验等工作放到了中间层进行处理。
通常情况下,客户端不直接与数据库进行交互,而是通过COM/DCOM通讯与中间层建立连接,再经由中间层与数据库进行交互。
三层结构示意图2-2所示。
图2-2三层结构分层关系
三层模式的主要优点为:
(1)良好的灵活性和可扩展性
对于环境和应用条件经常变动的情况,只要对应用层实施相应的改变,就能够达到目的。
(2)可共享性
单个应用服务器可以为处于不同平台的客户应用程序提供服务,在很大程度上节省了开发时间和资金投入。
(3)较好的安全性
在这种结构中,客户应用程序不能直接访问数据,应用服务器不仅可控制哪些数据被改变和被访问,而且还可控制数据的改变和访问方式。
(4)增强了企业对象的重复可用性
“企业对象”是指封装了企业逻辑程序代码,能够执行特定功能的对象。
随着组件技术的发展,这种可重用的组件模式越来越为软件开发所接受。
(5)三层模式成为真正意义上的“瘦客户端”,从而具备了很高的稳定性、延展性和执行校率
(6)三层模式可以将服务集中在一起管理,统一服务于客户端,从而具备了良好的容错能力和负载平衡能力
2.3Factory工厂模式
2.3.1简单工厂模式
简单工厂模式就是专门负责将大量的共同接口的类实例化,而且不必事先知道每次是要实例化哪一个类的模式。
它定义一个用于创建对象的接口,由子类决定实例化哪一类。
2.3.2抽象工厂模式
(1)抽象工厂模式定义
可以说是简单工厂模式的扩展,它们主要的区别在于需要创建对象的复杂程度上。
在抽象工厂模式中,抽象产品可能是一个或者多个,从而构成一个或者多个产品族。
在只有一个产品族的情况下,抽象工厂模式低级上退化到工厂方法模式。
(2)抽象工厂模式的结构
关于工厂模式的简单例子如下。
1 种植方式
定义一个种植植物类接口Plant,可以种植所有植物。
现在有两种不同的种植方式(都属于植物类接口Plant的范畴),分别可以种植出PlantA和PlantB两种植物。
且两种植物都可以有不同的作用。
用例如下。
publicinterfacePlant{//产品Plant接口}
publicclassPlantAimplementsPlant{//具体产品PlantA,PlantB
publicPlantA(){
System.out.println("
createPlantA!
"
);
}
publicvoiddoSomething(){
PlantAdosomething"
}}
publicclassPlantBimplementsPlant{
publicPlantB(){
createPlantB!
PlantBdosomething"
}}
2 结果方式
定义一个结出果实类接口Fruit,可以结出所有果实。
现在有两种不同的结出果实的方式(都属于结出果实类接口Fruit的范畴),分别可以结出FruitA和FruitB两种水果。
且两种果实都具有不同的作用。
publicinterfaceFruit{//产品Fruit接口}
publicclassFruitAimplementsFruit{//具体产品FruitA,FruitB
publicFruitA(){
createFruitA!
FruitAdosomething"
publicclassFruitBimplementsFruit{
publicFruitB(){
createFruitB!
FruitBdosomething"
3 生产方法
定义一个抽象的工厂类接口AbstractFactory,具有两种不同的功能,即种植植物和结出果实。
那么该工厂就具有了种植植物、结出果实的所有具体实现类。
现在有两个不同的工厂(都属于工厂类AbstractFactory接口的范畴),分别是FactoryA和FactoryB。
那么现在两个工厂因为都承接了抽象类工厂那个,则就具有了种植植物和结出果实的功能。
同时就可以生产不同的植物和果实了。
正如所定义的那样,工厂FactoryA种植植物A和结出A的果实,工厂FactoryB种植植物B和结出B的果实。
publicinterfaceAbstractFactory{//抽象工厂方法
publicPlantcreatePlant();
publicFruitcreateFruit();
publicclassFactoryAimplementsAbstractFactory{//具体工厂方法
publicPlantcreatePlant(){
returnnewPlantA();
publicFruitcreateFruit(){
returnnewFruitA();
publicclassFactoryBimplementsAbstractFactory{
publicPlantcreatePlant(){
returnnewPlantB();
returnnewFruitB();
2.4MySQL简介
本论文开发的酒店预定系统所用数据库为:
MySQL数据库。
MySQL是最受欢迎的开源SQL数据库管理系统,它由MySQLAB开发、发布和支持。
MySQLAB是一家基于MySQL开发人员的商业公司,它是一家使用了一种成功的商业模式来结合开源价值和方法论的第二代开源公司。
MySQL是MySQLAB的注册商标。
MySQL是一个快速的、多线程、多用户和健壮的SQL数据库服务器。
MySQL服务器支持关键任务、重负载生产系统的使用,也可以将它嵌入到一个大配置(mass-deployed)的软件中去。
MySQL数据库的特点如下:
(1)MySQL是一个数据库管理系统
一个数据库是一个结构化的数据集合。
它可以是从一个简单的销售表到一个美术馆、或者一个社团网络的庞大的信息集合。
如果要添加、访问和处理存储在一个计算机数据库中的数据,你就需要一个像MySQL这样的数据库管理系统。
从计算机可以很好的处理大量的数据以来,数据库管理系统就在计算机处理中和独立应用程序或其他部分应用程序一样扮演着一个重要的角色。
(2)MySQL是一个关系数据库管理系统
关系数据库把数据存放在分立的表格中,这比把所有数据存放在一个大仓库中要好得多,这样做将增加你的速度和灵活性。
“MySQL”中的SQL代表“StructuredQueryLanguage”(结构化查询语言)。
SQL是用于访问数据库的最通用的标准语言,它是由ANSI/ISO定义的SQL标准。
SQL标准发展自1986年以来,已经存在多个版本:
SQL-86,SQL-92,SQL:
1999,SQL:
2003,其中SQL:
2003是该标准的当前版本。
(3)MySQL是开源的
开源意味着任何人都可以使用和修改该软件,任何人都可以从Internet上下载和使用mysql而不需要支付任何费用。
如果你愿意,你可以研究其源代码,并根据你的需要修改它。
mysql使用GPL(GNUGeneralPublicLicense,通用公共许可),在hpt:
//www.fsf.org/licenses中定义了你在不同的场合对软件可以或不可以做什么。
如果你觉得GPL不爽或者想把mysql的源代码集成到一个商业应用中去,你可以向mysqlAB购买一个商业许可版本。
(4)mysql服务器是一个快的、可靠的和易于使用的数据库服务器
mysql服务器原本就是开发比已存在的数据库更快的用于处理大的数据库的解决方案,并且已经成功用于高苛刻生产环境多年。
尽管mysql仍在开发中,但它已经提供一个丰富和极其有用的功能集。
它的连接性、速度和安全性使mysql非常适合访问在Internet上的数据库。
(5)mysql服务器工作在客户/服务器或嵌入系统中
mysql数据库服务器是一个客户/服务器系统,它由多线程sql服务器组成,支持不同的后端、多个不同的客户程序和库、管理工具和广泛的应用程序接口(APIs)。
2.5HTML与JSP
2.5.1HTML
html英文全称是:
HyperTextMarkuplanguage,即超文本标记语言。
“超文本”就是指页面内可以包含图片、链接,甚至音乐、程序等非文字元素。
超文本标记语言的结构包括“头”部分(外语:
Head)、和“主体”部分(外语:
Body),其中“头”部提供关于网页的信息,“主体”部分提供网页的具体内容。
html文档结构如图2-3所示
图2-3html文档结构
html主要特点如下:
(1)简易性,html版本升级采用超集方式,从而更加灵活方便。
(2)可扩展性,html的广泛应用带来了加强功能,增加标识符等要求,html采取子类元素的方式,为系统扩展带来保证。
(3)平台无关性。
虽然pc机大行其道,但使用mac等其他机器的大有人在,html可以使用在广泛的平台上。
html文档制作不是很复杂,且功能强大,支持不同数据格式的文件镶入,这也是www盛行的原因之一,尽管html有如此多的有点,但html也具有缺陷,如无交互、内容“死”。
所以可以说html是一种静态网页技术。
若要实现网页的动态交互,则需引入JSP的概念。
2.5.1JSP
JSP全名为JavaServerPages,其根本是一个简化的Servlet设计,它实现了html语法中的java扩张(以<
%,%>
形式)。
JSP与Servlet一样,是在服务器端执行的。
通常返回给客户端的就是一个HTML文本,因此客户端只要有浏览器就能浏览。
Web服务器在遇到访问JSP网页的请求时,首先执行其中的程序段,然后将执行结果连同JSP文件中的HTML代码一起返回给客户端。
插入的Java程序段可以操作数据库、重新定向网页等,以实现建立动态网页所需要的功能。
通常JSP页面很少进行数据处理,只是用来实现网页的静态化页面,只是用来提取数据,不会进行业务处理。
JSP技术有点类似ASP技术,它是在传统的网页HTML(标准通用标记语言的子集)文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件,后缀名为(*.jsp)。
用JSP开发的Web应用是跨平台的,既能在Linux下运行,也能在其他操作系统上运行。
JSP与HTML的关系如图2-4所示:
图2-4 JSP与HTML的关系
2.6系统开发环境
系统开发所需要的软硬件环境如表2.1所示。
表2.1系统软硬件配置表
硬件
内存容量
1024MB
硬盘容量
72GB
网络
10Mbit/sLAN
IP
127.0.0.1
软件
操作系统
Win7
JDK版本
1.5
JDK制造商
SunMicrosystems
HTTP服务器
Tomcat
HTTP服务器版本
6.3X
数据库版本
MySQL5.5
JDBC驱动器制造商
MySQL
JDBC驱动器版本
1.2
2.6.1Myeclipse应用服务开发平台
本论文开发的酒店预定系统基于MyEclipse平台,完成了编码、调试、测试和发布功能。
MyEclipse企业级工作平台(MyEclipseEnterpriseWorkbench,简称MyEclipse)是对EclipseIDE的扩展,利用它我们可以在数据库和J2EE的开发、发布,以及应用程序服务器的整合方面极大的提高工作效率。
它是功能丰富的J2EE集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持