宾馆酒店管理系统的分析和设计

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

宾馆酒店管理系统的分析和设计
目录
1.简介
2. 系统概述
2.1系统功能与应用背景
2.2系统预览
2.3系统特点
2.4 JSP概述
3.系统设计
3.1 系统设计思想
3.2 系统功能模块划分
3.3 系统结构设计
4. 数据库设计
4.1 数据库需求分析
4.2 数据库概念设计
4.3 数据库逻辑设计
5.组件的编写
5.1 Bean的编写
6.客户界面设计
6.1共用模块设计
6.2 用户登录模块设计
6.3 用户模块设计
6.4 客房模块设计
6.5 业务模块设计
6.6 客户模块设计
6.7 统计模块设计
7.系统开发的策略与方法
7.1系统开发的策略
7.2 结构化生命周期
7.3 原型法
8. 系统开发总结
1. 简介
随着我国市场经济的快速发展,各行业都呈现出生机勃勃的发展景象,其中宾馆酒店业的发展尤为突出。

近两年来已呈现出高速发展的态势。

但在快速发展的同时,宾馆酒店业在日常经营管理中仍普遍采用手工管理方式,整体科技含量低。

随着宾馆酒企业规模和数量的不断增长,手工管理模式无论是在工作效率、人员成本还是提供决策信息方面都已难以适应现代化经营管理的要求,因此制约了整个宾馆酒店业的规模化发展和整体服务水平的提升。

有效的管理成为了一个难题,为能有效的解决这些问题提高企业的经济效益,在这些中宾馆酒中采用工作流技术,结合宾馆酒绿色管理内容,实施计算机管理信息系统不视为一条有效的解决途径。

本论文主要针对宾馆酒管理中的一些问题,将其与计算机信息管理系统结合起来,实现宾馆酒管理信息计算机化、系统化,将宾馆酒管理中的工作流转化成比较科学化、规范化的业务流程,使管理基础数据更加准确化,管理人员摆脱了事务性工作,转而从事管理专业工作,为经营决策提供了快捷和强大的数据支持。

把计算机用于宾馆酒管理理,可在很大程度上提高管理者分析和决策的科学性,提高经营管职水平,带来更多的顾客,使企业取得更好的经济效益。

总之,这套系统的开发只是把计算机技术应用于宾馆酒管理中的小部分,系统中还存在许多不足,需要不断改进和完善。

但同时也坚信随着科学技术的不断发展,通过继续努力不断完善宾馆酒管理信息系统的功能,在不久的将来必将能更加深入的发展下去,必将能为我国宾馆酒店业的信息化进程贡献其微薄之力。

2.系统概述
2.1系统功能与应用背景
随着社会的发展和信息技术的进步,全球信息化的趋势越来越明显。

任何一家大型企业不再局限于某一个地区,都在自觉不自觉的参与到全球化的市场竞争中。

在这个全球化的竞争过程中,企业对信息的掌握程度、信息的获取是否及时、信息能否得到充分利用、对信息的反应是否敏感准确,已越来越成为衡量一个企业市场竞争能力的重要因素。

本文通过一个宾馆酒店管理系统,来描述如何制作一个能科学管理宾馆的系统。

系统的总体任务是实现宾馆酒店客房管理,结帐和用户信息管理。

宾馆酒店管理主要完成的功能如下:
.员工信息管理
.客房类型管理
.客房信息管理
.客房经营管理
.订房业务.退房业务
.客房业务.客户业务
.客户信息查询
.经营状况统计
.系统帮助
2.2系统预览
图2-1所示是系统登录界面
图2-2所示是系统主界面
图2-2 系统主界面
2.3系统特点
页面模块化:本系统在界面设计上都采用模块化处理思想,把很多页面共有部分分集成一个模块,例如页面的头、尾和导航条,这样在开发是直接引用这些共用页面就可以了,大大提高开发效率并提高系统可维护性。

三层结构:本系统采用三层结构设计,既程序逻辑结构分为用户界面层、业务逻辑处理层和数据存储层。

三层在物理结构上也是独立的,业务逻辑处理层采用javabean实现,用户界面与逻辑分离,系统的安全性、可维护性、重用性和可扩展性都大大提高。

面向对象设计:在系统中将用户、图书等都封装成相应的类,同时每类都有自己对应的操作类,从而再次提高了对数据库操作的安全性和程序的可扩展性。

易操作:要求设计的系统功能齐全,界面友好,操作方便,必要的地方进行提示。

源程序可读性:为了便于其他设计,维护人员读懂代码或以后的代码修改,软件升级维护,即可能做好代码注释工作。

优化原则:为了达到优化的目的,合理的运用窗口,菜单,对象等的继承,自定义用户对象,事件,函数,减少不必要的重复性代码,使程序简介明了,也方便了将来的维护。

人性化设计:本系统导航的另一个亮点是导航明显。

不管用户位于本系统的那个角落,都不会迷路。

2.4 JSP概述
JSP(Java Server Pages)是由Sun Microsystems公司倡导、许多公司参与一起建立的一种动态网页技术标准,JSP技术是在Servlet技术基础上发展起来的,它正在飞速发展中,现在已经成为Java服务器编程的重要组成部分。

JSP是结合markup(HTML 或XML)和Java代码来处理的一种动态页面。

每一页第一次被调用时,通过JSP引擎自动被编译成Servlet,然后被执行,以后每次调用时,执行编译过的Servlet。

JSP提供了多种方式访问Javaclass、Servlet、Applets和W ebServer,因此,Web应用的功能可以分成多个明确的定义公用接口的组件,通过JSP将它们结合在一起。

这种模式允许工作分成两部分:组件开发与页面设计和编译(结合一些方法调用)。

在这种应用编译模式,使得业务逻辑和数据处理分开。

现在已经有许多WebServer支持JSP,这使得JSP具有良好的可移植性。

JSP与微软的ASP技术非常类似,两者都提供在HTML代码中混合某种程序代码、由语言引擎解释执行代码的能力。

ASP的编程语言是VBScript之类的脚本语言,JSP使用的是JA V A,这是两者最明显的区别。

另外,ASP和JSP还有一个更本质的区别:两种语言引擎用完全不同的方式处理页面中嵌入的程序代码。

在ASP下,VBScript代码被ASP引擎解释执行;在JSP下,代码被编译成Servlet并由java虚拟机执行,这种编译操作只在对JSP页面的第一次请求时发生。

总的来说,JSP技术具有以下特点:
1.将内容的产生和显示进行分离:
使用jsp技术,web页面开发人员可以使用HTML或者XML标志来设计和格式化最终页面。

使用JSP标志或者小脚本来产生页面上的动态内容。

产生内容的逻辑被封装在标志和JA V ABEAN群组件中,并且捆绑在小脚本中,所有的脚本在服务器端执行。

如果核心逻辑被封装在标志和JA V ABEANS中,那么其他人,如WEB管理人员和页面设计人员,能够编辑和使用JSP页面。

在服务器端,JSP引擎解释JSP标志,产生所请求的内容,并且将结果以HTML页面形式发送回浏览器。

2.强调可重用的群组件
绝大多数JSP页面依赖于可重用并且跨平台的组件(如:JA V ABEAN或者ENTERPRISE JA V ABEAN)来执行应用所要求的更为复杂的处理。

开发人员能够共享和交换执行普通操作的组件,或者使得这些组件为更多的使用者或团体所使用。

基于组件的方法加速了开发过程,并且使得各种群组织在他们现有的技能和优化结果的开发努力中得到平衡。

3.采用标志简化页面开发
WEB页面开发人员不会都熟悉脚本语言的程序设计人员。

JSP技术封装了许多功能,这些功能是在易用的、与JSP相关的XML标志中进行动态内容产生所需要的。

标准的JSP标志能够存取和实列化JA V ABEAN组件,设定或者检索群组件属性,下载APPLET,以及执行用其它方法更难于编码和耗时的功能。

JSP技术很容易整合到多种应用体系结构中,以利用现有的工具和技巧,并且扩展到能够支持企业级的分布式应用。

4.一次遍写,各处执行
作为JA V A平台的一部分,JSP拥有java程序设计语言”一次编写,各处执行“的特点。

3.系统设计
3.1 系统设计思想
1.页面模块化
本系统把页面中的一些常用部分集成为模块,如页面的头和尾,这样设计新的页面时如果有重复出现部分,只需要拿现成的模块来组装就可以了。

2.三层结构架构
本系统采用三层架构设计,它的工作原理如图2-3所示
用户界面层业务处理层数据存储层
图3-3 三层架构的工作原理
采用三层架构以后,用户界面层通过统一的接口向业务层发送请求,业务层按自己的逻辑规则将请求处理后进行数据库操作,然后将数据库返回的数据封装成类的形式返回给用户层。

这样用户界面层甚至可以不知道数据库结构,它只要维护与业务层之间的接口即可。

这种方式在一定程度上增加了数据库的安全性,同时减低了对用户界面层开发人员的要求,因为它根本不需要进行任何数据库操作。

上面的JavaBean通过返回对象的形式来返回数据,在类的内部可以规定哪些数据可访问,哪些数据是只读,从而通过封装数据达到再一次提高数据安全性的目的。

3 后台维护和前台显示分开
把后台管理员的维护模块和前台用户浏览信息模块独立开来,而又统一于同一个数据库,便于管理员维护数据,也便于用户浏览。

用户的权限控制又增加了系统的安全性。

3.2 系统功能模块划分
根据2节的系统功能分析,可以画出系统功能模块图。

如图3-4所示
图3-4系统的功能模块图
3.3 系统结构设计
根据面向对象和三层结构的设计思想,可以得出如图2-6所示的系统结构设计图。

图2-6 系统结构设计图
4. 数据库设计
数据库在一个信息管理系统中占有非常重要的地位,数据库结构设计的好坏将直接对应用系统的效率,以及实现的效果产生影响。

合理的数据库结构设计可以提高数据存储的效率,保证数据的完整和一致。

设计数据库时应该首先充分了解用户的各方面需求,包括现有和将来可能的增加的需求。

数据库设计一般包含如下几个步骤。

(1)数据库需求设计
(2)数据库概念设计
(3)数据库逻辑结构设计
4.1 数据库需求分析
根据上述需求,设计如下所示的数据项和数据结构
员工信息,含数据项:用户编号、姓名、密码、性别、电子邮件等
客房信息,含数据项:客房编号、客房名称、面积、床位等
客房类型信息,含数据项:类型编号、类型名称、备注等
客房使用信息,含数据项:客房编号、入住日期、退房日期、消费金额等
4.2 数据库概念设计
得到上面的数据项和数据结构后,就可以设计出满足用户需求的各种实体,以及它们之间的关系,为后面的逻辑结构设计打下基础。

根据上面的描述,本系统的实体有:员工信息实体、客房信息实体、客房类型信息实体、客房使用信息实体。

员工信息实体的E-R图如图2-9所示
图2-9 员工信息实体E-R图
客房信息实体的E-R图如图2-10所示
客房类型信息实体的E-R图如图2-11所示
图2-10 客房信息实体E-R图
图2-11 客房类型信息实体E-R图
客房使用信息实体的E-R图如图2-12所示
图2-12 客房使用信息实体的E-R图
4.3 数据库逻辑设计
数据的概念结构设计完毕后,现在可以将上面的数据库概念结构转化为某种数据库系统的实际数据模型,也就是数据库的逻辑结构。

由数据模型利用MS Access进行数据库的详细设计,其基本表的设计如下:
说明:此表存放客房类型信息。

说明:此表存放客房信息。

说明:此表存放客房使用信息。

5.组件的编写
在工程下新建一个包jdgl ,然后在这包下新建三个包,即op ,,util ,run 。

系统包如图2-14所示。

图2-14 系统包图
在run 包下有五个类,其作用如下:
op_usersinfo 类:管理员工 ,包括员工查询、修改、删除、添加等 op_roomsinfo 类:管理客房,包括客房查询、修改、删除、添加等 op_lx 类:管理客房类型,包括类型查询、修改、删除、添加等 op_history 类:管理客房使用,包括使用查询、修改、删除、添加等
在util 包下有两个类,其作用如下: database 类:数据库连接
dataformat类:数据格式转换
QueryPage类:数据分页
Truncate类:转换中文
在op包下有六个类,其作用如下:
op_usersinfo类:管理员工
op_roomsinfo类:管理客房基本信息
op_lx类:管理客房类型
op_history类:管理客房使用信息
下面介绍类的实现方式
5.1数据连接Bean的编写
这是一个公共类,其它类如果要连接数据库,只需要构造这个类的对象就可以了。

package jdgl.util;
import java.sql.*;
public class DataBase {
public Connection conn;
public Statement stmt;
public ResultSet rs=null;
public String sqlStr="";
public DataBase() {
this.connect();
}
public boolean connect(){
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver").newInstance();
String url ="jdbc:odbc:Driver=
{Microsoft Access Driver (*.mdb)};DBQ=e:/jsp/jdgl/database/jdgl_database.mdb";
conn=DriverManager.getConnection(url,"","");
stmt = conn.createStatement ();
}catch(Exception ee){
System.out.println("connect db error:"+ee.getMessage());
return false;
}
return true;
}
//用于执行查询数据库的操作
//返回查询结果集
public ResultSet execQuery(String sql) {
String url ="jdbc:odbc:Driver=
{Microsoft Access Driver (*.mdb)};DBQ=e:/jsp/jdgldatabase/jdgl_database.mdb";
ResultSet rs=null;
try {
conn = DriverManager.getConnection(url,"","");
Statement stmt = conn.createStatement();
rs = stmt.executeQuery(sql);
//stmt.close();
} catch(SQLException ex) {
System.err.println("DataBase.execQuery(): " + ex.getMessage());
}
return rs;
}
public void closeStmt(){
try{
stmt.close();
}catch(SQLException e){
e.printStackTrace();
}
}
public void closeConn(){
try{
conn.close();
}catch(SQLException e){
e.printStackTrace();
}
}
}
数据库连接Bean DataBase.java
* 其它Bean的编写请看实例中的代码。

6.用户界面设计
6.1共用模块设计
为了提高代码的重用性,把共用部分做成独立的文件保存,保存在inc目录里。

这些文件都是纯HTML代码。

调用方式:
<%@ include file="../inc/gs.inc"%> 页面格式
<%@include file="../inc/session.inc"%> 变量文件
6.2 用户登录模块设计
为了检验用户是否是书店的合法用户,所以输入用户名和密码来核对用户的合法性。

该模块需要用到reg.jsp文件。

6.3 员工管理模块设计
在该模块用户可以看见现有的员工;用户可以查询员工;用户可以编辑用户,也可以查看用户的详细资料。

6.4 客房类型管理模块设计
在这个功能模块中,用户可以看见现有的客房类型;用户可以添加、查询、编辑类型信息。

6.5 客房信息模块设计
在这个功能模块中,用户可以看见现有的客房信息;用户可以添加、查询、编辑客房信息。

6.6客房使用模块设计
在这个功能模块中,用户可以看见现有的客房使用;用户可以添加、修改、删除、查看客房使用信息。

7 系统开发策略与方法
7.1系统开发的策略
每一种开发方法都要遵循相应的开发策略。

任何一种开发策略都要明确以下问题:系统要解决的问题:如采取何种方法解决组织管理和信息处理方面的问题,对公司提出
的新的管理需求该如何满足等。

系统可行性研究:确定系统所要实现的目标。

通过对公司状况的初步调研得出现状分析的结果,然后提出可行性方案并进行论证。

系统可行性的研究包括目标和方案可行性、技术的可行性、经济方面的可行性和法律可行性等方面的考虑。

系统开发的原则:在系统开发过程中,要遵循领导参与、优化创新、实用高效、处理规范化的原则。

系统开发方法的选择和开发计划的制定:针对已经确定的开发策略选定相应的开发方法,是结构化系统分析和设计方法,还是选择原型法或面向对象的方法。

开发计划的制定是要明确系统开发的工作计划、工程进度计划和资源利用计划。

7.2 结构化生命周期法
结构化生命周期开发方法,其基本思想是:按照管理信息系统生命周期的概念,严格地按照系统生命周期的各个过程和步骤去开发系统,其特点是:采用“自上而下”的开发策略,进行系统分析和系统设计,然后,“自下而上”地开发和调试各个模块,最后实现模块联调和整个系统的联调;工作文件的标准化与文档化;强调面向用户的观点
信息系统的生命周期
任何事物都有产生、发展、成熟、消亡(更新)的过程,信息系统也不例外。

信息系统在使用的过程中随着其生存环境的变化,要不断维护、修改,当它不再适应的时候就要被淘汰,就由新系统代替老系统,这种周期循环称为信息系统的生命周期,图1.1表示信息系统的生命周期以及相应的工作步骤。

结构化生命周期开发方法开发一个系统,将整个开发过程划分为5个依次连接的阶段:系统规划阶段:进行初步的调查,通过可行性研究确定下一个阶段的实施。

系统分析阶段:主要任务是明确系统开发的请求,并确定系统的总体设计方案,然后进行详细设计。

系统设计阶段:主要任务是从管理信息系统的总体目标出发,根据系统分析阶段对系统的逻辑功能的要求,并考虑到经济、技术和运行环境等方面的条件,确定系统的总体结构和系统各组成部分的技术方案,合理选择计算机和通信的软、硬件设备,提出系统的实施计划,确保总体目标的实验。

系统实施阶段:主要任务是,根据详细设计文档将详细设计转化为所要求的编程语言或
数据库程序语言,并对这些程序进行调试和程序单元测试,验证程序模块接口与详细设计文档的一致性。

系统运行阶段:主要任务是进行系统的日常运行管理,评价系统的运行效率,对运行费用和效果进行监理审计。

这四个阶段共同构成了系统开发的生命周期。

结构化生命周期开发方法严格区分了开发阶段,非常重视文档工作,对于开发过程中出现的问题可以得到及时的纠正,避免了出现混乱状态。

7.3原型法
原型法在系统开发过程中也得到不少应用。

原型法的基本思想是系统开发人员凭借自已对用户需求的理解,通过强有力的软件环境支持,构造出一个实在的系统原型,然后与用户协商,反复修改原型直到用户满意。

原型法的应用使人们对需求有了渐进的认识,从而使系统开发更有针对性。

另外,原型法的应用充分利用了最新的软件工具,使系统开发效率大为提高。

原型法主要用于以下一些场合:
1.事先难以说明需求的较小的应用系统;
2.决策支持系统;
3.与生命周期法结合起来使用,即整体上仍使用生命周期法,而仅对其中功能独立的模块采用原型法。

原型法要求快速建立原型系统,这就要求有软件开发工具的支持。

8. 系统开发总结
通过这次毕业设计让我对前面学过的许多课程有了更为深刻的理解,也是我对这四年所学的东西的一个综合体现。

然而这次设计让我感受颇深,让我真正体会到了在整个过程给我带来的无奈与快乐。

综合起来,主要体现在以下几个方面:
首先,急于求成的心情给我带来了很大的困难。

以前我注重是编码过程,以为只要能把最后的功能实现了就可以了,所以一开始我就稍微理了一下思绪就动起手来编码,我原以为很快就能完成此次任务,可万万没想到,编了二三天,自已就陷入了泥潭,进退两难,但后来面临的问题只有重来,这真是给了我很大的打击,这样的反复让我进行了几次。

后来我终于沉住气,吸取前几次的教训,严格的按照“管理信息系统”“软件开发工具”所提到开发管理信息系统所用的方法中都把系统规划和系统分析放在极为重要的位置。

认真细致地对开发过程进行了规划和分析,才逐渐弄清了整个系统的流程,把握整体布局,明确了系统的基本功能,做好业务流程图、数据流图的情况下,在设计好系统各主要部分,将一些细节问题考虑周全后才开始动手进行开发,使得后来的工作才得以顺利进行。

其次,在编程语言的熟悉程度也让我对整个开发过程受到了一定的阻碍。

因为以前只独立编制过一些微型程序,而那些程序涉及面比较窄,实现的功能相当有限,从而要求对语言的熟悉程序不高,然而这次很多都不同,这次设计,不但难度大,而且还要求对一些算法比较熟悉,否则将延迟工作速度,必须停下来再去学习,后因时间问题,本系统还有一些不尽如意之处。

最后,在撰写毕业论文时也遇到了一些困难。

由于这是我第一次写毕业论文,没有任何经验,对于论文的格式、要求和内容都一无所知,在查询了大量的书籍后才有了模糊概念。

所以在此篇毕业论文中不免会有些缺点。

总的来说,这次的毕业设计为我即将踏入社会之前提供了一次锻炼的舞台。

正像辅导老师说的一样,他让我对几年来所学的专业课有了更为深刻的认识,使知识得到了融会贯通,
得到了比以往学习任何一门课都大的提高和进步。

对于我们来讲,我们每天都要学习,但这书本上的东西如果只是个理论,如果不把他应用于实践中,这门课可以对我们来说完全没有意义。

经过开发这个系统,这不仅仅是一次毕业设计,不仅仅是学会了一门开发语言,更重要的是在学习的过程中,所有的问题要自已去面对,有问题也只有靠自已去解决,这们,在学习和解决这些困难的过程中提高了我学习的能力、解决问题的能力和实际工作的能力,学到了许多书本以外的知识,这让我踏出这个校门给予自已最大的回报,同时我也相信会给我在以后的人生道路上带来很多的帮助。

这次毕业设计虽说不能堪称完美,但我会在以后的时间里尽量的完善它,不断的对它进行升级,解决系统可能出现的问题。

参考文献
[1] xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
[2] xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
[3] xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
[4] xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
[5] xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
[6] xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
[7] xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx。

相关文档
最新文档