《酒店管理系统论文.doc》由会员分享,可在线阅读,更多相关《酒店管理系统论文.doc(36页珍藏版)》请在三一办公上搜索。
1、科 毕 业 设 计(论文)酒店管理系统Hotel Manager学 院(系): 计算机科学与技术系 专 业: 计算机科学与技术 学 生 姓 名: 樊旭波 学 号: 64106054 指 导 教 师(职称): 鲁庆宾(讲师) 评 阅 教 师: 刘红旗 完 成 日 期: 2010年5月 南阳理工学院Nanyang Institute of Technology酒店管理系统计算机科学与技术专业樊旭波摘要随着信息化建设的发展,酒店服务业与国际市场接轨已成为大势所趋,酒店业要迎接这场挑战,就必须提高整体竞争能力,变革酒店的管理模式,提高管理水平。实施信息化建设无疑是实现这一目的的必由之路和明智之举。目前
2、,我国酒店服务业信息化管理的进程缓慢,跟国外的酒店相比管理依然落后。在激烈的酒店业竞争中,如何能把握机会,保持自己的优势,立于不败之地呢?这就需要提供最好的服务,提供最完善的设施和最先进的技术。在信息时代,更重要的是还必须要有一个完善的管理信息系统,便于方便客人以及更好地管理酒店。关键词酒店管理系统;B/S模式;VS 2008Hotel ManagerComputer Science and Technology MajorFAN Xu-boAbstract: As the information of the development, hotel services and standards
3、 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
4、to a wise move. At present, Chinas 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
5、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;
6、 B/S mode; VS 2008目 录1 前言12 相关理论基础12.1 B/S结构12.2 ASP.NET与Visual Studio 200822.3 SQL与SQL Sever 2005 Express33 需求分析33.1 运行环境33.2 系统需求43.2.1 功能需求43.2.2 性能需求43.3 系统层次模块图54 系统设计54.1 模块设计64.1.1 主模块64.1.2 公共辅助模块64.1.3 功能模块64.2 数据库设计75 系统实现115.1 类库实现125.2 登录界面125.3 基础设置界面145.4 业务管理界面226 测试报告256.1 测试基本要求256.
7、1.1 内容检查256.1.2 链接检查266.1.3 易用性测试266.1.4 功能检查266.1.5 容错性测试266.2 测试用例设计方法举例276.2.1 输入域测试276.2.2 页面控件检查286.2.3 功能测试29结束语32参考文献32致谢331 前言21世纪的酒店,从内部管理到外部销售都将发生质的变化。激烈的市场竞争,要求酒店引入更多、更新、更高的IT技术,而非单一的前台管理软件甚至传统的前、后台软件所能满足。现代化的酒店是集客房、餐饮、通讯、娱乐,商务文化及其他各种服务与设施为一体化的消费场所,酒店宾馆组织庞大,服务项目多,信息量大,要想提高劳动生产,降低成本,提高服务质量
8、和管理水平,进而促进经济效益,必须借助计算机来进行现代化的信息管理,酒店管理系统正是为此而设计的,本系统是一套适用于大、中型星级宾馆使用的优秀系统,操作简单,灵活性好、系统安全性高,运行稳定,实是管理者的理想选择。酒店管理系统基于计算机网络技术,采用多层结构,集多媒体技术、远程通讯技术、IT技术为一体,将多种不同类型的软件工具用统一的用户界面集成为一个大系统,在一个网络上实现酒店全方位电脑化管理。它不仅拥有传统软件所有的功能和较之更强大的功能,而且还根据目前酒店业的经营状况,着重于市场营销、成本控制、销售及成本预算等协助经营者开源节流的崭新概念设计,它是遍及整个酒店的技术和运营的解决方案。成功
9、的酒店是将经济效益作为酒店的运营宗旨,管理的核心也是在于如何提高经济效益。酒店管理系统以酒店的经济效益为目标,为酒店管理人员和员工提供简单易用、功能强大并高度灵活的应用工具,激励他们的积极性,促使他们向宾客提供更好的服务。这些改进使宾客感到更加满意,为酒店带来更多的回头客和收入。同时,通过对人流、物流、资金流的科学管理和有效控制,提高员工的工作效率,降低各种经营成本,从而获取持久的利润。2 相关理论基础2.1 B/S结构B/S(Browser/Server)结构即浏览器和服务器结构。它是随着Internet技术的兴起,对C/S结构的一种变化或者改进的结构。在这种结构下,用户工作界面是通过WWW
10、浏览器来实现,极少部分事务逻辑在前端(Browser)实现,但是主要事务逻辑在服务器端(Server)实现,形成所谓三层结构。这样就大大简化了客户端电脑载荷,减轻了系统维护与升级的成本和工作量,降低了用户的总体成本(TCO)。以目前的技术看,局域网建立B/S结构的网络应用,并通过Internet/Intranet模式下数据库应用,相对易于把握、成本也是较低的。它是一次性到位的开发,能实现不同的人员,以不同的接入方式访问和操作共同的数据库;它能有效地保护数据平台和管理访问权限,服务器数据库也很安全 。2.2 ASP.NET与Visual Studio 2008ASP.NET是建立在通用语言运行时
11、刻库(CLR)上的应用程序框架。它用来在服务器端构建功能强大的web应用程序。ASP.NET提供了几个超越以前web开发模式的优点: 增强的性能。ASP.NET是运行在服务器端的编译后的CLR代码,而不是像ASP那样解释执行。 ASP.NET利用提前绑定,即时编译,本地优化和缓存服务来提高性能。所有这一切,性能远远大于你以往写的每一行代码。 世界级水平的开发工具支持。在Visual Studio .net的集成开发环境(IDE)中,ASP.NET框架由工具箱和设计器组成。所见即所得的(WYSIWYG)编辑方式、拖放服务器控件、以及自动部署,仅仅是这一强大工具所提供的一少部分功能。强大而富有弹性
12、。由于ASP.NET是基于(CLR)的,因此整个.net平台的强大和富有弹性,同样可以应用于web应用程序开发者。.net框架的类库、消息以及数据访问解决方案,都可以无缝集成到web。ASP.NET也是语言中立的,因此你可以选择你最熟悉的语言,或者通过几种语言来共同完成一个应用。而且,CLR的互用性可以保证你升级到ASP.NET的时候,现存的基于COM的开发投资依然保留。 简单。ASP.NET使执行常用的工作变得很容易,比如从简单的表单提交、客户端验证,到部署和站点配置。例如,ASP.NET允许你建立用户接口,实现页面和逻辑代码的分离,同时,就像VB的表单执行模式那样来处理事件。此外,CLR简
13、化了部署,用来管理代码服务,例如自动参照和垃圾回收。易于管理。ASP.NET使用一个基于文本的、分层次的配置系统,它简化了服务器端环境和web应用程序的设置。由于配置信息用纯文本格式保存,新的设置不需要本地管理工具的支持。这种“零本地支持”的理念也同样应用到了部署ASP.NET应用程序。ASP.NET应用程序部署到服务器,简化为复制必要的文件到服务器。在部署,甚至替换正在运行的变异代码的时候,也不需要重新启动服务器。 可伸缩性和有效利用性。ASP.NET被设计成可伸缩的,能为集群和多处理器环境设计提高性能。而且,ASP.NET运行时刻密切监视和管理进程,这样,如果发生了错误的行为,例如漏洞和死
14、锁,新的进程会在当前位置建立,来帮助你的应用程序继续处理事件请求。可订制和扩展。ASP.NET提供一种良好的扩充结构,允许开发者在适当的级别“插入”他们的代码。事实上,使用自己的编写的组件可以扩展或者替换ASP.NET运行时刻的任何子组件。 Visual Studio 是一套完整的开发工具集,用于生成 ASP.NET Web 应用程序、XML Web Services、桌面应用程序和移动应用程序。Visual Basic、Visual C+、Visual C# 和 Visual J# 全都使用相同的集成开发环境 (IDE),利用此 IDE 可以共享工具且有助于创建混合语言解决方案。另外,这些语
15、言利用了 .NET Framework 的功能,通过此框架可使用简化 ASP Web 应用程序和 XML Web Services 开发的关键技术。2.3 SQL与SQL Sever 2005 ExpressSQL是用来对存放在计算机中的数据库进行组织、管理和检索的语言。SQL一词是“Structured Query Language(结构式查询语言)”的缩写,是IBM公司San Jose实验室为System R而设计的语言,从1982年开始,美国国家标准协会(ANSI)即着手SQL标准化工作,1986年ANSI的数据库委员会批准了SQL作为关系数据库语言的美国标准,这就是第一个SQL标准,同
16、时公布了SQL标准文本,在此后不久的1987年,国际标准化组织(ISO)也做出了同样的决定,目前的SQL标准是1992年指定的SQL92标准,是一种用于与数据库进行交互的语言。SQL语言的极大普及是当今计算机工业中最引人注目的趋势之一。在过去的几年中,SQL已经发展成为标准计算机数据库查询语言。现在,微机到大型机,有很多数据库产品支持SQL,SQL的国际标准已经能够被采用并被不断扩充。SQL在主要计算机开发上的数据库体系中占有重要的地位。SQL Server提供服务器端的软件,这部分需要安装在NT Server上,SQL Server的用户端则可以安装在许多用户端PC系统中,Windows可以
17、让用户端进行数据库的建立,维护及存取等操作,SQL Server可以最多定义32767个数据库,每个数据库中,可以定义20亿个表格,每个表格可以有250个字段,每个表格的数据个数并没有限制,每一个表格可以定义250个索引,其中有一个可以是Clustered索引。 SQL Server所使用的数据库查询语言称为Transact-SQL,它是SQL Server的核心,Transact-SQL强化了原有的SQL关键字以进行数据的存取,储存及处理等功能,Transact-SQL扩充了流程控制指定,可以使你方便的编写功能强大的存储过程,他们存放在服务器端,并预先编译过,执行速度非常块,触发是一种特殊的
18、存储过程,用来确保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 功能需求系统功能主要包括登录功能
19、、房间类型的管理、房间的管理、开房、退房、数据操作、预订房、换房间八个部分。以下按照不同的功能处理对具体功能进行描述。1登录功能只有在输入正确的户名和密码才可登录进入操作界面。2房间类型的管理可以对房间类型进行增添、删除、修改、查询功能。3房间信息的管理可以对房间信息进行增添、删除、修改、查询功能。4开房功能记录住户信息,并把相应的房间状态改为“入住”。5退房a)退房时算出总费用 (房间价格+ 加床价格) * 天数。 b)退房时要判断当前退房的时间,一般酒店是在中午12点退房,超过12点理论上要多算一天. 可弹出提示“是否多加一天”。c)退房成功后把相应的房间状态改为“空闲”。d)更新用户消费
20、总金额。e)更新用户的VIP状态。6数据操作a)可按月查看入住记录。b)可查看指定日期的入住记录。c)可搜索指定姓名住户的入住记录。7预订房功能a)提前预定房间,注意房间的状态,预定日期前还是可以由其他房客入住。b)预定房间到期时未入住的处理。8换房间可以在住户需要时办理换房间业务。3.2.2 性能需求整个系统应当操作简便,界面友好,维护简便。数据库要求运行稳定,执行速度快,数据安全性高。软件系统本身运行对计算机硬件平台和操作系统平台要求适中。3.3 系统层次模块图酒店管理系统层次模块图,如图3-1所示。酒店管理系统统用户登录模块用户登录是否有效否是房间类型管理房间信息管理开 房退 房数 据
21、更 新预 订 房换 房 间房间类型的添加、删除、修改、查询房间的添加、删除、修改、查询将房间状态改为“入住”退房结算、更改状态及住户信息按月、指定日期、姓名查询入住记录处理换房 图3-1层次模块图4 系统设计4.1 模块设计4.1.1 主模块主模块设计如表4-1所示.表4-1 主模块设计模块子模块功能主模块整体设计总界面对功能模块和公共辅助模块有整体的概览和认知4.1.2 公共辅助模块公共模块设计如表4-2所示。表4-2 公共模块设计模块子模块功能公共辅助模块1.查询模块2.信息浏览模块1.查询客房等基本信息2.便于工作人员及时掌握客房及客人信息4.1.3 功能模块功能模块设计如表4-3所示:
22、表4-3 功能模块设计功能模块用户登录用户登录房间类型管理模块1.增添房间类型2.修改房间类型3.删除房间类型4.查询房间类型房间信息管理模块1.增添房间信息2.修改房间信息3.删除房间信息4.查询房间信息开房功能模块记录用户信息并将房间状态改为“入住”退房功能模块1.算出总费用2.判断当前退房的时间3.退房成功后把相应的房间该为“空闲”4.更新用户消费总金额5.更新用户VIP状态数据操作模块1.可按月查询入住记录2.可查看指定日期的入住记录3.可搜索指定姓名住户的入住记录续表4-3预订房功能模块1.注意房间状态,预定日期前还可以由其他房客入住2.预定房间到期未入住的处理换房间功能模块用户需要
23、时更换房间处理4.2 数据库设计1.数据库的表结构是非常重要的环节,一个良好的数据库设计,可以提高效率,方便维护,并且为以后进行功能的扩展留有余地。表4-4是系统数据库表的清单。表4-4数据表清单序号数据表名称说明1Room对房间信息进行记录2Room type对房间类型进行记录3客户信息表对客户信息进行记录4历史记录表历史入住记录5预定记录预定信息记录6住户登记信息对住户入住信息进行记录图4-1 部分数据表之间联系图以上图4-1是部分数据表的结构图,从图中可以看出各表之间的联系。以下对各个信息表做详细介绍。1.房间信息表,如表4-5表4-5 房间信息表字段名数据类型字段说明备注RoomIDi
24、nt房间信息不允许为空Numbervarchar(50)房间号主键自动增加1BedNumberint床位号不允许为空Descriptionvarchar(255)房间描述不允许为空Statevarchar(50)房间状态不允许为空GuestNumberint住户编号不允许为空TypeIDint房间类型不允许为空2.房间类型表,如表4-6表4-6 房间类型表字段名数据类型字段说明备注TypeIDint类型信息主键自动增加1TypeNamevarchar(50)类型名称不允许为空TypePricemoney类型价钱不允许为空IsAddBedvarchar(20)是否加床不允许为空AddBedPri
25、cemoney加床费不允许为空RemarkVarchar(50)备注不允许为空3.客户信息表,如表4-7表4-7 客户信息表字段名数据类型字段说明备注客户编号int客户编号主键自动增加1姓名varchar(50)姓名允许为空性别Varchar(10)性别允许为空身份证号Varchar(22)身份证号允许为空联系电话Varchar(50)联系电话允许为空VIPVarchar(50)VIP允许为空消费总金额Money消费总金额允许为空4.历史记录表,如表4-8表4-8 历史记录表字段名数据类型字段说明备注客户姓名varchar(50)客户姓名主键自动增加1入住房号varchar(50)入住房号允许
26、为空入住时间Varchar(50)入住时间允许为空预退订时间Varchar(50)预退订时间允许为空退房时间Varchar(50)退房时间允许为空是否加床varchar(50)是否加床允许为空押金varchar(50)押金允许为空总费用money总费用允许为空说明Varchar(250)说明允许为空IDintID不允许为空5.预订记录表,如表4-9表4-9 预订记录表字段名数据类型字段说明备注房间号varchar(50)类型信息允许为空预订入住时间varchar(50)类型名称允许为空预订退房时间varchar(50)类型价钱允许为空客户编号int是否加床允许为空IDint加床费主键自动增加1
27、6.住户登记信息表,如表4-10表4-10 住户登记信息表字段名数据类型字段说明备注客户编号int客户姓名允许为空押金Money入住房号允许为空入住房号Varchar(50)入住时间允许为空入住时间Varchar(50)预退订时间允许为空预定退房时间Varchar(50)退房时间允许为空退房时间varchar(50)是否加床允许为空是否加床varchar(50)押金允许为空总费用money总费用允许为空备注Varchar(50)说明允许为空IDintID主键自动增加12.数据库的配置本系统的开发是在 windows XP 下开发的,开发数据库使用的是sql server具体配置步骤如下:(1)
28、打开 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 类库实现整个系统的布局采用了框架结构。顶部框架里是系统的标题。主框架又分左右两部分。左部框架是树型功能菜单,整个系统功能模块的跳转主要在这里完成。右部框架用来显示和操作各主要功能模块。整个页面看起来简单明了,界面简洁,
29、容易操作。整个系统在几乎所有的模块中都会涉及到大量类似的数据库操作。所以把几个常用的方法抽出,放到一个公共的类中,供所有的模块调用。首先建立一个和SQL Server 数据库之间的连接。代码如下:SqlConnection sqlconn = new SqlConnection(Data Source=.sqlexpress;Initial Catalog=bm;Persist Security Info=True;User ID=sa;Password=123);DataCom方法用来返回受影响的结果的行数,但不返回任何东西。操作过程是首先打开连接,之后建立一个对 SQL Server 数据
30、库执行的一个SQL 语句的对象,执行SQL语句,然后关闭数据库连接。具体代码如下:public void DataCom(string sqlstr) sqlconn.Open(); SqlCommand sqlcom = new SqlCommand(sqlstr, sqlconn); sqlcom.ExecuteNonQuery(); sqlconn.Close(); rowNumber方法用来返回受影响的行数。但是和DataCom不同的是回返回一个具体的int类型的行数。rowFirst方法用来返回一个object类型的查询后的第一行的第一列的结果。代码和上面的两个方法类似,只是执行Ex
31、ecuteScalar方法来取得第一行的第一列的结果。在此系统中有连个用户类型,即普通登录人员和管理人员,我们通过一段代码来实现不同的登录类型进行登录,进行不同的操作。代码如下:if (Sessionleave != null) leave = Sessionleave.ToString(); name = Sessionuser_ID.ToString(); if (leave = 1) Response.Redirect(tsxx.aspx); else Response.Redirect(main.aspx); 5.2 登录界面1.登录页面的功能主要是供合法的用户根据自己的用户类型及用户
32、名和密码来进行登录,如果输入错误则会有提示。如果用户在没有登录的情况下选择其它功能模块会退回到登录界面。如果用户已经登录,可以在登录模块进行退出登录的操作。如果用户类型错误将会有错误提示。在登录到这个页面或者刷新这个页面的时候,首先要进行一次session的判断。在输入用户名密码后,先确认输入框中有数据,将把输入框中的数据和数据库中的数据进行比较验证。如果一切通过,将产生两个session分别用来存放用户名和用户类型。之后跳转到相应的登录成功的页面。主要运行代码:SqlConnection sqlconn = new SqlConnection(ConfigurationManager.Con
33、nectionStringsbmConnectionString.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 f
34、rom users where name= + TBusers.Text + and password= + TBpass.Text + , sqlconn); int count = Convert.ToInt32(sqlcmd2.ExecuteScalar();2.使用户能够及时修改密码,保护密码的安全性以防自己信息泄露。在次界面中运用了验证控件,更容易操作和管理。在使用不同的验证控件时要注意验证控件的属性设置,使其运用正确。主要执行代码:SqlConnection conn = new SqlConnection(); conn.ConnectionString = Configurat
35、ionManager.ConnectionStringsbmConnectionString.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(alert(原密码错
36、误!);); else dr.Close(); cmd.CommandText = update tea set pwd= + TextBox2.Text + where name= + TextBox4.Text+ ; cmd.ExecuteNonQuery(); conn.Close(); Response.Write(alert(修改密码成功!););5.3 基础设置界面酒店管理系统基础设置模块包括五个子模块,分别是客房类型设置、客房信息设置、客户详细信息、住户登记设置、预订信息设置。主要功能是完成各种信息的设置。本界面主要是基础设置部分,其中客房类型设置可以对客房类型进行添加、删除、修
37、改、查询等操作。包括类型信息、类型名称、其关键代码:public static TypeRoom SelectRoomType(string ID) SqlParameter p1 = new SqlParameter(TypeID, int.Parse(ID); DataTable table = DBHelp.Select(GetAllByRoomTypeID,p1); DataRow row = table.Rows0; TypeRoom ro = new TypeRoom(); if (rowTypeId != DBNull.Value) ro.TypeId = rowTypeId.T
38、oString(); if (rowTypeName != DBNull.Value) ro.TypeName = rowTypeName.ToString(); if (rowTypePrice != DBNull.Value) ro.TypePrice = rowTypePrice.ToString(); if (rowIsAddBed != DBNull.Value) ro.IsAddBed = rowIsAddBed.ToString(); if (rowAddBedPrice != DBNull.Value) ro.AddBedPrice = rowAddBedPrice.ToStr
39、ing(); if (rowRemark != DBNull.Value) ro.Remark = rowRemark.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.Rows0; TypeRoom ro = new TypeRoom(
40、); if (rowTypeId != DBNull.Value) ro.TypeId = rowTypeId.ToString(); if (rowTypeName != DBNull.Value) ro.TypeName = rowTypeName.ToString(); if (rowTypePrice != DBNull.Value) ro.TypePrice = rowTypePrice.ToString(); if (rowIsAddBed != DBNull.Value) ro.IsAddBed = rowIsAddBed.ToString(); if (rowAddBedPri
41、ce != DBNull.Value) ro.AddBedPrice = rowAddBedPrice.ToString(); if (rowRemark != DBNull.Value) ro.Remark = rowRemark.ToString(); return ro; public static int ADDtypeRoom(TypeRoom ty) SqlParameter p1 = new SqlParameter(typeName,ty.TypeName); SqlParameter p2 = new SqlParameter(TypePrice, double.Parse(
42、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