基于ssm的酒店管理系统设计与实现

粉红爪子的大龙

发布日期: 2020-06-23 12:40:13 浏览量: 88
评分:
star star star star star star star star star star_border
*转载请注明来自write-bug.com

摘 要

传统的酒店管理往往需要酒店管理人花大量时间和精力来处理顾客查询、顾客登记等事务,而错误的查询、繁琐的登记和结账手册、费用的结算错误、空余客房不能及时提供等等问题,可能导致顾客的频繁投诉,从而影响酒店的出租率。这些问题都可以通过计算机辅助系统来解决。随着计算机和信息技术的飞速发展,酒店客房的管理由传统的工作模式逐渐被信息化、网络化的现代工作模式所代替。以住宿为主的酒店假如再延用传统的管理模式,就会增加酒店管理成本和降低工作效率。在酒店客房管理中融入先进的计算机和软件技术,利用酒店客房管理系统进行管理就显得十分有意义。利用酒店客房管理系统进行管理能让管理者及时了解酒店整体情况,便于各种决策,同时也简化了管理的各种复杂操作,提高了酒店的管理效率。本文采用 Javaweb,创建一个适合实际情况的酒店客房管理系统。

关键词:酒店客房管理;java程序设计;web前端程序设计;数据库模块;统计模块

ABSTRACT

Traditional hotel management often requires hotel managers to spend a lot of time and energy dealing with customer inquiries, customer registration and other matters, while wrong inquiries, cumbersome registration and checkout manuals, fee settlement errors, the lack of timely provision of spare rooms and other issues may lead to frequent customer complaints, thus shadowing the situation. The rental rate of the hotel. These problems can be solved by computer aided system. With the rapid development of computer and information technology, hotel room management has gradually been replaced by the traditional mode of work by the modern mode of information and network. If the traditional hotel management mode is extended, the hotel management cost will be increased and the work efficiency will be reduced. It is very meaningful to integrate advanced computer and software technology into hotel room management and make use of hotel room management system. The use of hotel room management system can enable managers to timely understand the overall situation of the hotel, facilitate decision-making, but also simplify the management of various complex operations, improve the efficiency of hotel management. In this paper, we use Javaweb to create a hotel room management system suitable for the actual situation.

Key words: Hotel room management; Java programming; web front-end programming; interface module; statistical module

第一章 绪论

酒店客房管理系统是指一种可以提高酒店管理效率的软件或平台,一般包含前台接待、前台收银、客房管家、销售POS、餐饮管理 、娱乐管理、 公关销售、财务查询、电话计费、系统维护、经理查询、工程维修等功能模块。

1.1 课题研究背景

随着经济 的迅速发展 ,酒店业的竞争日趋激烈。酒店业内不得不进一步寻求通过扩大酒店销售、改进服务质量、降低管理成本和提升客户满意度等办法来增强酒店的核心竞争力。其中最有效的手段就是应用 现代化 信息化技术,变革传统意义上的酒店业经营管理模式,跟上时代竞争的步伐。考虑到酒店业务的不断提升和用户需求的日益多样化,尽量满足酒店的个性化需求,同时吸收了同类产品及现有软件系统的优点,力争设计成为一套先进适用的酒店管理软件系统,为顾客提供更加便捷的信息化服务,为酒店管理者、决策者提供准确及时的酒店经营信息,以达到酒店节约经营成本、提高经营质量和经济效益的信息化管理目标。

1.1.1 酒店客房管理现状

在商场如战场,时间就是金钱的当今社会,只有不断提高经营效率、更新管理模式、及时把握企业的经营状况才能提高自身竞争力,才能使自己立于不败之地。随着现代信息技术的普及,越来越多的商家开始采用计算机来管理自己的业务。在应用之余,总希望有好的业务管理软件来帮助他们提高工作效益和管理水平。 

随着我国旅游业的发展,酒店信息管理系统在此方面的需求相应的更多一些。以前的管理以人工方式处理大量的酒店客户登记、结账及一些管理工作,不可避免的增加了管理的工作量,同时也易造成人为错误,给管理者带来了不必要的麻烦和损失。 

为了解决上述问题,使酒店客房管理更系统和便捷,准确而高效地开发数据库管理系统,使用户在实际工作中得心应手,就显得尤为重要。而本系统正是在这种时代背景下设计开发的。

随着计算机和信息技术的飞速发展,传统的 酒店客房管理 模式逐渐被信息化的现代 酒店客房管理 模式所代替。传统的酒店管理往往令管理者花大量的人力和物力以满足各种繁琐的经营活动的需要,例如冗长的登记和结账手续、手工记录所有客房状态、列表统计顾客消费情况等。这种工作模式不但效率低下,且极易出现错误和遗漏,有时甚至会导致严重的经济损失,给酒店的经营带来负面影响。

1.1.2 课题研究的意义

管理信息系统(Management Information System简称MIS)是信息科学的一个分支,是由人、计算机和数据库组成的能进行信息的收集、传递、储存、加工、维护和使用的系统。而酒店计算机管理系统是MIS中的一个重要分支。近年来,随着我国改革开放的发展,国内的酒店业得到了飞速发展。现代酒店作为一个对外来人员的接待场所,是一个城市的窗口。对一个以旅游行业为支柱产业的城市而言,酒店有着举足轻重的作用。作为一种以服务为主的无烟工业,世界各国对此行业的重视程度并不亚于其它工业。酒店在其运行期间,服务水平的高低,直接影响到酒店的形象和声誉,如:服务的安排、调度是否周到;客人的要求是否能很好地得到满足;市场的预测分析是否快捷、准确等。这其中的核心就是对每天大量的信息(客人、费用、房间等)的正确处理和保存。采用计算机这一现代化工具作为管理的辅助手段是必须的。计算机的应用包括OA(办公自动化)、MIS(管理信息系统)、CAD(计算机辅助设计)等,酒店的计算机系统正是典型的MIS应用。而本酒店管理信息系统,是针对酒店的具体业务而开发的,业务管理以酒店的客房管理为核心,为用户提供迅速、高效的服务,减免手工处理的繁琐与误差,及时、准确地反映酒店的工作情况、经营情况,从而提高酒店的服务质量,并配合现代化的酒店管理,获得更好的经济效益。并具有如下几个特点:间接性的,其经济效益不是直接产生的,是通过对人力、物力的节省而带来的,可以堵塞许多漏洞;长期性的,计算机的投资是较大的,是在长期的应用中逐步得到回报的;社会效益,酒店是一个高层次的服务行业,采用计算机可提高服务质量,有良好的社会形象。

对酒店整个来说,对酒店经营状况起决定作用的是酒店的服务管理水平。如何利用先进的管理手段来提高酒店的管理水平成为酒店业务发展的当务之急。面对信息时代的机遇和挑战,利用科技手段提高酒店的管理无疑是一条行之有效的途径。虽然计算机管理并不是酒店管理走向成功的关键元素,但它可以最大限度地发挥准确、快捷、高效等作用,对酒店的业务管理提供强有力的支持。因此,采用全新的计算机网络和酒店业务管理系统,已成为提高酒店的管理效率,使作业人员与管理系统之间灵活互动,实现流畅的工作流衔接,帮助酒店有效地进行业务管理,释放最大价值。酒店业务管理系统在达到在节省人力资源成本的同时,可以提高业务效率,并能够及时、准确、迅速地满足顾客服务的需求。

1.2 国内外现状与发展趋势

酒店管理系统最开始的时候是在美国,大约在六十年代末,如Ecoo系统,基本实现了酒店管理的给你,如预定、结账、餐厅、客房等模块,由于当时没有PC,所以整个系统都是在集中式的小型机上管理。

前些年国内的酒店管理系统之所以不成气候,就是因为网络信息化技术不够,从而影响了酒店的业绩。之后,国内外的计算机技术,网络平台,新型技术点不断传入国内。国内的酒店管理系统才开始发展起来。

现今,酒店的电脑管理和网络技术的日益提升,电脑网络服务日益昌盛。因此,在经济效益上取得了突飞猛进的进展。国家建设部门的规定中已经包含星级酒店的设计方案中必须包含电脑管理系统。这就是网络化的体现。

1.3 论文结构和内容

  • 第一章,结合酒店管理系统发展的现状,介绍酒店管理系统发展背景、课题研究意、以及在国内外现状与发展趋势

  • 第二章,介绍本次项目所运用到的主要、核心技术,以及他们各自的特点

  • 第三章,利用场景分析等软件工程需求分析方法[9],进行项目各个功能模块的进行需求分析

  • 第四章,通过E-R图、数据流图等图表与文字来陈述本次总体设计和数据库设计

  • 第五章,详细叙述本系统各个数据库各个模块的组成及实现结果

  • 第六章,详细叙述本系统各个功能模块具体的功能以及实现结果

第二章 相关技术简介

2.1 java

Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。

Java具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点。Java可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等。

Java看起来设计得很像C++,但是为了使语言小和容易熟悉,设计者们把C++语言中许多可用的特征去掉了,这些特征是一般程序员很少使用的。例如,Java不支持go to语句,代之以提供break和continue语句以及异常处理。Java还剔除了C++的操作符过载(overload)和多继承特征,并且不使用主文件,免去了预处理程序。因为Java没有结构,数组和串都是对象,所以不需要指针。Java能够自动处理对象的引用和间接引用,实现自动的无用单元收集,使用户不必为存储管理问题烦恼,能更多的时间和精力花在研发上

2.2 servlrt

Servlet(Server Applet)是Java Servlet的简称,称为小服务程序或服务连接器,用Java编写的服务器端程序,具有独立于平台和协议的特性,主要功能在于交互式地浏览和生成数据,生成动态Web内容。

狭义的Servlet是指Java语言实现的一个接口,广义的Servlet是指任何实现了这个Servlet接口的类,一般情况下,人们将Servlet理解为后者。Servlet运行于支持Java的应用服务器中。从原理上讲,Servlet可以响应任何类型的请求,但绝大多数情况下Servlet只用来扩展基于HTTP协议的Web服务器。

最早支持Servlet标准的是JavaSoft的Java Web Server,此后,一些其它的基于Java的Web服务器开始支持标准的Servlet。

2.3 HTML

超文本标记语言(Hyper Text Markup Language),标准通用标记语言下的一个应用。HTML 不是一种编程语言,而是一种标记语言 (markup language),是网页制作所必备的。“超文本”就是指页面内可以包含图片、链接,甚至音乐、程序等非文字元素。超文本标记语言(或超文本标签语言)的结构包括“头”部分、和“主体”部分,其中“头”部提供关于网页的信息,“主体”部分提供网页的具体内容。

超级文本标记语言是标准通用标记语言下的一个应用,也是一种规范,一种标准,它通过标记符号来标记要显示的网页中的各个部分。网页文件本身是一种文本文件,通过在文本文件中添加标记符,可以告诉浏览器如何显示其中的内容(如:文字如何处理,画面如何安排,图片如何显示等)。浏览器按顺序阅读网页文件,然后根据标记符解释和显示其标记的内容,对书写出错的标记将不指出其错误,且不停止其解释执行过程,编制者只能通过显示效果来分析出错原因和出错部位。但需要注意的是,对于不同的浏览器,对同一标记符可能会有不完全相同的解释,因而可能会有不同的显示效果。

2.4 JavaScript

JavaScript一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言,内置支持类型。它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在HTML(标准通用标记语言下的一个应用)网页上使用,用来给HTML网页增加动态功能。

在1995年时,由Netscape公司的Brendan Eich,在网景导航者浏览器上首次设计实现而成。因为Netscape与Sun合作,Netscape管理层希望它外观看起来像Java,因此取名为JavaScript。但实际上它的语法风格与Self及Scheme较为接近。[1]

为了取得技术优势,微软推出了JScript,CEnvi推出ScriptEase,与JavaScript同样可在浏览器上运行。为了统一规格,因为JavaScript兼容于ECMA标准,因此也称为ECMAScript。

2.5 CSS

层叠样式表(英文全称:Cascading Style Sheets)是一种用来表现HTML(标准通用标记语言的一个应用)或XML(标准通用标记语言的一个子集)等文件样式的计算机语言。CSS不仅可以静态地修饰网页,还可以配合各种脚本语言动态地对网页各元素进行格式化。[1]

CSS 能够对网页中元素位置的排版进行像素级精确控制,支持几乎所有的字体字号样式,拥有对网页对象和模型样式编辑的能力。

2.6 myeclipse

MyEclipse企业级工作平台(MyEclipseEnterprise Workbench ,简称MyEclipse)是对EclipseIDE的扩展,利用它我们可以在数据库和JavaEE的开发、发布以及应用程序服务器的整合方面极大的提高工作效率。它是功能丰富的JavaEE集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持HTML,Struts,JSP,CSS,Javascript,Spring,SQL,Hibernate [1] 。

MyEclipse 是一个十分优秀的用于开发Java, J2EE的 Eclipse 插件集合,MyEclipse的功能非常强大,支持也十分广泛,尤其是对各种开源产品的支持十分不错。MyEclipse可以支持Java Servlet,AJAX,JSP,JSF,Struts,Spring,Hibernate,EJB3,JDBC数据库链接工具等多项功能。可以说MyEclipse是几乎囊括了目前所有主流开源产品的专属eclipse开发工具。

第三章 需求分析

3.1 系统目标

本系统需要满足以下几个系统设计目标:

  • 实用性原则:真正为酒店工作人员的实际工作服务,按照酒店客房管理工作的实际流程,设计出实用的酒店客房管理系统

  • 安全性原则:必须为酒店客房提供信息安全的服务,以保证酒店信息的不被泄露

  • 可操作性原则:本酒店客房管理系统面向的是酒店内工作人员,所以系统操作上要求简单、方便、快捷,便于用户使用

  • 可扩展性原则:采用开发的标准和接口,便于系统向更大的规模和功能扩展。

3.2 系统需求

根据酒店客房管理系统的理念,此酒店客房管理系统必须满足以下需求:

  • 具有设置酒店客房类型和房间信息的功能

  • 能快速、准确地了解酒店的客房状态,以便订房和退房

  • 提供多种手段查询客房订房信息

  • 提供修改订房和修改退房功能

  • 提供简单的酒店工作人员的添加住户和续费房间功能

3.3 功能需求

  • 利用系统设置中的登录模块可以进行管理员登录

  • 客房管理模块主要是对客房进行设置和查询

  • 预定管理模块主要是对住宿登记、住房时间、房间类型和住户信息

  • 入住模块主要对客户预定好房间来登记入住开始

  • 挂账查询模块主要是对挂账和客户结款进行查询、调房登记、续费房间和退宿结账进行管理

  • 查询统计模块主要是对住宿、退宿进行查询以及对宿费进行提醒

  • 日结模块主要是对登记预收、客房销售进行报表管理以及对客房销售进行统计

  • 数据库模块是对客房信息、住户信息和收入信息的统计,不易丢失

  • 系统维护主要是对数据备份和恢复进行维护

3.4 系统性能需求

为了保证系统能够长期、安全、稳定、可靠、高效的运行,系统应该满足以下的性能需求:

3.4.1 系统处理的准确性和及时性

系统处理的准确性和及时性是系统的必要性能。在系统设计和开发过程中,要充分考虑系统当前和将来可能承受的工作量,使系统的处理能力和响应时间能够满足用户对信息的处理。由于系统的查询功能对于整个系统的功能和性能完成很重要。从系统的多个数据来源来看, 客房信息查询、订房 信息查询、 结算 信息查询,其准确性很大程度上决定了系统的成败。

因此,在系统开发过程中,系统采用优化的 SQL 语句及安全扩展存储过程来保证系统的准确性和及时性。

3.4.2 系统的开放性和系统的可扩充性

系统在开发过程中,应该充分考虑以后的可扩充性。例如 系统权限和客房信息设置 等模块也会不断的更新和完善。所 有这些 都要求系统提供足够的手段进行功能的调整和扩充。而要实现这一点,应通过系统的开放性来完成,既系统应是一个开放系统,只要符合一定的规范,可以简单的加入和减少系统的模块,配置系统的硬件。通过软件的修补、替换完成系统的升级和更新换代。

3.4.3 系统的可操作性

本酒店客房管理系统面向的用户是酒店内工作人员, 而有些使用人员往往对计算机并不是非常熟悉 ,所以系统操作上要求简单、方便、快捷,便于用户使用。 这就要求系统能够提供良好的用户接口,易用的人机交互界面。

3.4.4 系统的响应速度

系统设计中摒弃大量数据冗余,提出了优化数据库的解决方案,大量使用存储过程,大大提高系统响应时间和速度。系统在日常处理中的响应速度为秒级, 达到实时要求,以及时反馈信息。严格保证操作人员不会因为速度问题而影响工作效率。

3.4.5 开发技术

本系统利用myeclipse、Tomcat编译环境,采用可视化编程,以 SQLsever作为后台数据库。

  • 计算机及操作系统: Windows10

  • 开发工具:myeclipse

  • 运行环境 : javaJDK

  • 语言: java,HTML,JavaScript 与 SQL 查询语言

第四章 系统总体功能

4.1 系统功能结构

4.2 系统功能流程图

第五章 数据库设计

5.1 数据库定义

数据库名为:db,登录用户名为sa,口令默认为********。该登录用户的服务器脚色是“sysadmin”,具有数据库db的任何权限。

5.2 数据库表

下面数据表中,标记为“*”的是主键,标记为“#”的为外键。其它的缩写为:VC:varchar、NC:nchar、NVC:nvarchar。

表1、操作人员 usertab

字段名称 类型大小 说明 举例
1 uid VC(20) × 操作者帐号 4-20位,数字字母
2 upwd NVC(20) × 操作者姓名 2-10位字符或汉字

“系统管理”用户可以增改操作人员,授予操作权限,以及全部的维护与浏览权限。

表2、酒店房间 room

字段名称 类型大小 说明 举例
1 roomNumber* Char(6) × 酒店房间编号 0001,0002
2 roomType# VC(32) × 酒店房间类型 单人间,双人间
3 price VC(32) × 酒店房间价格 200,300

酒店房间规定了房间号,类型,价格方便查找顾客需要的房间与剩余房间查询。

表3、酒店房间类型与价格 roomTypeAndPrice

字段名称 类型大小 说明 举例
1 roomType# VC(32) × 酒店房间类型 单人间,双人间
2 price Int × 酒店房间价格 200,300

方便查看酒店类型与价格。

表4、顾客信息表 customers

字段名称 类型大小 说明 举例
1 customerIDCard* char(18) × 顾客身份证号码 18位身份证号
2 customerGender Char(4) × 顾客性别 女,男
3 customerName VC(16) × 顾客姓名 *
4 customerPhoneNumber char(11) × 顾客手机号码 11位手机号码
5 totalAmount int 消费金额 200,300

记录顾客信息,并且及时更新。

表5、入住信息表 orders

字段名称 类型大小 说明 举例
1 orderNumber* int × 订单号 1,2,3
2 orderStatus VC(50) × 订单状态 预订中,已入住,已退房
3 customerIDCard# char(18) × 顾客身份证号 18位身份证号
4 roomNumber# char(6) × 酒店房间编号 0001,0002
5 roomType# VC(32) × 酒店房间类型 单人间,双人间
6 checkInTime date × 入住时间 2019-7-1
7 checkOutTime date × 离店时间 2019-7-2
8 totalMoney int × 需付金额 200
9 orderTime date × 预定时间 2019-7-1

记录房间状态。方便预定,退订和更改房间状态。

表6、房间延期表 timeExtension

字段名称 类型大小 说明 举例
1 operatingID* int × 操作记录号 1,2,3
2 orderNumber int × 操作的订单号 1,2,3
3 oldExpiryDate date × 住房原到期日期 2019-7-1
4 newExpiryDate date × 住房新到期日期 2017-7-2
5 addMoney int × 需要添加的金额 200,300

方便操作预定房间过程中出现的问题。

5.3 视图的定义

视图命名格式为View_***。特别指出,在一个视图B依存另个视图A时,必须先创建视图A,然后才创建视图B。此时,在试图命名时必须按视图名称A排序在前。例如:

序号 视图名称 说明
1 View_incomeView 收入视图
2 View_roomInfoView 房间视图
3 View_orderview 订单视图

第六章 各功能模块

6.1 系统总体结构设计

如下图所示,整个酒店管理系统包含三个模块:

  • bean模块:用户可以使用JavaBean将功能、处理、值、数据库访问和其他任何可以用java代码创造的对象进行打包,并且其他的开发者可以通过内部的JSP页面、Servlet、其他JavaBean、applet程序或者应用来使用这些对象。用户可以认为JavaBean提供了一种随时随地的复制和粘贴的功能,而不用关心任何改变

  • servlet模块:客户端发送请求至服务器;服务器启动并调用 Servlet,Servlet 根据客户端请求生成响应内容并将其传给服务器;服务器将响应返回客户端

  • WebRoot模块:是JAVA WEB项目中用来存放JSP,JS,CSS,图片等文件的,其中webroot/WEB-INF用来存放SRC编译好的相关的文件,和需要被保护的JSP文件等

项目结构1 项目结构2

6.2 软件界面设计

6.2.1 登录界面设计

  1. String username = request.getParameter("user");
  2. String upwd = request.getParameter("pwd");
  3. PrintWriter out = response.getWriter();
  4. Connection conn;
  5. try {
  6. Class.forName(driverName);
  7. try{
  8. conn = DriverManager.getConnection(url,user,pwd);
  9. String sql = "select *from usertab where uid = ?";
  10. PreparedStatement ps = conn.prepareStatement(sql);
  11. ps.setString(1, username);
  12. ResultSet rs = ps.executeQuery();
  13. String mima = "";
  14. while(rs.next()){
  15. mima = rs.getString("upwd").trim();
  16. }
  17. if(mima.equals(upwd)){
  18. HttpSession session = request.getSession();
  19. session.setAttribute("un", username);
  20. out.println("true");

通过数据库中储存的管理员信息,进行验证并且登录进入酒店管理系统。

6.2.2 用户预定界面设计

  1. String sql_customer = "insert customers values('"+customerIDCard+"','"+customerGender+"','"+customerName+"','"+customerPhoneNumber+"',"+price+")";
  2. String sql_orders = "insert orders values('"+orderStatus+"','"+customerIDCard+"','"+roomNumber+"','"+roomType+"','"+checkinTime+"','"+checkOutTime+"',"+price+",'"+orderTime+"')";
  3. try {
  4. Class.forName(driverName);
  5. try {
  6. conn = DriverManager.getConnection(url,user,pwd);
  7. Statement st = conn.createStatement();
  8. st.executeUpdate(sql_customer);
  9. st.executeUpdate(sql_orders);
  10. System.out.print("插入成功!");

利用数据库SQL语句进行客户的插入,并且将数据储存到数据库中。

6.2.3 用户入住界面设计

  1. String sql_leave = "update orders set orderStatus = '已入住' where orders.customerIDCard = '"+customerIDCard+"'";
  2. String sql_query = "select * from orders where customerIDCard = '"+customerIDCard+"'";
  3. Connection conn = null;
  4. try {
  5. Class.forName(driverName);
  6. try {
  7. conn = DriverManager.getConnection(url,user,pwd);
  8. Statement st = conn.createStatement();
  9. st.execute(sql_leave);
  10. ResultSet rs = st.executeQuery(sql_query);
  11. List<Map> list = new ArrayList<Map>();
  12. while(rs.next()){
  13. String orderNumber = rs.getString("orderNumber");
  14. String orderStatus = rs.getString("orderStatus");
  15. customerIDCard = rs.getString("customerIDCard");
  16. String roomNumber = rs.getString("roomNumber");
  17. String checkInTime = rs.getString("checkInTime");
  18. String checkOutTime = rs.getString("checkOutTime");
  19. String totalMoney = rs.getString("totalMoney");
  20. String orderTime = rs.getString("orderTime");
  21. Map e = new HashMap();
  22. e.put("orderNumber", orderNumber);
  23. e.put("orderStatus",orderStatus);
  24. e.put("customerIDCard", customerIDCard);
  25. e.put("roomNumber",roomNumber);
  26. e.put("checkInTime",checkInTime);
  27. e.put("checkOutTime",checkOutTime);
  28. e.put("totalMoney",totalMoney);
  29. e.put("orderTime",orderTime);
  30. list.add(e);

通过SQL语句将预定的顾客状态改为入住,并储存到数据库中。

6.2.4 用户续费界面设计

  1. String addDay = request.getParameter("addDay");
  2. String sql = "declare @addMoney int,@orderNumber int,@oldExpiryTime date,@newExpiryTime date exec dbo.getPrice '"+roomNumber+"',"+addDay+",@addMoney output,@orderNumber output,@oldExpiryTime output,@newExpiryTime output select @addMoney as addMoney,@orderNumber as orderNumber,@oldExpiryTime as oldExpiryTime,@newExpiryTime as newExpiryTime";
  3. Connection conn = null;
  4. try {
  5. Class.forName(driverName);
  6. try {
  7. conn = DriverManager.getConnection(url,user,pwd);
  8. Statement st = conn.createStatement();
  9. ResultSet rs = st.executeQuery(sql);
  10. List<Map> list = new ArrayList<Map>();
  11. while(rs.next()){
  12. String addMoney = rs.getString("addMoney");
  13. String orderNumber = rs.getString("orderNumber");
  14. String oldExpiryTime = rs.getString("oldExpiryTime");
  15. String newExpiryTime = rs.getString("newExpiryTime");
  16. Map e = new HashMap();
  17. e.put("addMoney", addMoney);
  18. e.put("orderNumber",orderNumber);
  19. e.put("oldExpiryTime",oldExpiryTime);
  20. e.put("newExpiryTime",newExpiryTime);
  21. list.add(e);
  22. }

6.2.5 用户退房界面设计

  1. String sql_leave = "update orders set orderStatus = '已退房' where orders.customerIDCard = '"+customerIDCard+"'";
  2. String sql_query = "select * from orders where customerIDCard = '"+customerIDCard+"'";
  3. Connection conn = null;
  4. try {
  5. Class.forName(driverName);
  6. try {
  7. conn = DriverManager.getConnection(url,user,pwd);
  8. Statement st = conn.createStatement();
  9. st.execute(sql_leave);
  10. ResultSet rs = st.executeQuery(sql_query);
  11. List<Map> list = new ArrayList<Map>();
  12. while(rs.next()){
  13. String orderNumber = rs.getString("orderNumber");
  14. String orderStatus = rs.getString("orderStatus");
  15. customerIDCard = rs.getString("customerIDCard");
  16. String roomNumber = rs.getString("roomNumber");
  17. String checkInTime = rs.getString("checkInTime");
  18. String checkOutTime = rs.getString("checkOutTime");
  19. String totalMoney = rs.getString("totalMoney");
  20. String orderTime = rs.getString("orderTime");
  21. Map e = new HashMap();
  22. e.put("orderNumber", orderNumber);
  23. e.put("orderStatus",orderStatus);
  24. e.put("customerIDCard", customerIDCard);
  25. e.put("roomNumber",roomNumber);
  26. e.put("checkInTime",checkInTime);
  27. e.put("checkOutTime",checkOutTime);
  28. e.put("totalMoney",totalMoney);
  29. e.put("orderTime",orderTime);
  30. list.add(e);
  31. }

6.2.6 收入视图界面设计

6.2.7 订单视图界面设计

6.2.8 房间视图界面设计

6.2.9 续费视图界面设计

各个视图

  1. String sql_order = "select * from orderView";//订单视图查询语句
  2. String sql_roomInfoView = "select * from roomInfoView";//房间信息视图
  3. String sql_timeExtension = "select * from timeExtensionOrdersView";//续费订单视图

6.2.10 其他各小功能界面设计

6.3 软件系统编程

在编程中,采用的一种Javaweb体系,主要分为3大层次结构,但由于编写方便,本设计在编程另外增加了一个工具层,用于给其他各层提供编写方便,如图4-16为系统编程的3大层次,底层为3大模块,有数据库直接操作,文件直接操作,网络接口直接操作;中层为后台操作层,主要做数据处理和上下层的连接工作,软件工作的核心在于中层的后台操作,界面层主要通过后台提供的数据接口来绘制各种窗口及动画过程。最顶层为界面层,分为5大主界面编程。为了达到软件美观的效果,本设计用到了一些图片美化软件,这些都是很细致的活,美化的图片必需与软件编程时的控件相结合,有时还真是一个个像素点的修正,可以在上面的各图中看出背景与控件的适应性都还不错。

系统统计总共有60多个java程序,总代码量过万,此次的酒店管理系统编程运用了很多Javaweb新知识,例如servlet,数据库批处理技术,图片缓存技术,等等。

第七章 调试与结果

7.1 初始化系统登录

尽管在软件工程科学的方法指导下完成了系统的设计与开发,但是由于软件系统是一个关系紧密且复杂的逻辑系统,因此仅凭严格的设计以及严格的开发流程并不能够完全确保系统不会出现任何缺陷。不存在缺陷的系统是不可能存在的,但是通过软件测试,我们能够尽可能多的在软件系统投入使用前发现目前存在的缺陷并对缺陷进行修复。软件测试与维护这个生命周期是软件生命周期中最长的亦是最重要的,这不仅保证了系统的稳定性以及满足预定的需求,也能够使得软件生命得到延续。因此,通过软件测试对系统进行评估,找到其中隐藏的缺陷并对其加以修复是很有必要的。

软件测试是为了完善系统质量的技术,通过翻阅书籍,发现大多对软件测试的定义为使用人工或自动的手段来运行某个系统的过程,其目的在于检验它是否满足规定的需求,或是弄清预期结果与实际结果的区别。

系统登录时,输入数据库中录入的管理人员账号及密码;

登录成功。

7.2 住房查询

前提:管理人员已经登录。

测试步骤 预期结果 实际结果 是否通过
1.进入酒店管理页面 2.进行输入身份证号码入住 显示入住成功的信息 显示该身份证号定的房间是已入住状态 通过
1. 进入酒店管理页面 2. 选择“订房” 显示该客户订房成功 数据库中储存该客户 通过
1. 进入酒店管理页面 2. 选择“退订” 显示该客户退房成功 数据库中显示该客户已退订 通过

参考文献

  • [1] 郑人杰,殷人昆,陶永雷.实用软件工程(第二版)[M].北京:清华大学出版社.1997.

  • [2] 萨师煊,王珊.数据库系统概论[M].高等教育出版社,2000.7:21-347.

  • [3] (美)Bruce Eckel、陈昊鹏、饶若楠等.Java编程思想第3版[M].北京:机械工业出版社.2005.

  • [4]候炳辉,刘世峰.信息管理系统[J].信息管理系统分析,2004.5:254-562.

  • [5] 彭伟民.基于需求的酒店管理系统的建模与实现.微机发展,2005.10.1-6.

  • [6] 薛华成.管理信息系统[M].清华大学出版社,1996.7.2-5.

  • [7] 《java核心技术》机械工业出版社(美国)Cay Shorstmann,Gary Cornell著由 叶乃文 翻译。

  • [8] 张亚东.酒店企业销售管理信息系统的设计与实现[J].管理信息系统, 2000.9:45249.

  • [9] 《java 学习笔记 JDK6.0》清华大学出版社(台湾)良格葛编写。

上传的附件 cloud_download 酒店房间管理系统.zip ( 9.94mb, 66次下载 )

发送私信

2
文章数
0
评论数
最近文章
eject