配色: 字号:
计算机系毕业设计酒店客房管理系统论文
2012-09-21 | 阅:  转:  |  分享 
  


1

摘要

摘要:本课题以一个面向酒店的酒店客房管理的情况为背景,讨论了基于

ASP.NET与SQLServer2000的酒店客房管理系统的开发。建立酒店客房管理信息系

统,采用计算机对客房信息进行管理,可以进一步提高酒店的经济效益和现代化水平,

帮助酒店工作人员提高工作效率,实现客房信息管理工作流程的系统化、规范化和自

动化。

在分析了我国酒店客房管理系统的现状及其发展趋势后,对酒店客房管理系统进行了

需求分析,并在此基础上详细讲述了酒店客房管理系统的功能设计以及数据库设计。最后

创建了基于浏览器/服务器(B/S)体系结构的应用系统,结合系统开发阶段和调试阶段发

现的问题,提出了系统需要完善的地方,总结了开发此网站所取得的经验和体会。

关键词:酒店客房管理系统;B/S结构;ASP.NET;SQLServe

ABSTRACT

Abstract:Thetopicstoahotelroomforthehotelmanagementonthe

background,discussedbasedonASP.NETandSQLServer2000hotelrooms

managementsystemdevelopment.Hotelroommanagementinformationsystem

established,theuseofcomputerroominformationmanagement,canfurther

improvetheeconomicefficiencyandmodernizationofthehotel,thehotelstaffto

helpimproveworkefficiency,workflowtoachieveroomsystematicinformation

management,standardizationandautomation.

Intheanalysisofhotelroomsmanagementsystemofpresentsituationand

developmenttrends,forhotelroomsmanagementsystemneedsanalysis,andon

thisbasis,describedindetailthefunctionofhotelroomsmanagementsystem

designanddatabasedesign.Lastcreatedbasedonbrowser/server(B/S)

architecture,applications,systemintegrationanddebuggingphaseofdevelopment

stageidentifiedproblem,asystemneedsimprovement,summarizedthe

developmentofthesiteexperienceandunderstandinggained.

Keywords:HotelRoomManagementSystem;B/Sstructure;ASP.NET;SQLServer

2

目录

一、绪言...........................................................................................................................................1

(一)课题来源..........................................................................................................................1

(二)课题设计的主要内容和意义..............................................................................................1

(三)开发工具的选择及关键技术.............................................................................................................1

1.ASP.NET................................................................................................................................1

2.SQLServer2000.................................................................2

3.浏览器/服务器(B/S)体系结构.....................................................2

(四)本文所做工作.......................................................................................................................................3

二、系统分析及功能设计...................................................................................................................4

(一)需求分析..........................................................................................................................4

(二)系统体系结构...................................................................................................................4

(三)系统数据流程图................................................................................................................................5

(四)系统功能分析...................................................................................................................................5

(五)系统功能模块设计...........................................................................................................................6

三、数据库设计..................................................................................................................................................8

(一)数据库设计——ER图设计.............................................................................................................8

(二)数据库设计——表格设计.............................................................................................................9

四、系统应用程序设计....................................................................................................................................13

(一)应用程序结构.................................................................................................................................13

(二)登陆页面.........................................................................................................................................13

(三)基础设置模块.................................................................................................................................15

(四)业务管理模块.................................................................................................................................20

(五)权限管理模块.................................................................................................................................23

(六)退出系统.........................................................................................................................................24

五、结论与展望..............................................................................................................................................26

(一)结论...................................................................................................................................................26

(二)展望...................................................................................................................................................26

参考文献..........................................................................................................................................27

3

第一章第一章第一章第一章绪言绪言绪言绪言

1.1课题来源课题来源课题来源课题来源

近年来,随着酒店业竞争的加剧,酒店之间客源的争夺越来越激烈,利润空间也越来越小,为

了能在激烈竞争中生存,各酒店纷纷把目光投向酒店智能化、信息化。利用计算机支持酒店高效率

完成管理的日常事务,是适应现代酒店制度要求、推动酒店管理走向科学化、规范化的必要条件;

计算机进行管理不仅能够保证各信息准确无误、快速输出,而且还可以利用计算机对有关的各种信

息进行统计,服务于各部门其他方面的核算和处理,同时计算机具有手工管理所无法比拟的优点.。

先进的酒店管理系统,不但可以有效地管理大量的信息,而且可以引进先进的管理理念,提高服务

质量、工作效率,完善酒店内部管理体制,提高酒店决策水平,提高酒店的管理效益及经济效益,

从而提高酒店的竞争力。因此,先进的管理信息系统已成为酒店管理的核心之一【1】。

本课题以一个面向酒店的酒店客房管理的情况为背景,开发一个实用的酒店客房管理系统。该

系统能为用户提供更加迅速、更加高效的服务,减免手工处理的繁琐与误差,及时、准确地反映该

酒店客房的预定情况、入住情况,从而提高酒店运转水平,使酒店获得更好的经济效益。

1.2课题设计的主要内容和意义课题设计的主要内容和意义课题设计的主要内容和意义课题设计的主要内容和意义

建立本管理系统的总体任务是实现酒店各种信息的系统化、规范化和自动化,提高酒店的管理

水平,帮助酒店更好的运营。本课题设计的主要内容可以概括为以下几点:

(1)分析当前酒店系统的需求以及应用。

(2)建立基于关系数据库的共享数据库,以便于数据的查询、添加、删除、修改。

(3)完成系统总体设计。后台实现对客房的添加、删除、查询等管理,前台主要实现对客房

信息的查询。

本课题设计的主要意义可以概括为以下几点:

(1)保证酒店客房信息准确无误、快速输出。

(2)方便酒店管理人员对客房数据的添加、删除、查询等管理。

(3)成本低、易于管理而有能够满足中小型酒店的需要。

1.3开发工具的选择及关键技术开发工具的选择及关键技术开发工具的选择及关键技术开发工具的选择及关键技术

1.3.1ASP.NET

微软自20世纪90年代推出ASP技术以来,就一直在Web服务器端的技术领域处于领先地位。

当然ASP本身存在一些先天性不足,比如使用VBScript脚本型语言、逻辑代码与表现代码混合在

一个文件当中等,这些对ASP的发展都有一定得阻碍。在2002年,微软发布了.NET战略,历经多

年的发展,.NET战略日渐成熟。而其中的ASP.NET技术,既延续了ASP本身的优势,也弥补了其

自身的不足,从而赢得了越来越多开发人员的喜爱。ASP.NET的版本历经1.0、1.1,到2.0,已经

越来越成熟。尤其是ASP.NET2.0中的母版页、登录空间、提供者模式等都是非常大的创新,可以

在很短的时间内创建出一个功能齐备的网站。作为与之配套的开发工具,VisualStudio也在.NET

推出后,得到了极大的发展。从当初的VisualStudio.NET2002、VisualStudio.NET2003,

4

到VisualStudio.NET2005,功能越来越丰富,使用却越来越简单。如果能够熟练使用这套工具,

可以使得编程工作达到事半功倍的效果。

ASP.NET是微软公司构建高交互性、高扩缩性网站的旗舰技术。许多在因特网上提供服务的大

型网站都构建于ASP.NETFramework之上,如戴尔网站(www.dell.com)、微软公司自己的网站

(www.microsoft.com)。

ASP.NET2.0Framework引入了50多个全新的控件。较以前的版本,ASP.NET2.0有许多新特性:

新的声明式数据访问模型——利用新的数据访问控件,可以不用写一行代码就能显示和编辑一

组数据库数据。

母版页和主题——使用母版页和主题,可以轻松地为网站中的所有页面创建统一的样式和布

局。

MembershipAPI——使用MembershipAPI,可以不写任何代码就构建将用户信息保存在微软

SQLServer数据库表或活动目录(ActiveDirectory)的整套用户注册系统。

Ajax——使用Ajax技术,可以在不需要将整个页面回传到Web服务器端的情况下更新页面的

内容。【2】

本系统中使用的后台代码使用C#高级编程语言。C#是一种简单、现代、面向对象且类型安全的

编程语言。C#起源于C语言家族,因此,对于C、C++和Java程序员,可以很快熟悉这种新的

语言。C#已经分别由ECMAInternational和ISO/IEC组织接受并确立了标准,它们分别是

ECMA-334标准和ISO/IEC23270标准。Microsoft用于.NETFramework的C#编译器就是根据

这两个标准实现的。

C#是面向对象的语言,然而C#进一步提供了对面向组件(component-oriented)编程的

支持。现代软件设计日益依赖于自包含和自描述功能包形式的软件组件。这种组件的关键在于,它

们通过属性(property)、方法(method)和事件(event)来提供编程模型;它们具有提供了关于

组件的声明性信息的属性(attribute);同时,它们还编入了自己的文档。C#提供的语言构造直

接支持这些概念,这使得C#语言自然而然成为创建和使用软件组件之选。

C#的一些特性为构造强健和持久的应用程序提供了支持:垃圾回收(Garbagecollection)将

自动回收不再使用的对象所占用的内存;异常处理(exceptionhandling)提供了结构化和可扩展

的错误检测和恢复方法;类型安全(type-safe)的语言设计则避免了引用未初始化的变量、数组

索引超出边界或执行未经检查的类型强制转换等情形。

1.3.2SQLServer2000

SQLServer2000是微软公司开发的一个具有客户/服务器体系结构的关系型数据库管理系统

(RDBMS),它使用Transact-SQL(经过微软扩展的数据库查询语言——SQL)在客户机和SQLServer

服务器之间传递请求和响应,它的工作环境为MicrosoftWindowsNT或MicrosoftWindows98/

2000/XP。SQLServer具有分布式数据库和数据仓库功能,支持客户机/服务器结构,并能进行

分布式事物处理和联机分析处理。SQLServer具有强大的数据库管理功能,它提供了丰富的管理

工具以支持数据的安全性管理、完整性管理和作业管理。SQLServer还具有强大的网络功能,支

持发布Web页面和接收电子邮件。[3]

1.3.3浏览器/服务器(B/S)体系结构

B/S结构,即Browser/Server(浏览器/服务器)结构,就是只安装维护一个服务器(Server),

而客户端采用浏览器(Browse)运行软件。它是随着Internet技术的兴起,对C/S结构的一种变化

和改进。主要利用了不断成熟的WWW浏览器技术,结合多种Script语言(VBScript、JavaScript…)

和ActiveX技术,是一种全新的软件系统构造技术。

在B/S体系结构系统中,用户通过浏览器向分布在网络上的许多服务器发出请求,服务器对浏

览器的请求进行处理,将用户所需信息返回到浏览器。而其余如数据请求、加工、结果返回以及动

5

态网页生成,对数据库的访问和应用程序的执行等工作全部由WebServer完成。随着Windows将浏

览器技术植入操作系统内部,这种结构已成为当今应用软件的首选体系结构。显然B/S结构应用程

序相对于传统的C/S结构应用程序是一个非常大的进步。B/S结构的主要特点是分布性强、维护

方便、开发简单且共享性强、总体拥有成本低。【4】

1.4本文所做工作本文所做工作本文所做工作本文所做工作

绪言部分介绍了本系统的课题来源以及对开发工具的选择。

第二章对酒店管理系统的需求进行分析。

第三章介绍酒店管理系统数据库的设计。

第四章是本文的主体,按照软件工程的要求,完成对整个系统的设计。

第五章利用ASP.Net和SQLServer进行了具体的应用程序设计。

总结部分介绍了设计体会和编程体会,并指出了系统设计中的不足和改进的方向。

6

第二章第二章第二章第二章系统分析及功能设计系统分析及功能设计系统分析及功能设计系统分析及功能设计

2.1需求分析需求分析需求分析需求分析

随着旅游业的发展,酒店、餐饮娱乐行业日趋发达,引入全方位的电脑服务和电脑管理日益流行。

同时,酒店和餐厅娱乐业引入电脑服务和管理也取得了优良的经济效益和社会效益。传统的酒店管

理往往令管理者花大量的时间来处理顾客投诉,例如错误查询、烦琐的登记和结账手续、旅客费用

计算错误、空余客房资料不能及时提供等,从而影响出租率,使的管理人员不得不集中精力规划管

理运行策略和进行决策。以上问题可通过电脑系统辅助解决,酒店管理的电脑化,不仅是体现酒店

现代化形象的一个重要标志,而且对于提高员工工作效率,加速资金周转、降低各项成本及改善

服务质量都有十分积极的作用。当今的酒店、宾馆等经营场所大都是集餐饮、住宿、娱乐为一体性

服务场所。酒店管理系统就是针对酒店的大量业务处理实际的,运用计算机进行全面现代化管理,

以实现用户方便的查询和客房管理。

需求分析是数据库系统开发的第一步也是最重要的一步。软件开发的目的是为了满足客户的需

求,因此,客户的需求是否正确理解成了项目成败的关键。如果不清楚自己要实现的程序的功能,

或者不清楚客户所需要的功能,那么工作将会失去方向,或者走了弯路。需求分析就是描述系统的

需求。分析的根本目的是在开发者和提出需求的用户之间建立一种理解和沟通的机制,因此经过调

查研究,酒店客房管理系统的需求部分如下:

(1).该客房管理系统采用B/S体系机构,Web程序以及数据库运行在一台Windows2003服

务器上。客户端通过浏览器访问该酒店客房管理系统。

(2).管理人员系统能够对客房类型、客房价格、客房信息、系统参数等项目进行添加、修改、

删除等操作。

(3).前台人员可以使用该系统完成对客房信息的查询,并能够进行入住和退房操作。

(4).系统应该有很好的可扩展性,以便酒店能够根据实际情况添加新的功能。【5】

总之,使用该酒店客房管理系统,将会有以下好处:

(1).电脑收银,打印帐单:快速准确,减少宾客等待时间,并可杜绝收银过程中的舞弊现象。

(2).高效的客房管理:能有效的提高房率,增加营业收入。

(3).提高决策依据:管理者可以随时了解经营情况,以制定相应的经营方针。

(4).减轻员工的工作负担:从而使员工把更多的精力放在提高为宾客服务的质量上。

(5).简单、方便地保存和查询历史资料。

(6).树立良好的酒店形象。

2.2系统体系结构系统体系结构系统体系结构系统体系结构

根据前面一节的需求分析,绘制系统的体系结构图如下所示:该客房管理系统采用B/S体系结

构,Web应用程序和SQLServer2000运行在服务器上,客户端使用浏览器(如IE、Firefox等)

通过Internet或Intranet就可以访问该系统。

7

服务器

客户端客户端客户端

图2.1B/S体系结构

2.3系统数据流程图系统数据流程图系统数据流程图系统数据流程图

在仔细调查酒店客房管理过程的基础上,设计出本系统所处理的数据流程如图2.2所示:

图2.2数据流程图

客房类型及标准设置

客房基本信息录入

客房信息管理

客房信息返回退房信息

入住信息录入

客房登记

Web应用程序

SQLServer2000

浏览器(IE,

8

2.4系统功能分析

在经过前一阶段的分析之后,现在所要做的是要准确定义系统必须做什么以及系统必须具备的

功能。系统分析是决定管理信息系统“干什么”的问题,而设计阶段则是解决“怎么干”的问题。

它从管理信息系统的目标出发,建立系统的总体模型,确定系统的总体结构,规划系统的规模,建

立各个基础部分,并说明它在整个系统中的作用及相互关系。

系统功能分析是在系统开发的总体任务的基础上完成的。本酒店客房管理系统需要完成的主要

功能有:

有关客房标准的制定、标准信息的输入,包括类型名称、价格等。如单人间就是一个类型名称,

单人间的价格为100元,标间也是一个类型名称,其价格为160元等。

客房标准信息的修改、查询等。

客房基本信息的输入,包括房间号、客房类型、床位数、状态、描述等。

客房基本信息的查询、修改,包括房间号、客房类型、床位数、状态、描述等。

入住信息的输入,包括入住房间号、客户姓名、证件号码、入住人数、客房标准价、押金、折

扣、价格、入住时间、退房时间、归档、备注等。

入住信息的修改和查询,包括入住房间号、客户姓名、证件号码、入住人数、客房标准价、押

金、折扣、价格、入住时间、退房时间、归档、备注等的修改和查询。

权限管理的设置,设置用户角色。

2.5系统功能模块设计系统功能模块设计系统功能模块设计系统功能模块设计

系统主要分三个模块,

第一个是客房的基础设置模块,包括客房类型设置和客房信息设置。客房类型设置主要是新增

客房类型、修改客房类型、删除客房类型以及搜索客房类型,用于设置本酒店客房的分类信息,内

容包括客房类型名称、房价、备注等。客房信息设置主要是新增客房信息、修改客房信息、删除客

房信息以及搜索客房信息,用于设置客房的初始信息,包括房间号、客房类型、床位数、状态、客

房描述等。它的功能模块如图2.3所示:

基础设置

客房类型设置客房信息设置

新增

客房

类型

修改

客房

类型

删除

客房

类型

新增

客房

信息

修改

客房

信息

删除

客房

信息

搜索

客房

信息

9

图2.3基础设置功能模块图

第二个模块是客房业务管理模块,它包括入住管理、退房管理。入住管理主要是新增入住信息以及

搜索入住信息,用于管理客户的入住业务,包括客房类型、入住时间、离店时间、入住人数、客房、

编号、客房价格、入住价格、折扣、折扣原因、预收款、预订人等。退房主要是用于管理客户结帐

退房的相关事项。它的功能模块如图2.4所示:

图2.4业务管理功能模块图

第三个模块是用户及权限管理,主要设置用户角色,用户角色有两种,分别是前台和管理员。前台

主要负责业务管理模块,管理员负责基础设置以及权限管理。

对上述功能进行集中、分块分析,按照结构化程序设计的要求,得到如图2.5示的系统功能模

块。

业务管理

入住管理退房管理

新增

入住

记录

修改

入住

记录

删除

入住

记录





退



酒店客房管理系统

基础设置业务管理权限管理

客房

类型

设置

客房

信息

设置

入住

管理

退房

管理

10

图2.5系统功能模块图

第三章第三章第三章第三章数据库设计数据库设计数据库设计数据库设计

3.1数据库设计数据库设计数据库设计数据库设计---ER图设计图设计图设计图设计

在信息世界中,信息从客观事物出发流经数据库,通过决策机构最后又回到客观世界,信息

的这一循环经历了三个领域:信息世界,数据世界,现实世界。现实世界的事物反映到人的头脑中,

人的大脑对它有个认识过程,经过分析(选择、命名、分类等)进入信息世界。这些信息再进一步

加工、编码,然后进数据世界,而软件系统的开发工作需要考虑这两个方面的问题,也就是要考虑

系统开发所需要的数据,以及如何对这些数据进行操作。这两个问题贯穿了整个软件系统的开发过

程,这也就是数据库的设计问题,软件设计的一个核心。

在系统设计的开始,我首先考虑的是如何用数据模型来反映数据库的结构与语义,以对现实

世界进行抽象。目前广泛使用的数据模型可分为两种类型,一种是独立于计算机系统的“概念数据

模型”,如“实体联系模型”;另一种是直接面向数据库逻辑结构的“结构数据模型”。在本系统中

我采用“实体联系模型”(ER模型)来描述数据库的结构与语义,以对现实世界进行第一次抽象。

ER模型直接从现实世界抽象出实体类型及实体间联系,然后用ER图来表示数据模型。它有两个明

显的优点:接近于人的思维,容易理解;与计算机无关,用户容易接受。但ER模型只能说明实体

间语义的联系,不能进一步说明详细的数据结构,它只是数据库设计的第一步。【6】

ER图是直观表示概念模型的工具,关于它的成分在第二章以做过介绍,在此就不赘述。本系

统为客房管理数据库,主要管理客房的信息。建立的E-R图见图3.1。

接下图

类型编号类型价格

类型名称

客房类型备注

客房

客房类型床位数

房间号客房状态

客人数描述

11

图接下页

接上页

图3.1客房管理系统E-R图

上面设计的客房管理系统部分E-R图,在下面的图3.2中,将所有表的关系图绘制出来,从而可

以了解各个数据表之间的关系。

入住登记

房间号

客户姓名记录编码

备注

证件号码

入住时间

入住人数

标准价

归档

退房时间

价格折扣

押金

12

图3.2系统数据库图

3.2数据库设计数据库设计数据库设计数据库设计---表格设计表格设计表格设计表格设计

在完成系统的ER图之后,需要将ER模型转化为关系模型,也就是说,要设计出数据库所需要的

表格。在这里,我选用的是关系数据库。因为关系数据库中的二维表格可以很清楚地描述数据之间的联

系。下面列举了几个数据库表格。

客房类型表(见表3.1)存储客房类型信息,房间类型有单人间、标准间、套间等。每一个客房类

型有类型编号,名称,价格等属性。其中“类型编号”是主键。

表3.1客房类型表

列名数据类型长度是否允许空

类型编号(PK)int4否

类型名称varchar50否

类型价格money8是

备注varchar100是

客房表存有客房的基本信息。客房编号是标识号,每个客房都有一个唯一的标识号作为主键。类型

编号是一个外键,通过这个外键可以找到该房间的类型信息。在下表中“PK”代表主键,“FK”代表外

键,“int”标识整形,“varchar”表示长字符型,长度“10”表示10个字节,“50”表示50个字节,

详见表3.2。

表3.2客房表

列名数据类型长度是否允许空

客房编号(PK)Int10否

房间号varchar50允许

类型编号(FK)int4否

13

床位数int4是

客人数int4是

状态varchar50否

描述varchar100是

入住记录表存储客房的入住信息,包括客户何时入住、入住的房间、入住人数、折扣等信息,如果

客户已经退房,那么还有退房时间。

下表3.3入住记录表中明确标明各项信息及列名的属性,在设置数据库表信息的时候应严格遵循各

属性条件。

表3.3入住记录表

列名数据类型长度是否允许空

记录编号(PK)Int10否

房间号varchar50允许

客户姓名varchar50否

证件号码varchar50否

入住人数int4是

标准价money8是

押金money8是

折扣varchar4是

折扣价money8是

入住时间datetime8是

退房时间datetime8是

14

归档bit1是

用户表(见表3.4)用于存储用户的信息,包括用户登陆名称,密码等。“用户编号”是主键,是

用户的唯一标识。

表3.4用户表

列名数据类型长度是否允许空

用户编号(PK)Int4否

用户名称varchar50否

密码varchar50否

角色编号(FK)Int4否

角色表存储角色类型的信息,包括角色编号,角色名称两项信息,其中,“角色编号”是外键,

通过角色编号可以从角色表中找到角色名称。

详细信息见下表3.5

表3.5角色表

列名数据类型长度是否允许空

角色编号(PK)Int4否

角色名称varchar50否

15

第四章第四章第四章第四章系统应用设计系统应用设计系统应用设计系统应用设计

4.1.应用程序结构应用程序结构应用程序结构应用程序结构

酒店客房管理系统的Web程序使用VisualStudio2005创建,后台代码使用当前非常流行

的C#语言。

在程序的根目录下有一个名为MasterPage.master的文件,该文件为母版页文件,在设计网

站时,使用母版页可以使多个页面共享相同的内容,还可以创建通用的页面布局。如图所示在母版

页中主要设置了三个部分,页面头部、左侧引导菜单、页面主体。页面顶部主要是显示酒店名称以

及酒店广告图片等。页面左侧引导菜单可以显示一些链接,而页面主体部分可以根据不同的页面显

16

示不同的信息。其他页面可以继承自该母版页面,这样就不需要每个页面都设置页面头部,只需要

在页面主体部分设置自己的显示内容即可,如果需要修改一下头部的广告图片,只需要在母版页中

修改即可,不需要去修改每个页面,提高了代码利用率,使网站的维护、扩展和修改工作变得容易。

图4.1母版页面布局

程序中用到的图片放置在Images文件夹中。页面样式文件(CSS文件)存放在Styles文件

夹下。

程序中的大部分页面文件放置在Views文件夹下,每个页面文件包含一个.aspx文件和一

个.cs文件,html代码放置在.aspx文件中,而后台代码放置在.cs文件中,这样就可以实现视图

和业务逻辑的分离,便于代码维护与管理。

App_Code文件夹下存放的主要是一些数据处理的类,这些类的主要功能是完成与数据库的交

互,如获取客房类型信息、添加一个客房等。

在根目录下还有一个名为Web.config的文件,Web.config文件,它是一个XML文本文件,

它用来储存ASP.NETWeb应用程序的配置信息(如最常用的设置ASP.NETWeb应用程序的身份验

证方式),它可以出现在应用程序的每一个目录中。【7】

4.2.登陆页面

如图4.2所示为登陆页面,输入用户名和密码,如果通过认证就可以根据用户角色进入不同的页面。

如果用户角色是“管理员”,就显示基础设置模块;如果用户角色是“前台”,显示业务管理模块。

左侧空边

左侧引

导菜单

页面主体

17

图4.2登陆页面

当点击登陆按钮后,系统会执行以下代码对用户身份进行验证,其主要逻辑是:首先,检查

数据库中是否有该用户信息,如果有返回该用户的ID。然后根据这个ID取得用户的角色,并把这

些信息存到Cookies中。最后跳转到指定的页面。如果用户输入的用户名或密码是错误的,那么页

面不会跳转,而是显示一条错误提示。【8】

protectedvoidLoginButton_Click(objectsender,EventArgse)

{

intuserId=UserHandler.Login(txtUserName.Text,txtPassword.Text);

if(userId>0)

{

stringuserData=UserHandler.GetUserRole(userId);

if(userData!="")

{

FormsAuthenticationTicketticket=newFormsAuthenticationTicket(1,

userId.ToString(),DateTime.Now,DateTime.Now.AddMinutes(6000),false,userData);

//Encrypttheticket.

stringencTicket=FormsAuthentication.Encrypt(ticket);

Response.Cookies.Add(newHttpCookie(FormsAuthentication.FormsCookieName,

encTicket));

if(Request.QueryString["ReturnURL"]!=null&&

Request.QueryString["ReturnURL"]!="")

{

Response.Redirect(Request.QueryString["ReturnURL"]);

}

else

{

18

Response.Redirect("Views/Rooms.aspx");

}

}

}

else

{

lblLoginErr.Text="用户名或密码错误,请重新登录!";

}

}

4.3基础设置模块

基础设置模块主要设置客房基本信息和客房类型信息(www.ywjinde.com)。只有管理员才有

权进行这些设置。管理员进入系统后,点击左边引导栏中的“查看客房类型信息”可以进入到客

房类型信息页面;点击“查看客房信息”可以进入到客房信息页面。

如图4.3和4.4所示为客房类型设置页面。在这个页面,管理员可以添加新的客房类型,如

添加一个名为“总统套房”的客房类型;也可以修改或删除现有的客房类型。点击表格上方的“新

增客房类型”可以添加一个新的客房类型。点击每个表格中每个客房类型后面的“编辑”按钮,可

以修改当前的客房类型,出现图4.4的界面,在备注中可以添加补充信息说名,点更新保存信息。

点击“删除”按钮可以删除该类型。

图4.3酒店客房类型信息页

19

图4.4酒店客房类型编辑页面

查询客房类型的代码如下:

publicstaticListGetRoomTypes()

{

SQLsqlUtility=newSQL();

stringstrSql="selectfrom客房类型表";

DataSetds=sqlUtility.ExecuteDataSet(strSql);

if(ds!=null&&ds.Tables!=null&&ds.Tables[0].Rows.Count>0)

{

ListlstRoomTypes=newList();

foreach(DataRowdrinds.Tables[0].Rows)

{

RoomTyperoomType=newRoomType();

roomType.TypeID=Utilities.ToInt(dr["类型编号"]);

roomType.TypeName=Utilities.ToStr(dr["类型名称"]);

roomType.TypePrice=Utilities.ToDecimal(dr["类型价格"]);

roomType.TypeDesc=Utilities.ToStr(dr["备注"]);

lstRoomTypes.Add(roomType);

}

returnlstRoomTypes;

}

returnnull;

20

}

添加客房类型代码:

publicstaticvoidAddRoomType(inttypeId,stringtypeName,decimaltypePrice,stringdesc)

{

SQLsqlUtility=newSQL();

stringstrSql=string.Format("insertinto客房类型表(类型名称,类型价格,备注)

values(''{0}'',{1},''{2}'')",typeName,typePrice,desc);

sqlUtility.ExecuteNonQuery(strSql);

}

修改客房类型代码:

publicstaticvoidUpdateRoomType(inttypeId,stringtypeName,decimaltypePrice,stringdesc)

{

SQLsqlUtility=newSQL();

stringstrSql=string.Format("update客房类型表set类型名称=''{0}'',类型价格={1},备注

=''{2}''where类型编号={3}",typeName,typePrice,desc,typeId);

sqlUtility.ExecuteNonQuery(strSql);

}

删除客房类型代码:

publicstaticvoidDeleteRoomType(inttypeId)

{

SQLsqlUtility=newSQL();

stringstrSql=string.Format("deletefrom客房类型表where类型编号={0}",typeId);

sqlUtility.ExecuteNonQuery(strSql);

}【9】

如图4.4所示为客房基本信息设置页面。在这个页面,管理员可以查看所有的客房基本信息,也可

以通过房间类型、状态或房间号查询相应的客房。如果要编辑某一个客房信息,可以点击“编辑”按钮,

系统会跳转到编辑页面(www.bokone.com),如图4.6所示,在编辑页面,管理员可以修改客房的类型、

状态、床位数等信息。如果要删除一个客房,直接点击“删除”按钮即可。

在图4.5中,是酒店客房信息查询页面,在下拉列表框中选中要查询的信息,点击查询便可显示当

前符合查询条件的客房信息,重新查询时点重置即可。若查某个房间的信息,在房间号选项后的文本框

中填写要查询的房间号,点击查询即可。

21

图4.5酒店客房信息查询页面

图4.6客房编辑页面

查询客房信息的代码如下:

publicstaticListGetRooms(stringroomType,stringroomStatus)

{

SQLsqlUtility=newSQL();

stringstrSql="selecta.,b.from客房表aleftouterjoin客房类型表bona.类型编号=b.

22

类型编号";

stringstrWhere="where1=1";

if(!string.IsNullOrEmpty(roomType))

{

strWhere+="andb.类型名称=''"+roomType+"''";

}

if(!string.IsNullOrEmpty(roomStatus))

{

strWhere+="anda.状态=''"+roomStatus+"''";

}

strSql+=strWhere+"orderby房间号";

DataSetds=sqlUtility.ExecuteDataSet(strSql);

if(ds!=null&&ds.Tables!=null&&ds.Tables[0].Rows.Count>0)

{

ListlstRooms=newList();

foreach(DataRowdrinds.Tables[0].Rows)

{

Roomroom=GetRoomObject(dr);

if(room!=null)

{

lstRooms.Add(room);

}

}

returnlstRooms;

}

returnnull;

}

添加客房的代码如下:

publicstaticvoidAddRoom(stringroomNumber,inttypeId,intbedCount,stringroomStatus,

stringdesc)

{

SQLsqlUtility=newSQL();

stringstrSql=string.Format("insertinto客房表(房间号,类型编号,床位数,状态,描述)

values(''{0}'',{1},{2},''{3}'',''{4}'')",roomNumber,typeId,bedCount,roomStatus,desc);

sqlUtility.ExecuteNonQuery(strSql);

}

删除客房的代码如下:

publicstaticvoidDeleteRoom(intid)

{

SQLsqlUtility=newSQL();

stringstrSql=string.Format("deletefrom客房表where客房编号={0}",id);

23

sqlUtility.ExecuteNonQuery(strSql);

}

修改客房信息的代码如下:

publicstaticvoidUpdateRoom(intid,stringroomNumber,inttypeId,intbedCount,string

roomStatus,stringdesc)

{

SQLsqlUtility=newSQL();

stringstrSql=string.Format("update客房表set房间号=''{0}'',类型编号={1},床位数={2},状

态=''{3}'',描述=''{4}''where客房编号={5}",roomNumber,typeId,bedCount,roomStatus,desc,id);

sqlUtility.ExecuteNonQuery(strSql);

}

4.4业务管理模块

业务管理模块包块入住登记和退房管理。

入住登记代码如下:

publicstaticvoidCheckInRoom(intid,stringcustomerName,stringcustomerID,int

customerCount,decimalstandardPrice,decimaldeposite,stringdiscount,decimalprice,DateTimedt,

stringdesc)

{

SQLsqlUtility=newSQL();

stringdtStr=dt.ToString("yyyy-MM-ddHH:mm:ss");

stringstrSql=string.Format("update客房表set状态=''入住''whereID={0}",id);

sqlUtility.ExecuteNonQuery(strSql);

Roomroom=RoomHandler.GetRoomByID(id);

stringroomNum=room!=null?room.RoomNumber:"";

stringsqlInsert=string.Format(@"insertinto入住记录表(房间号,客户姓名,证件号码,入住人

数,标准价,押金,折扣,价格,入住时间,归档,备注)

values(''{0}'',''{1}'',''{2}'',{3},{4},{5},''{6}'',{7},''{8}'',''{9}'',''{10}'',''{11}'')",roomNum,customerName,customerID,

customerCount,standardPrice,deposite,discount,price,dtStr,"false",desc);

sqlUtility.ExecuteInsert(sqlInsert);

}

退房代码如下:

publicstaticvoidCheckOutRoom(intid,DateTimedt)

{

SQLsqlUtility=newSQL();

stringstrSql=string.Format("update客房表set状态=''空闲''whereID={0}",id);

sqlUtility.ExecuteNonQuery(strSql);

24

stringdtStr=dt.ToString("yyyy-MM-ddHH:mm:ss");

Roomroom=RoomHandler.GetRoomByID(id);

stringstrUpdate=string.Format("update入住记录表set退房时间=''{0}'',归档=''true''where

房间号=''{1}''and(归档=''false''or归档isnull)",dtStr,room.RoomNumber);

}

如图4.7所示。“前台”可以在该模块完成入住登记和退房操作。

点击左边引导栏中的“入住”可以进入到图4.8所示页面,该页面显示了所有的空闲房间,在每

个房间后面都有一个“入住”按钮,点击可以进入到入住登记页面,如图4.9所示。

图4.7业务管理页面

25

图4.8空闲客房查询

点击图4.8中左边引导栏中的“退房”(www.778bct.com)按钮可以进入到图4.10所示页面,该页面

显示了所有的入住房间的信息,在每个房间后面都有一个“退房”按钮,点击可以进入到退房页面,如

图4.11所示。在退房页面中,只有退房时间是需要填写的,其他内容都是运用之前保存的数据,点击

确定即可完成操作。

图4.9入住登记页面

图4.10入住客房查询

26

该功能模块实现了基本的查看、入住、退房等基本功能,操作简单,容易掌握,也易于工作人员学

习上岗,对于非计算机专业或是计算机基础比较薄弱的工作人员来说,无须多加训练,简单练习几次即

可熟练操作,快速便捷,适合中小企业使用。

图4.11退房页面

4.5权限管理模块

权限管理模块用于设置用户角色,管理员可以添加、删除用户,也可以设置用户的角色。用

户的角色有两种:前台和管理员。这两种角色对应不同的权限,前台可以进行客房查询、入住和退

房操作;管理员可以设置客房类型、编辑客房信息、设置用户权限。如图4.12所示,点击左边引

导栏中的“用户管理”,可以查看所有的用户列表,管理员可以添加、删除、修改用户。图4.13

所示为修改用户权限页面。

27

图4.12用户列表页面

添加用户:

publicstaticvoidAddUser(stringuserName,stringuserPwd,introleId)

{

SQLsqlUtility=newSQL();

stringstrSql=string.Format(“insertinto用户表(用户名称,密码,角色编号)

values(‘{0}’,’{1}’,{2})”,userName,userPwd,roleId);

sqlUtility.ExecuteNonQuery(strSql);

}

更新用户权限:

publicstaticvoidUpdateUser(intuserId,introleId)

{

SQLsqlUtility=newSQL();

stringstrSql=string.Format(“update用户表set角色编号={0}where用户编号={1}”,roleId,

userId);

sqlUtility.ExecuteNonQuery(strSql);

}

删除用户:

publicstaticvoidDeleteUser(intuserId)

{

SQLsqlUtility=newSQL();

stringstrSql=string.Format(“deletefrom用户表where用户编号={0}”,userId);

sqlUtility.ExecuteNonQuery(strSql);

}

28

图4.13修改用户权限

4.6退出系统

点击页面右上角的“退出”按钮,就可退出系统。退出后,系统会跳转到登陆页面。代码如下:

protectedvoidLinkButtonLogOut_Click(objectsender,EventArgse)

{

Session.Abandon();

FormsAuthentication.SignOut();

Response.Redirect("~/login.aspx");

}

29

第五章结论与展望

5.1结论

本文详细描述了基于B/S模式的酒店客房管理系统的实现,对于酒店客房管理的研究,具有一

定的理论和实践意义。在老师的指导和同学们的帮助下,经过不断的调试修改测试,我基本完成了

酒店客房管理系统的开发。

由于这是我第一次设计一个系统,所以有很多东西都需要从头摸索,比如ASP.Net、C#以及各

种控件的使用【10】等,而设计时间又十分有限,所以本系统难免存在许多不足。具体体现在以下几

点:

1.系统目前还不能进行酒店客房网上预订。

2.查询功能还不很完善。

3.系统目前还不能生成报表。

这些都是需要完善的地方,该系统离实际使用也还有相当的距离,需要我进行不断的补充和完

善。

5.2展望

使用酒店客房管理系统进行客房管理能充分利用计算机运行速度快、准确可靠等特点,为酒

店提供多种有效管理手段和各类复杂报表。通过网上在线预订可以方便客户远程了解酒店客房信息

并实现预订从而节约时间和成本。这些还有待我今后慢慢学习,只要学习就会有更多的问题,有更

30

多的难点,但也会有更多的收获。

献花(0)
+1
(本文系邱老师逗你...首藏)