文档库 最新最全的文档下载
当前位置:文档库 › 酒店管理系统论文

酒店管理系统论文

南阳理工学院本科毕业设计(论文)

酒店管理系统

Hotel Manager

学院(系):计算机科学与技术系

专业:计算机科学与技术

学生姓名:樊旭波

学号:64106054

指导教师(职称):鲁庆宾(讲师)

评阅教师:刘红旗

完成日期:2010年5月

南阳理工学院

Nanyang Institute of Technology

酒店管理系统

计算机科学与技术专业樊旭波

[摘要]随着信息化建设的发展,酒店服务业与国际市场接轨已成为大势所趋,酒店业要迎接这场挑战,就必须提高整体竞争能力,变革酒店的管理模式,提高管理水平。实施信息化建设无疑是实现这一目的的必由之路和明智之举。目前,我国酒店服务业信息化管理的进程缓慢,跟国外的酒店相比管理依然落后。在激烈的酒店业竞争中,如何能把握机会,保持自己的优势,立于不败之地呢?这就需要提供最好的服务,提供最完善的设施和最先进的技术。在信息时代,更重要的是还必须要有一个完善的管理信息系统,便于方便客人以及更好地管理酒店。

[关键词]酒店管理系统;B/S模式;VS 2008

Hotel Manager

Computer Science and Technology Major FAN Xu-bo

Abstract:As the information of the development, hotel services and standards of the international market has become the trend of the times. The hotel industry to meet this challenge, we will have to improve overall competitiveness, reform the hotel management, enhance the management level. Implementation of information technology is to achieve this purpose and the only way to a wise move. At present, China’s hotel services in the information management process has been slow, with foreign hotel management is still backward compared. The fierce competition in the hotel industry, how to seize the opportunity to maintain their advantage invincible? This makes it necessary to provide the best service to provide the best possible facilities and the most advanced technology. In the information age, is more important is also in need of a comprehensive management information system, Guests facilitate convenience and better management of the hotel.

Key words: Hotel Manager; B/S mode; VS 2008

目录

1 前言 (1)

2 相关理论基础 (1)

2.1 B/S结构 (1)

2.2 https://www.wendangku.net/doc/192069609.html,与Visual Studio 2008 (2)

2.3 SQL与SQL Sever 2005 Express (3)

3 需求分析 (3)

3.1 运行环境 (3)

3.2 系统需求 (4)

3.2.1 功能需求 (4)

3.2.2 性能需求 (4)

3.3 系统层次模块图 (5)

4 系统设计 (5)

4.1 模块设计 (6)

4.1.1 主模块 (6)

4.1.2 公共辅助模块 (6)

4.1.3 功能模块 (6)

4.2 数据库设计 (7)

5 系统实现 (12)

5.1 类库实现 (12)

5.2 登录界面 (13)

5.3 基础设置界面 (14)

5.4 业务管理界面 (22)

6 测试报告 (25)

6.1 测试基本要求 (25)

6.1.1 内容检查 (25)

6.1.2 链接检查 (26)

6.1.3 易用性测试 (26)

6.1.4 功能检查 (26)

6.1.5 容错性测试 (26)

6.2 测试用例设计方法举例 (27)

6.2.1 输入域测试 (27)

6.2.2 页面控件检查 (28)

6.2.3 功能测试 (28)

结束语 (31)

参考文献 (31)

致谢 (31)

1 前言

21世纪的酒店,从内部管理到外部销售都将发生质的变化。激烈的市场竞争,要求酒店引入更多、更新、更高的IT技术,而非单一的前台管理软件甚至传统的前、后台软件所能满足。现代化的酒店是集客房、餐饮、通讯、娱乐,商务文化及其他各种服务与设施为一体化的消费场所,酒店宾馆组织庞大,服务项目多,信息量大,要想提高劳动生产,降低成本,提高服务质量和管理水平,进而促进经济效益,必须借助计算机来进行现代化的信息管理,酒店管理系统正是为此而设计的,本系统是一套适用于大、中型星级宾馆使用的优秀系统,操作简单,灵活性好、系统安全性高,运行稳定,实是管理者的理想选择。

酒店管理系统基于计算机网络技术,采用多层结构,集多媒体技术、远程通讯技术、IT技术为一体,将多种不同类型的软件工具用统一的用户界面集成为一个大系统,在一个网络上实现酒店全方位电脑化管理。它不仅拥有传统软件所有的功能和较之更强大的功能,而且还根据目前酒店业的经营状况,着重于市场营销、成本控制、销售及成本预算等协助经营者开源节流的崭新概念设计,它是遍及整个酒店的技术和运营的解决方案。

成功的酒店是将经济效益作为酒店的运营宗旨,管理的核心也是在于如何提高经济效益。酒店管理系统以酒店的经济效益为目标,为酒店管理人员和员工提供简单易用、功能强大并高度灵活的应用工具,激励他们的积极性,促使他们向宾客提供更好的服务。这些改进使宾客感到更加满意,为酒店带来更多的回头客和收入。同时,通过对人流、物流、资金流的科学管理和有效控制,提高员工的工作效率,降低各种经营成本,从而获取持久的利润。

2 相关理论基础

2.1 B/S结构

B/S(Browser/Server)结构即浏览器和服务器结构。它是随着Internet技术的兴起,对C/S结构的一种变化或者改进的结构。在这种结构下,用户工作界面是通过WWW 浏览器来实现,极少部分事务逻辑在前端(Browser)实现,但是主要事务逻辑在服务器端(Server)实现,形成所谓三层结构。这样就大大简化了客户端电脑载荷,减轻了系统维护与升级的成本和工作量,降低了用户的总体成本(TCO)。以目前的技术看,局域网建立B/S结构的网络应用,并通过Internet/Intranet模式下数据库应用,相对易于把握、成本也是较低的。它是一次性到位的开发,能实现不同的人员,以不同的接入

方式访问和操作共同的数据库;它能有效地保护数据平台和管理访问权限,服务器数据库也很安全。

2.2 https://www.wendangku.net/doc/192069609.html,与Visual Studio 2008

https://www.wendangku.net/doc/192069609.html,是建立在通用语言运行时刻库(CLR)上的应用程序框架。它用来在服务器端构建功能强大的web应用程序。https://www.wendangku.net/doc/192069609.html,提供了几个超越以前web开发模式的优点:·增强的性能。https://www.wendangku.net/doc/192069609.html,是运行在服务器端的编译后的CLR代码,而不是像ASP那样解释执行。 https://www.wendangku.net/doc/192069609.html,利用提前绑定,即时编译,本地优化和缓存服务来提高性能。所有这一切,性能远远大于你以往写的每一行代码。

·世界级水平的开发工具支持。在Visual Studio .net的集成开发环境(IDE)中,https://www.wendangku.net/doc/192069609.html,框架由工具箱和设计器组成。所见即所得的(WYSIWYG)编辑方式、拖放服务器控件、以及自动部署,仅仅是这一强大工具所提供的一少部分功能。

·强大而富有弹性。由于https://www.wendangku.net/doc/192069609.html,是基于(CLR)的,因此整个.net平台的强大和富有弹性,同样可以应用于web应用程序开发者。.net框架的类库、消息以及数据访问解决方案,都可以无缝集成到web。https://www.wendangku.net/doc/192069609.html,也是语言中立的,因此你可以选择你最熟悉的语言,或者通过几种语言来共同完成一个应用。而且,CLR的互用性可以保证你升级到https://www.wendangku.net/doc/192069609.html,的时候,现存的基于COM的开发投资依然保留。

·简单。https://www.wendangku.net/doc/192069609.html,使执行常用的工作变得很容易,比如从简单的表单提交、客户端验证,到部署和站点配置。例如,https://www.wendangku.net/doc/192069609.html,允许你建立用户接口,实现页面和逻辑代码的分离,同时,就像VB的表单执行模式那样来处理事件。此外,CLR简化了部署,用来管理代码服务,例如自动参照和垃圾回收。

·易于管理。https://www.wendangku.net/doc/192069609.html,使用一个基于文本的、分层次的配置系统,它简化了服务器端环境和web应用程序的设置。由于配置信息用纯文本格式保存,新的设置不需要本地管理工具的支持。这种“零本地支持”的理念也同样应用到了部署https://www.wendangku.net/doc/192069609.html,应用程序。https://www.wendangku.net/doc/192069609.html,应用程序部署到服务器,简化为复制必要的文件到服务器。在部署,甚至替换正在运行的变异代码的时候,也不需要重新启动服务器。

·可伸缩性和有效利用性。https://www.wendangku.net/doc/192069609.html,被设计成可伸缩的,能为集群和多处理器环境设计提高性能。而且,https://www.wendangku.net/doc/192069609.html,运行时刻密切监视和管理进程,这样,如果发生了错误的行为,例如漏洞和死锁,新的进程会在当前位置建立,来帮助你的应用程序继续处理事件请求。

·可订制和扩展。https://www.wendangku.net/doc/192069609.html,提供一种良好的扩充结构,允许开发者在适当的级别“插入”他们的代码。事实上,使用自己的编写的组件可以扩展或者替换https://www.wendangku.net/doc/192069609.html,运行时刻的任何子组件。

Visual Studio 是一套完整的开发工具集,用于生成 https://www.wendangku.net/doc/192069609.html, Web 应用程序、XML

Web Services、桌面应用程序和移动应用程序。Visual Basic、Visual C++、Visual C# 和 Visual J# 全都使用相同的集成开发环境 (IDE),利用此 IDE 可以共享工具且有助于创建混合语言解决方案。另外,这些语言利用了 .NET Framework 的功能,通过此框架可使用简化 ASP Web 应用程序和 XML Web Services 开发的关键技术。

2.3 SQL与SQL Sever 2005 Express

SQL是用来对存放在计算机中的数据库进行组织、管理和检索的语言。SQL一词是“Structured Query Language(结构式查询语言)”的缩写,是IBM公司San Jose实验室为System R而设计的语言,从1982年开始,美国国家标准协会(ANSI)即着手SQL 标准化工作,1986年ANSI的数据库委员会批准了SQL作为关系数据库语言的美国标准,这就是第一个SQL标准,同时公布了SQL标准文本,在此后不久的1987年,国际标准化组织(ISO)也做出了同样的决定,目前的SQL标准是1992年指定的SQL—92标准,是一种用于与数据库进行交互的语言。SQL语言的极大普及是当今计算机工业中最引人注目的趋势之一。在过去的几年中,SQL已经发展成为标准计算机数据库查询语言。现在,微机到大型机,有很多数据库产品支持SQL,SQL的国际标准已经能够被采用并被不断扩充。SQL在主要计算机开发上的数据库体系中占有重要的地位。

SQL Server提供服务器端的软件,这部分需要安装在NT Server上,SQL Server 的用户端则可以安装在许多用户端PC系统中,Windows可以让用户端进行数据库的建立,维护及存取等操作,SQL Server可以最多定义32767个数据库,每个数据库中,可以定义20亿个表格,每个表格可以有250个字段,每个表格的数据个数并没有限制,每一个表格可以定义250个索引,其中有一个可以是Clustered索引。 SQL Server所使用的数据库查询语言称为Transact-SQL,它是SQL Server的核心,Transact-SQL强化了原有的SQL关键字以进行数据的存取,储存及处理等功能,Transact-SQL扩充了流程控制指定,可以使你方便的编写功能强大的存储过程,他们存放在服务器端,并预先编译过,执行速度非常块,触发是一种特殊的存储过程,用来确保SQL Server数据库引用的完整性,你可以建立插入,删除和更新触发以控制相关的表格中对数据列的插入,删除和更新,你还可以使用规则(Rule),缺省(default)以及限制(Constraints),来协助将新的数值套用到表格中去。

3 需求分析

3.1 运行环境

操作系统:windows2000server中文版、windows 2003 Server或者Windows XP 数据库:SQL Server 2005 中文企业版

开发工具:Microsoft Visual Studio .NET 2008企业版 (C#)

3.2 系统需求

3.2.1 功能需求

系统功能主要包括登录功能、房间类型的管理、房间的管理、开房、退房、数据操作、预订房、换房间八个部分。以下按照不同的功能处理对具体功能进行描述。

1.登录功能

只有在输入正确的户名和密码才可登录进入操作界面。

2.房间类型的管理

可以对房间类型进行增添、删除、修改、查询功能。

3.房间信息的管理

可以对房间信息进行增添、删除、修改、查询功能。

4.开房功能

记录住户信息,并把相应的房间状态改为“入住”。

5.退房

a)退房时算出总费用 (房间价格+ 加床价格) * 天数。

b)退房时要判断当前退房的时间,一般酒店是在中午12点退房,超过12点理论上要

多算一天. 可弹出提示“是否多加一天”。

c)退房成功后把相应的房间状态改为“空闲”。

d)更新用户消费总金额。

e)更新用户的VIP状态。

6.数据操作

a)可按月查看入住记录。

b)可查看指定日期的入住记录。

c)可搜索指定姓名住户的入住记录。

7.预订房功能

a)提前预定房间,注意房间的状态,预定日期前还是可以由其他房客入住。

b)预定房间到期时未入住的处理。

8.换房间

可以在住户需要时办理换房间业务。

3.2.2 性能需求

整个系统应当操作简便,界面友好,维护简便。数据库要求运行稳定,执行速度快,数据安全性高。软件系统本身运行对计算机硬件平台和操作系统平台要求适中。

3.3 系统层次模块图

酒店管理系统层次模块图,如图3-1所示。

图3-1层次模块图4 系统设计

4.1 模块设计

4.1.1 主模块

主模块设计如表4-1所示.

表4-1 主模块设计

4.1.2 公共辅助模块

公共模块设计如表4-2所示。

表4-2 公共模块设计

4.1.3 功能模块

功能模块设计如表4-3所示:

表4-3 功能模块设计

续表4-3

4.2 数据库设计

1.数据库的表结构是非常重要的环节,一个良好的数据库设计,可以提高效率,方便维护,并且为以后进行功能的扩展留有余地。表4-4是系统数据库表的清单。

表4-4数据表清单

图4-1 部分数据表之间联系图

以上图4-1是部分数据表的结构图,从图中可以看出各表之间的联系。

以下对各个信息表做详细介绍。

1.房间信息表,如表4-5

表4-5 房间信息表

表4-6 房间类型表

3.客户信息表,如表4-7

表4-7 客户信息表

4.历史记录表,如表4-8

表4-8 历史记录表

5.预订记录表,如表4-9

表4-9 预订记录表

6.住户登记信息表,如表4-10

表4-10 住户登记信息表

2.数据库的配置

本系统的开发是在 windows XP 下开发的,开发数据库使用的是sql server具体配置步骤如下:

(1)打开 sql server 企业管理器,新建一个数据库,将其命名为bm

(2)在bm中建下列表room,roomtype,客户信息等数据库表

(3)完成数据初始化工作,将表中各字段与域值添加进去。

部分具体的数据库设计如图4-2到图4-7所示。

图4-2 房间信息表

图4-3 房间类型表

图4-4 客户信息表

图4-5 历史记录表

图4-6 预订记录表

图4-7 住户登记信息表

5 系统实现

5.1 类库实现

整个系统的布局采用了框架结构。顶部框架里是系统的标题。主框架又分左右两部分。左部框架是树型功能菜单,整个系统功能模块的跳转主要在这里完成。右部框架用来显示和操作各主要功能模块。整个页面看起来简单明了,界面简洁,容易操作。

整个系统在几乎所有的模块中都会涉及到大量类似的数据库操作。所以把几个常用的方法抽出,放到一个公共的类中,供所有的模块调用。

首先建立一个和SQL Server 数据库之间的连接。代码如下:

SqlConnection sqlconn = new SqlConnection("Data Source=.\\sqlexpress;

Initial Catalog=bm;Persist Security Info=True;User ID=sa;Password=123");

DataCom方法用来返回受影响的结果的行数,但不返回任何东西。操作过程是首先打开连接,之后建立一个对 SQL Server 数据库执行的一个SQL 语句的对象,执行SQL 语句,然后关闭数据库连接。具体代码如下:

public void DataCom(string sqlstr)

{ sqlconn.Open();

SqlCommand sqlcom = new SqlCommand(sqlstr, sqlconn);

sqlcom.ExecuteNonQuery();

sqlconn.Close(); }

rowNumber方法用来返回受影响的行数。但是和DataCom不同的是回返回一个具体的int类型的行数。

rowFirst方法用来返回一个object类型的查询后的第一行的第一列的结果。代码和上面的两个方法类似,只是执行ExecuteScalar方法来取得第一行的第一列的结果。

在此系统中有连个用户类型,即普通登录人员和管理人员,我们通过一段代码来实现不同的登录类型进行登录,进行不同的操作。代码如下:

if (Session["leave"] != null)

{ leave = Session["leave"].ToString();

name = Session["user_ID"].ToString();

if (leave == "1")

{ Response.Redirect("tsxx.aspx");}

}

else

{ Response.Redirect("main.aspx"); }

5.2 登录界面

1.登录页面的功能主要是供合法的用户根据自己的用户类型及用户名和密码来进行登录,如果输入错误则会有提示。

如果用户在没有登录的情况下选择其它功能模块会退回到登录界面。如果用户已经登录,可以在登录模块进行退出登录的操作。如果用户类型错误将会有错误提示。

在登录到这个页面或者刷新这个页面的时候,首先要进行一次session的判断。在输入用户名密码后,先确认输入框中有数据,将把输入框中的数据和数据库中的数据进行比较验证。如果一切通过,将产生两个session分别用来存放用户名和用户类型。之后跳转到相应的登录成功的页面。主要运行代码:

SqlConnection sqlconn = new

SqlConnection(ConfigurationManager.ConnectionStrings["bmConnectionString"].ToString()); ;

sqlconn.Open();

SqlCommand sqlcmd = new SqlCommand("select leave from users where name='" +TBusers.Text + "' and password='" + TBpass.Text + "'", sqlconn);

string leave =Convert.ToString( sqlcmd.ExecuteScalar());

SqlCommand sqlcmd2 = new SqlCommand("select user_ID from users where name='" + TBusers.Text + "' and password='" + TBpass.Text + "'", sqlconn);

int count = Convert.ToInt32(sqlcmd2.ExecuteScalar());

2.使用户能够及时修改密码,保护密码的安全性以防自己信息泄露。在次界面中运用了验证控件,更容易操作和管理。在使用不同的验证控件时要注意验证控件的属性设置,使其运用正确。主要执行代码:SqlConnection conn = new SqlConnection();

conn.ConnectionString = ConfigurationManager.ConnectionStrings["bmConnectionString"].ToString();

conn.Open();

SqlCommand cmd = new SqlCommand("select pwd from tea where name='" + TextBox4.Text+ "'", conn);

SqlDataReader dr = cmd.ExecuteReader();

if (dr.Read())

{ yp = dr.GetString (0);

if (TextBox1.Text.ToString() != yp)

{ Response.Write("");}

else

{ dr.Close();

https://www.wendangku.net/doc/192069609.html,mandText = "update tea set pwd='" + TextBox2.Text + "'where name='" +

TextBox4.Text+ "'";

cmd.ExecuteNonQuery();

conn.Close();

Response.Write("");}

5.3 基础设置界面

酒店管理系统基础设置模块包括五个子模块,分别是客房类型设置、客房信息设置、客户详细信息、住户登记设置、预订信息设置。主要功能是完成各种信息的设置。

本界面主要是基础设置部分,其中客房类型设置可以对客房类型进行添加、删除、修改、查询等操作。包括类型信息、类型名称、其关键代码:

public static TypeRoom SelectRoomType(string ID) {

SqlParameter p1 = new SqlParameter("@TypeID", int.Parse(ID));

DataTable table = DBHelp.Select("GetAllByRoomTypeID",p1);

DataRow row = table.Rows[0];

TypeRoom ro = new TypeRoom();

if (row["TypeId"] != DBNull.Value)

{ro.TypeId = row["TypeId"].ToString();}

if (row["TypeName"] != DBNull.Value)

{ro.TypeName = row["TypeName"].ToString();}

if (row["TypePrice"] != DBNull.Value)

{ro.TypePrice = row["TypePrice"].ToString();}

if (row["IsAddBed"] != DBNull.Value)

{ro.IsAddBed = row["IsAddBed"].ToString();}

if (row["AddBedPrice"] != DBNull.Value)

{ro.AddBedPrice = row["AddBedPrice"].ToString();}

if (row["Remark"] != DBNull.Value)

{ro.Remark = row["Remark"].ToString();}

return ro;

}

public static TypeRoom SelectRoomType(string ID) {

SqlParameter p1 = new SqlParameter("@TypeID", int.Parse(ID));

DataTable table = DBHelp.Select("GetAllByRoomTypeID",p1);

DataRow row = table.Rows[0];

TypeRoom ro = new TypeRoom();

if (row["TypeId"] != DBNull.Value)

{ro.TypeId = row["TypeId"].ToString();}

if (row["TypeName"] != DBNull.Value)

{ ro.TypeName = row["TypeName"].ToString();}

if (row["TypePrice"] != DBNull.Value)

{ro.TypePrice = row["TypePrice"].ToString();}

if (row["IsAddBed"] != DBNull.Value)

{ro.IsAddBed = row["IsAddBed"].ToString();}

if (row["AddBedPrice"] != DBNull.Value)

{ro.AddBedPrice = row["AddBedPrice"].ToString();}

if (row["Remark"] != DBNull.Value)

{ro.Remark = row["Remark"].ToString();}

return ro;

}

public static int ADDtypeRoom(TypeRoom ty)

{ SqlParameter p1 = new SqlParameter("@typeName",ty.TypeName);

SqlParameter p2 = new SqlParameter("@TypePrice", double.Parse(ty.TypePrice));

SqlParameter p3 = new SqlParameter("@IsAddBed",ty.IsAddBed);

SqlParameter p4 = new SqlParameter("@AddBedPrice", double.Parse(ty.AddBedPrice));

SqlParameter p5 = new SqlParameter("@Remark",ty.Remark);

return DBHelp.Excurt("insertRoomtype",p1,p2,p3,p4,p5);

}

public static int UpdatetypeRoom(TypeRoom ty)

{SqlParameter p1 = new SqlParameter("@typeName", ty.TypeName);

SqlParameter p2 = new SqlParameter("@TypePrice", double.Parse(ty.TypePrice));

SqlParameter p3 = new SqlParameter("@IsAddBed", ty.IsAddBed);

SqlParameter p4 = new SqlParameter("@AddBedPrice", double.Parse(ty.AddBedPrice));

SqlParameter p5 = new SqlParameter("@Remark", ty.Remark);

SqlParameter p6 = new SqlParameter("@TypeID", int.Parse(ty.TypeId));

return DBHelp.Excurt("UpdateRoom", p1, p2, p3, p4, p5,p6);

}

在类型名称内输入相应的房间类型名称,点击查询按钮,便可看到对应类型房间的详细信息。点击新增按钮,可以对房间类型进行添加,点击修改按钮,可以对对应房间类型信息进行修改,修改完后点击保存,便可保存修改后信息,提示“修改完成”。点击删除按钮,可对房间类型信息做删除。

酒店管理系统客房类型设置模块运行的结果如图5-1所示。

图5-1酒店管理系统客房类型设置模块运行图

其中客房信息设置可以对客房信息进行添加、删除、修改、查询等操作。包括房间信息、房间号、床号、状态、客户编号、描述、类型名称等。其关键代码:List ro = new List();

DataTable table = DBHelp.Select("SelectRoom");

foreach (DataRow row in table.Rows)

{room rm = new room();

if (row["Roomid"] != DBNull.Value)

{rm.RoomId = row["Roomid"].ToString(); ;}

if (row["Number"] != DBNull.Value)

{rm.Number = row["Number"].ToString(); ;}

if (row["BedNumber"] != DBNull.Value)

{rm.BedNumber = row["BedNumber"].ToString(); ;

} if (row["state"] != DBNull.Value)

{rm.State = row["state"].ToString(); ;}

if (row["GuestNumber"] != DBNull.Value)

{rm.GuestNumber = row["GuestNumber"].ToString(); ;}

if (row["Description"] != DBNull.Value)

{rm.Description = row["Description"].ToString(); ;

} if (row["typeName"] != DBNull.Value)

{rm.TypeName = row["typeName"].ToString(); ;

} if (row["TypePrice"] != DBNull.Value)

{rm.TypePrice = row["TypePrice"].ToString(); ;}

相关文档
相关文档 最新文档