版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
理工大学本科毕业项目(论文)酒店管理系统酒店经理酒店管理系统摘要]随着信息化建设的发展,酒店服务业与国际市场接轨已成为大势所趋。迎接这一挑战,酒店业必须提高整体竞争力,转变酒店管理模式,提高管理水平。实施信息化建设无疑是实现这一目标的必由之路和明智之举。目前,我国酒店服务业信息化管理进程缓慢,与国外酒店相比,管理尚有差距。在激烈的酒店业竞争中,我们如何才能抓住机遇,保持优势,立于不败之地?这就需要提供最好的服务,提供最完善的设施和最先进的技术。在信息化时代,更重要的是拥有完善的管理信息系统,方便客人更好地管理酒店。[关键词]酒店管理系统;B/S模式;对比2008目录1前言12相关理论基础12.1B/S结构12.2ASP.NET和VisualStudio200822.3SQL和SQLServer2005Express33需求分析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.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技术,而不是单一的前端管理软件甚至传统的前后端软件。现代酒店是集客房、餐饮、通讯、娱乐、商务文化等服务和设施为一体的消费场所。酒店组织庞大,服务项目多,信息量大。为了提高劳动生产率,降低成本,提高服务质量和管理水平,进而提高经济效益,必须使用计算机进行现代信息化管理,酒店管理系统就是为此而设计的,本系统是一套优秀、适用于大中型星级宾馆系统,操作简单,灵活性好,系统安全性高,运行稳定,是管理者的理想选择。酒店管理系统以计算机网络技术为基础,采用多层结构,融合多媒体技术、远程通信技术和IT技术,将各类软件工具集成为一个具有统一用户界面的大系统,并在网络。酒店全面电脑化管理。它不仅具有传统软件的所有功能和更强大的功能,而且根据酒店行业的当前经营状况,专注于营销、成本控制、销售和成本预算。整个酒店的技术和运营解决方案。一家成功的酒店将经济效益作为酒店的经营宗旨,管理的核心是如何提高经济效益。酒店管理系统以酒店的经济效益为目标,为酒店管理者和员工提供易于使用、功能强大、高度灵活的应用工具,激励他们为客人提供更好的服务。这些改进让客人感到更快乐,从而为酒店带来更多回头客和收入。同时,通过对人流、物流、资金流的科学管理和有效控制,提高员工的工作效率,降低各项运营成本,获得持久的利润。2相关理论基础2.1B/S结构B/S(Browser/Server)结构是浏览器和服务器的结构。它是随着互联网技术的兴起对C/S结构的改变或改进。在这种结构下,用户界面通过WWW浏览器实现,极少部分事务逻辑在前端(Browser)实现,而主要事务逻辑在服务器端(Server)实现,形成一个所谓的三层结构。这大大简化了客户端计算机的负载,降低了系统维护和升级的成本和工作量,降低了用户的总成本(TCO)。按照目前的技术,在局域网中建立B/S结构的网络应用,通过Internet/Intranet方式应用数据库,比较容易掌握,成本也比较低。一次性开发,让不同的人员可以通过不同的访问方式访问和操作同一个数据库;可以有效保护数据平台和管理访问权限,服务器数据库也非常安全。2.2ASP.NET和VisualStudio2008ASP.NET是基于公共语言运行库(CLR)构建的应用程序框架。它用于在服务器端构建强大的Web应用程序。与以前的Web开发模型相比,ASP.NET提供了几个优势:·增强的性能。ASP.NET是在服务器端运行的编译后的CLR代码,而不是像ASP那样解释。ASP.NET利用提前绑定、即时编译、本地优化和缓存服务来提高性能。所有这一切,性能远远超过你曾经编写的每一行代码。·世界级的开发工具支持。在VisualS的集成开发环境(IDE)中,ASP.NET框架由一个工具箱和一个设计器组成。所见即所得(WYSIWYG)编辑、拖放服务器控件和自动部署只是这个强大工具提供的一些功能。·强壮而有弹性。由于ASP.NET基于(CLR),因此整个.NET平台的强大功能和灵活性也可以应用于Web应用程序开发人员。.NETFramework类库、消息传递和数据访问解决方案可以无缝集成到Web中。ASP.NET也是语言中立的,因此您可以选择您最熟悉的语言,或使用多种语言来完成一个应用程序。此外,CLR的互操作性可确保在升级到ASP.NET时,保留现有的基于COM的开发投资。·简单的。ASP.NET使执行常见任务变得容易,从简单的表单提交和客户端验证,到部署和站点配置。例如,ASP.NET内容您构建用户界面,将页面与逻辑代码分开,并像VB的表单执行模型一样处理事件。此外,CLR简化了部署和管理代码服务,例如自动引用和垃圾收集。·易于管理。ASP.NET使用基于文本的分层配置系统,简化了服务器端环境和Web应用程序的设置。由于配置信息以纯文本形式存储,因此新设置不需要本地管理工具的支持。这种“零本机支持”理念也适用于部署ASP.NET应用程序。通过将必要的文件复制到服务器,可以简化将ASP.NET应用程序部署到服务器的过程。部署时无需重启服务器,甚至替换正在运行的变异代码。·可扩展性和高效利用。ASP.NET设计为可伸缩的,旨在提高集群和多处理器环境的性能。此外,ASP.NET运行时密切监视和管理进程,以便在发生错误行为(例如错误和死锁)时,会在当前位置创建新进程,以帮助您的应用程序继续处理事件请求。·可定制和可扩展。ASP.NET提供了一个很好的扩展结构,内容开发人员在适当的级别“插入”他们的代码。事实上,您可以使用自己编写的组件扩展或替换ASP.NET运行时的任何子组件。VisualStudio是一套完整的开发工具,用于构建ASP.NETWeb应用程序、XMLWeb服务、桌面应用程序和移动应用程序。VisualBasic、VisualC++、VisualC#和VisualJ#都使用相同的集成开发环境(IDE),它内容您共享工具并帮助创建混合语言解决方案。此外,这些语言利用.NETFramework的功能,它提供了对简化ASPWeb应用程序和XMLWebServices开发的关键技术的访问。2.3SQL和SQLServer2005速成版SQL是一种用于组织、管理和检索存储在计算机中的数据库的语言。SQL一词是“结构化查询语言(StructuredQueryLanguage)”的缩写。它是IBM的圣何塞实验室为SystemR设计的一种语言。自1982年以来,美国国家标准协会(ANSI)就开始了SQL标准化工作。1986年,ANSI数据库委员会批准SQL作为美国关系数据库语言标准,这是第一个SQL标准,并出版了SQL标准文本。1987年,国际标准化组织(ISO)也作出了同样的规定。当前的SQL标准是1992年指定的SQL-92标准,一种用于与数据库交互的语言。SQL语言的大受欢迎是当今计算机行业最引人注目的趋势之一。在过去的几年里,SQL已经发展成为标准的计算机数据库查询语言。现在,从微机到大型机,很多数据库产品都支持SQL,SQL的国际标准不断被采用和扩展。SQL在各大计算机开发的数据库系统中占有重要地位。SQLServer提供服务器端软件。这部分需要安装在NTServer上。SQLServer的客户端可以安装在许多客户端PC系统中。Windows内容客户端创建、维护和访问数据库。SQLServer最多可以定义32,767个数据库。在每个数据库中,可以定义20亿张表。每个表可以有250个字段。每个表中的数据数量没有限制。每个表可以定义250个索引。有一个可以聚集的索引。SQLServer使用的数据库查询语言称为Transact-SQL,它是SQLServer的核心。Transact-SQL加强了原有SQL关键字的数据访问、存储和处理功能。Transact-SQL扩展了过程控制名称,使您可以轻松编写功能强大的存储过程。它们存储在服务器端并提前编译。执行速度非常块状。触发是一种特殊的存储过程,用于确保SQLServer数据库引用的完整性。可以创建插入、删除和更新触发器来控制相关表中数据列的插入、删除和更新,也可以使用规则(Rule)、默认(default)和约束(Constraints),辅助将新值应用到表。3需求分析3.1运行环境操作系统:windows2000server中文版、windows2003Server或WindowsXP数据库:SQLServer2005中文企业版开发工具:MicrosoftVisualStudio.NET2008EnterpriseEdition(C#)3.2系统要求3.2.1功能要求系统功能主要包括登录功能、房型管理、房间管理、开房、退房、数据操作、订房、换房八个部分。下面根据不同的功能处理来介绍具体功能。1.登录功能只有输入正确的用户名和密码后,才能登录操作界面。2、房型管理您可以添加、删除、修改和查询房型。3、房间信息管理您可以添加、删除、修改和查询房间信息。4.开房功能记录住户信息,将对应的房间状态改为“入住”。5.退房a)计算总费用(房费+加床费)*退房天数。b)退房时,应判断当前的退房时间。酒店一般中午12:00退房。如果超过12:00,理论上会被算作额外的一天。可以弹出“是否增加一天”的提示。c)退房成功后,将对应的房间状态改为“空闲”。d)更新用户的总消费量。e)更新用户的VIP状态。6.数据操作a)每月检查签到记录。b)查看指定日期的入住记录。c)可查询指定住户的入住记录。7.房间预订功能a)提前预订房间,注意房间状态,其他客人在预订日期前仍可入住。b)预订房间到期未入住处理。8.换房当住户需要时,可以更换房间。3.2.2性能要求整个系统应易于操作、界面友好、易于维护。数据库要求运行稳定、执行速度快、数据安全性高。软件系统本身对计算机硬件平台和操作系统平台的要求适中。3.3系统层次模块图酒店管理系统的层次模块图如图3-1所示。酒店管理系统统酒店管理系统统用户登录模块用户登录是否有效否是房间类型管理房间信息管理开房退房数据更新预订房换房间房间类型的添加、删除、修改、查询房间的添加、删除、修改、查询将房间状态改为“入住”退房结算、更改状态与住户信息按月、指定日期、XX查询入住记录处理换房图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所示:表4-3功能模块设计功能模块用户登录用户登录房型管理模块1.添加房型2.修改房型3.删除房型4.查看房型房间信息管理模块1.添加房间信息2.修改房间信息3.删除房间信息4.查询房间信息开房功能模块记录用户信息并将房间状态更改为“入住”查看功能模块1.计算总成本2.确定当前的退房时间3.退房成功后,对应房间设置为“免费”4.更新用户总消费金额5.更新用户VIP状态数据处理模块1.每月检查入住记录2.可以查看指定日期的入住记录3.可查询指定住户入住记录接表4-3预约功能模块1.注意房间状态,其他客人可在预定日期前入住2.预订房间到期未入住的处理更衣室功能模块用户需要时更换房间4.2数据库设计1.数据库的表结构是一个很重要的环节。一个好的数据库设计可以提高效率,方便维护,为以后的功能扩展留出空间。表4-4是系统数据库表的列表。表4-4数据表列表序列号数据表名阐明1房间_记录室信息2房型_记录室类型3客户信息表记录客户信息4历史表入住记录5预订记录预约信息记录6居民登记信息记录入住信息图4-1部分数据表之间的连接图上图4-1是部分数据表的结构图,从中可以看出表之间的关系。下面详细描述每个信息表。1.房间信息表,如表4-5表4-5房间信息表字段名称数据类型字段说明评论房间号整数房间信息不内容为空数字varchar(50)房间号主键自动加1床号整数床号不内容为空描述varchar(255)房间描述不内容为空状态varchar(50)房间状况不内容为空客人号码整数户口号码不内容为空类型ID整数房型不内容为空2、房型表,如表4-6表4-6房型表字段名称数据类型字段说明评论类型ID整数类型信息主键自动加1类型名称变量字符(50)类型名称不内容为空类型价格钱钱类型价格不内容为空加床变量字符(20)是否加床不内容为空添加BedP大米我的加床费不内容为空备注_V弓(50)评论不内容为空3.客户信息表,如表4-7表4-7客户信息表字段名称数据类型字段说明评论顾客号码整数顾客号码主键自动加1变量字符(50)空的性别V弓(10)性别空的不V弓(22)不空的连接V弓(50)连接空的贵宾V弓(50)贵宾空的总消费钱_总消费空的4.历史表,如表4-8表4-8历史表字段名称数据类型字段说明评论客户变量字符(50)客户主键自动加1入住房间号变量字符(50)入住房间号空的登记时间V弓(50)登记时间空的预约时间V弓(50)预约时间空的退房时间V弓(50)退房时间空的是否加床变量字符(50)是否加床空的订金变量字符(50)订金空的总消耗钱钱总消耗空的阐明V弓(250)阐明空的ID整数ID不内容为空5.预订记录表,如表4-9表4-9预约记录表字段名称数据类型字段说明评论房间号变量字符(50)类型信息空的预定入住时间变量字符(50)类型名称空的预订退房时间变量字符(50)类型价格空的顾客号码整数是否加床空的ID整数加床费主键自动加16.户籍信息表,如表4-10表4-10户籍信息表字段名称数据类型字段说明评论顾客号码整数客户空的订金钱_入住房间号空的入住房间号V弓(50)登记时间空的登记时间V弓(50)预约时间空的预定退房时间V弓(50)退房时间空的退房时间变量字符(50)是否加床空的是否加床变量字符(50)订金空的总消耗钱钱总消耗空的评论V弓(50)阐明空的ID整数ID主键自动加12.数据库配置本系统开发是在windowsXP下开发的,开发数据库使用sqlserver。具体配置步骤如下:(1)打开sqlserver企业管理器,新建一个数据库,命名为bm(2)在bm中创建房间、房间类型、客户信息等数据库表(3)完成数据初始化,在表中添加字段和域值。具体数据库设计部分如图4-2至图4-7所示。图4-2房间信息表图4-3房间类型表图4-4客户信息表图4-5历史记录表图4-6预约记录表图4-7户籍信息表5系统实现5.1类库实现整个系统的布局采用框架结构。在顶部框架中是系统的标题。主机架分为左右两部分。左框为树型功能菜单,整个系统功能模块的跳转主要在这里完成。右侧框架用于显示和操作主要功能模块。整个页面看起来简洁明了,界面简洁易操作。整个系统在几乎所有模块中都涉及大量类似的数据库操作。所以提取几个常用的方法,放到一个公共类中,供所有模块调用。首先建立与SQLServer数据库的连接。代码显示如下:SqlConnectionsqlconn=newSqlConnection("数据源=.\\sqlexpress;初始目录=bm;持久安全信息=True;用户ID=sa;密码=123");DataCom方法用于返回受影响结果的行数,但什么也不返回。操作过程是先打开连接,然后创建一个要对SQLServer数据库执行的SQL语句的对象,执行SQL语句,然后关闭数据库连接。具体代码如下:公共无效数据通信(字符串sqlstr){sqlconn.Open();SqlCommandsqlcom=newSqlCommand(sqlstr,sqlconn);sqlcom.ExecuteNonQuery();sqlconn.Close();}rowNumber方法用于返回受影响的行数。但与DataCom不同,它返回int类型的特定行号。rowFirst方法用于返回对象类型查询后第一行第一列的结果。代码和上面两个方法类似,只是执行ExecuteScalar方法得到第一行第一列的结果。本系统用户分为普通登录人员和管理员两类。我们使用一段代码来实现不同的登录类型来登录并执行不同的操作。代码显示如下:如果(会话[“离开”]!=null){离开=会话[“离开”].ToString();name=Session["user_ID"].ToString();如果(离开==“1”){Response.Redirect("tsxx.aspx");}}别的{Response.Redirect("main.aspx");}5.2登录界面1.登录页面的功能主要是让合法用户根据自己的用户类型、用户名和密码进行登录。如果输入错误,会有提示。如果用户在没有登录的情况下选择了其他功能模块,将返回登录界面。如果用户已经登录,可以在登录模块中进行注销操作。如果用户类型错误,则会出现错误消息。登录该页面或刷新该页面时,必须先进行会话判断。输入用户名和密码后,首先确认输入框中有数据,并将输入框中的数据与数据库中的数据进行对比进行验证。如果一切顺利,将生成两个会话,分别存储用户名和用户类型。然后跳转到对应的登录成功页面。主要运行代码:SqlConnectionsqlconn=newSqlConnection(ConfigurationManager.ConnectionStrings["bmConnectionString"].ToString());;sqlconn.Open();SqlCommandsqlcmd=newSqlCommand("selectleavefromuserswherename='"+TBusers.Text+"'andpassword='"+TBpass.Text+"'",sqlconn);字符串离开=Convert.ToString(sqlcmd.ExecuteScalar());SqlCommandsqlcmd2=newSqlCommand("selectuser_IDfromuserswherename='"+TBusers.Text+"'andpassword='"+TBpass.Text+"'",sqlconn);intcount=Convert.ToInt32(sqlcmd2.ExecuteScalar());2.内容用户不时更改密码,保护密码安全,防止自己的信息被泄露。二级界面使用验证控件,更易于操作和管理。在使用不同的验证控件时,要注意验证控件的属性设置,使其正常工作。主要执行代码:SqlConnectionconn=newSqlConnection();conn.ConnectionString=ConfigurationManager.ConnectionStrings["bmConnectionString"].ToString();conn.Open();SqlCommandcmd=newSqlCommand("selectpwdfromteawherename='"+TextBox4.Text+"'",conn);SqlDataReaderdr=cmd.ExecuteReader();if(dr.Read()){yp=dr.GetString(0);if(TextBox1.Text.ToString()!=yp){Response.Write("<script>alert('原密码错误!');</script>");}别的{博士关闭();cmdmandText="更新茶具pwd='"+TextBox2.Text+"'wherename='"+TextBox4.Text+"'";cmd.ExecuteNonQuery();conn.Close();Response.Write("<script>alert('密码更改成功!');</script>");}5.3基本设置界面酒店管理系统的基本设置模块包括五个子模块,即房型设置、房间信息设置、客户详细信息、住户登记设置、预订信息设置。主要功能是完成各种信息的设置。该界面主要是基础设置部分,其中房型设置可以对房型进行添加、删除、修改、查询等操作。包括类型信息、类型名称、其键码:公共静态TypeRoomSelectRoomType(字符串ID){SqlParameterp1=newSqlParameter("TypeID",int.Parse(ID));DataTabletable=DBHelp.Select("GetAllByRoomTypeID",p1);数据行行=table.Rows[0];TypeRoomro=newTypeRoom();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();}返回ro;}公共静态TypeRoomSelectRoomType(字符串ID){SqlParameterp1=newSqlParameter("TypeID",int.Parse(ID));DataTabletable=DBHelp.Select("GetAllByRoomTypeID",p1);数据行行=table.Rows[0];TypeRoomro=newTypeRoom();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();}返回ro;}公共静态intADDtypeRoom(TypeRoomty){SqlParameterp1=newSqlParameter("typeName",ty.TypeName);SqlParameterp2=newSqlParameter("TypePrice",double.Parse(ty.TypePrice));SqlParameterp3=newSqlParameter("IsAddBed",ty.IsAddBed);SqlParameterp4=newSqlParameter("AddBedPrice",double.Parse(ty.AddBedPrice));SqlParameterp5=newSqlParameter("Remark",ty.Remark);返回DBHelp.Excurt("插入房间类型",p1,p2,p3,p4,p5);}公共静态intUpdatetypeRoom(TypeRoomty){SqlParameterp1=newSqlParameter("typeName",ty.TypeName);SqlParameterp2=newSqlParameter("TypePrice",double.Parse(ty.TypePrice));SqlParameterp3=newSqlParameter("IsAddBed",ty.IsAddBed);SqlParameterp4=newSqlParameter("AddBedPrice",double.Parse(ty.AddBedPrice));SqlParameterp5=newSqlParameter("Remark",ty.Remark);SqlParameterp6=newSqlParameter("TypeID",int.Parse(ty.TypeId));returnDBHelp.Excurt("UpdateRoom",p1,p2,p3,p4,p5,p6);}在房型名称中输入对应的房型名称,点击查询按钮,即可看到相应房型的详细信息。单击添加按钮以添加房间类型。点击修改按钮,修改对应的房型信息。修改后点击保存,保存修改信息,提示“修改完成”。点击删除按钮删除房型信息。酒店管理系统房型设置模块运行结果如图5-1所示。图5-1酒店管理系统房型设置模块操作图房间信息设置可以对房间信息进行添加、删除、修改、查询等操作。包括房间信息、房间号、床号、状态、客户号、描述、类型名称等。其关键码:列表<房间>ro=新列表<房间>();DataTabletable=DBHelp.Select("SelectRoom");foreach(table.Rows中的DataRow行){房间rm=新房间();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();;}if(row["typeID"]!=DBNull.Value){rm.TypeID=row["typeID"].ToString();;}ro.Add(rm);}公共静态intInsertRoom(房间ro){SqlParameterp=newSqlParameter("Number",int.Parse(ro.Number));SqlParameterp1=newSqlParameter("BedNumber",int.Parse(ro.BedNumber));SqlParameterp2=newSqlParameter("Description",ro.Description);SqlParameterp3=newSqlParameter("State",ro.State);SqlParameterp4=newSqlParameter("GuestNumber",int.Parse(ro.GuestNumber));SqlParameterp5=newSqlParameter("TypeID",int.Parse(ro.TypeID));返回DBHelp.Excurt("插入房间",p,p1,p2,p3,p4,p5);}公共静态intUpdateRoom(房间ro){SqlParameterp=newSqlParameter("Number",int.Parse(ro.Number));SqlParameterp1=newSqlParameter("BedNumber",int.Parse(ro.BedNumber));SqlParameterp2=newSqlParameter("Description",ro.Description);SqlParameterp3=newSqlParameter("State",ro.State);SqlParameterp4=newSqlParameter("GuestNumber",int.Parse(ro.GuestNumber));SqlParameterp5=newSqlParameter("RoomID",int.Parse(ro.RoomId));returnDBHelp.Excurt("UpdateTRoom",p,p1,p2,p3,p4,p5);}公共静态intDeleteRoom(字符串ID){SqlParameterp=newSqlParameter("roomID",int.Parse(ID));returnDBHelp.Excurt("DeleteRoomID",p);}在房号中输入对应的房号,点击查询按钮即可查看对应房号的详细信息。点击Add按钮添加房间,点击Modify按钮修改对应的房间信息,修改后点击Save保存修改信息并提示“修改完成”。点击删除按钮删除房间信息。酒店管理系统客房信息设置模块运行结果如图5-2所示。图5-2酒店管理系统客房信息设置模块操作图可以对客户资料进行添加、删除、修改和查询客户资料。包括,性别、号码、联系人、VIP、总消费金额。其关键代码:公共静态intInsertKH(客户cu){SqlParameterp=newSqlParameter("",cu.Cname);SqlParameterp1=newSqlParameter("Sex",cu.Sex);SqlParameterp2=newSqlParameter("Number",cu.NumNo);SqlParameterp3=newSqlParameter("联系人",cu.Hpeor);SqlParameterp4=newSqlParameter("VIP",cu.Vip);SqlParameterp5=newSqlParameter("总消费量","0");returnDBHelp.Excurt("InsertKH",p,p1,p2,p3,p4,p5);}客户cus=newCustomer();if(row["客户ID"]!=DBNull.Value){cus.Cnumber=row["客户编号"].ToString();}if(row[""]!=DBNull.Value){cus.Cname=row[""].ToString();}如果(行[“性别”]!=DBNull.Value){cus.Sex=row["Sex"].ToString();}if(row["Number"]!=DBNull.Value){cus.NumNo=row["Number"].ToString();}if(row["Contact"]!=DBNull.Value){cus.Hpeor=row["联系人"].ToString();}if(row["VIP"]!=DBNull.Value){cus.Vip=row["VIP"].ToString();}if(row["总消费金额"]!=DBNull.Value){cus.NumPrice=row["总消费金额"].ToString();}cu.Add(cus);}返回cu;在客户信息列表中,可以查看现有客户的详细信息,包括客户、性别、号码、联系人、VIP、总消费金额等信息。图5-3显示了酒店管理系统的客户详情模块的运行结果图5-3酒店管理系统客户详细信息模块运行图其中,户籍设置可以登记住户信息,并可以查询登记记录,匹配住户的历史记录。包括客户编号、押金、房间号、入住时间、预定退房时间、是否加床、备注、总费用、身份证。其关键代码:publicstaticintInsertZh(Comterco){SqlParameterp=newSqlParameter("客户编号",co.Knumber);SqlParameterp1=newSqlParameter("押金",double.Parse(co.YPrice));SqlParameterp2=newSqlParameter("房间号",int.Parse(co.RoomNumber));SqlParameterp3=newSqlParameter("签到时间",co.RzTime);SqlParameterp4=newSqlParameter("预定退房时间",co.YdTime);SqlParameterp5=newSqlParameter("是否加床",co.RdoYes);SqlParameterp6=newSqlParameter("备注",co.BzName);SqlParameterp7=newSqlParameter("总成本","0");返回DBHelp.Excurt("InsertZh",p,p1,p2,p3,p4,p5,p6,p7);}如果(数字!=“空”){SqlParameterp=newSqlParameter("ID",int.Parse(Number));表=DBHelp.Select(SQL,p);}foreach(table.Rows中的DataRow行){Comterer=newComter();if(row[""]!=DBNull.Value){er.KhName=row[""].ToString();}if(row["入住房间号"]!=DBNull.Value){er.RoomNumber=row["房间号"].ToString();}if(row["入住时间"]!=DBNull.Value){er.RzTime=row["签到时间"].ToString();}if(row["预定退房时间"]!=DBNull.Value){er.YdTime=row["预定退房时间"].ToString();}if(row["ID"]!=DBNull.Value){er.ID=int.Parse(row["ID"].ToString());}如果(数字!=“空”){if(row["CustomerNumber"]!=DBNull.Value){er.Knumber=row["客户编号"].ToString();}}if(row["Checkouttime"]!=DBNull.Value){er.TfTime=row["退房时间"].ToString();}if(row["是否加床"]!=DBNull.Value){er.RdoYes=row["是否加床"].ToString();}if(row["deposit"]!=DBNull.Value){er.YPrice=row["押金"].ToString();}if(row["Totalcost"]!=DBNull.Value){er.NumPirec=row["总成本"].ToString();}if(row["Remark"]!=DBNull.Value){er.BzName=row["备注"].ToString();}co.Add(er);}酒店管理系统的居民登记设置模块运行结果如图5-4所示。图5-4酒店管理系统居民登记设置模块操作图在居民登记设置中,可以显示入住房间、入住时间、预归时间、是否加床、押金、总费用、描述等信息。并点击查询,可以按月查询、按日期查询、按客户查询。也可以对单户进行操作,可以对住户进行退房、换房等操作。并且您可以查看成功结帐的历史记录。点击结账后,会弹出一个对话框,询问“是否再增加一天”,点击“否”,弹出“结账成功”。预订信息设置可以为住户登记预订信息,包括房间号、入住时间、退房时间、客户编号、预订入住时间。其关键代码:公共静态intInsertYd(YdClassyd){SqlParameterp=newSqlParameter("RoomNumber",int.Parse(yd.RommNumber));SqlParameterp1=newSqlParameter("签到时间",yd.YDTime);SqlParameterp2=newSqlParameter("签出时间",yd.YtTime);SqlParameterp3=newSqlParameter("客户编号",int.Parse(yd.KhNumber));returnDBHelp.Excurt("InsertYd",p,p1,p2,p3);}公共静态数据表SelectTimeA(字符串编号,字符串YdTime,字符串KhNumber){SqlParameterp=newSqlParameter("客户编号",int.Parse(KhNumber));SqlParameterp1=newSqlParameter("预定入住时间",YdTime);SqlParameterp2=newSqlParameter("房间号",int.Parse(Number));返回DBHelp.Select("SelectTimeA",p,p1,p2);}公共静态数据表SelectTimeB(字符串编号,字符串YdTime){SqlParameterP=newSqlParameter("房间号",int.Parse(Number));SqlParameterp1=newSqlParameter("预定入住时间",YdTime);返回DBHelp.Select("SelectTimeB",P,p1);}publicstaticDataTableSelectTimeC(stringNumber,stringYdTime){SqlParameterP=newSqlParameter("房间号",int.Parse(Number));SqlParameterp1=newSqlParameter("预定入住时间",YdTime);返回DBHelp.Select("SelectTimeC",P,p1);}5.4服务管理接口酒店管理系统的业务管理接口模块包括三个子模块,分别是添加客户信息、居民登记、添加预订记录。主要功能是实现各种业务操作。在酒店管理系统中加入客户信息模块,用于记录和保存新的住客信息,或者处理VIP用户信息。在客户信息添加模块中,输入相应信息后,点击添加按钮,会提示“添加成功”。单击“取消”取消此操作。其关键代码:私人无效btn_ADD_Click(对象致者,EventArgse){整数=0;//标识数据库操作的结果if(txt_Name.Text.Trim()==""||txt_No.Text.Trim()==""||txt_Phoen.Text.Trim()==""||_VIP.Text.Trim()==""||rdo_G.Checked==false&&rdo_M.Checked==false){MessageBox.Show("所有项目都是必填项","操作提示");}别的{客户cu=新客户();cu.Cname=txt_Name.Text.Trim();cu.Hpeor=txt_Phoen.Text;cu.NumNo=txt_No.Text;字符串性=rdo_G.Checked?“男”:“女”;cu.Vip=_VIP.Text;cu.Sex=性别;DataTable表=BLLCostomer.SelectName(txt_Name.Text);if(table.Rows.Count==1)MessageBox.Show("客户已存在","操作提示");}别的{number=BLLCostomer.InsertKH(cu);如果(数字>0){MessageBox.Show("添加成功","操作提示");this.Close();}别的{MessageBox.Show("添加失败","操作提示");}}图5-5显示了将客户信息模块添加到酒店管理系统的结果图5-5酒店管理系统添加客户信息模块操作示意图酒店管理系统的居民登记模块是新居民的住房登记模块。该模块主要登记住户的各项信息,包括客户编号、押金、房间号、入住时间、预定退房时间、是否加床、备注等信息。在户籍模块中,按上述要求填写。点击确定后会提示“添加成功”,点击“取消”可以取消该操作。如果信息添加不正确,可以在基本设置的客户详情中进行更改。其关键代码:公共AddMusb(){初始化组件();}//判断存款只能用数字输入私人无效txt_Ymoney_KeyPress(对象致者,KeyPressEventArgse){if(!(e.KeyChar=='\b')&&!Char.IsDigit(e.KeyChar)){e.Handled=true;}}私人无效AddMusb_Load(对象致者,EventArgse){txt_Rtime.MinDate=DateTime.Now;//设置只能选择当前时间txt_Ytime.MinDate=DateTime.Now;//设置只能选择当前时间txt_Rtime.MaxDate=DateTime.Now;//设置只能选择当前时间//客户编号_number.DataSource=BLLCostomer.SelectKH();_number.DisplayMember="Cnumber";_number.ValueMember="Cname";lbl_Number.Text=_number.SelectedValue.ToString();//房间号_roomNumber.DataSource=BLLroom.SelectState();_roomNumber.DisplayMember="数字";_roomNumber.ValueMember="类型名称";if(_roomNumber.SelectedValue==null){lbl_TypeName.Text="房间已满";}别的{lbl_TypeName.Text=_roomNumber.SelectedValue.ToString();}}私人无效btn_close_Click(对象致者,EventArgse){this.Close();}将居民登记模块添加到酒店管理系统的结果如图5-6所示图5-6酒店管理系统添加居民登记模块操作图酒店管理系统的客房预订模块是添加到客户预订房间信息中的模块。该模块包括房间号、预定入住时间、预定退房时间、客户编号等信息。输入信息后点击“确定”,如果在此时间段内有人入住,会提示“房间已被占用”,如果正常则提示“预订成功”,点击“取消”"按钮,它将取消此操作。它的关键代码:if(co.YdTime!=null){if(int.Parse(DateTime.Parse(co.YdTime).ToString("yy"))==int.Parse(DateTime.Parse(YtTime.Text).ToString("yy").ToString())){if(int.Parse(DateTime.Parse(co.YdTime).ToString("MM"))==int.Parse(DateTime.Parse(YtTime.Text).ToString("MM").ToString())){if(int.Parse((DateTime.Parse(YdTime.Text).ToString("dd")))-int.Parse(DateTime.Parse(YtTime.Text).ToString("dd").ToString())>=1){MessageBox.Show("有人停留在这个时间段","操作提示");返回;}表=BLLydClass.SelectTimeA(_RoomNumber.Text,YdTime.Text,_Khnumber.Text);if(table.Rows.Count>0){MessageBox.Show("客户一天不能预定同一个房间","操作提示");}别的{table=BLLydClass.SelectTimeB(_RoomNumber.Text,YdTime.Text);if(table.Rows.Count>0){MessageBox.Show("时间段已被预订","操作提示");}别的{表=BLLydClass.SelectTimeC(_RoomNumber.Text,YdTime.Text);if(table.Rows.Count>0){MessageBox.Show("有人停留在这个时间段","操作提示");}别的{整数=0;//标识操作的结果YdClassyd=newYdClass();yd.KhNumber=_Khnumber.Text;yd.RommNumber=_RoomNumber.Text;yd.YDTime=YdTime.Text;yd.YtTime=YtTime.Text;number=BLLydClass.InsertYd(yd);如果(数字>0){MessageBox.Show("预订成功","操作提示");this.Close();}别的{MessageBox.Show("预订失败","操作提示");}6检测报告6.1测试基本要求6.1.1内容检查1、检查整个页面的布局,看是否完整;2.检查被覆盖的文字或其他显示对象;3、检查是否有超出边界的控件;4.通读页面上的所有文字,检查是否有错别字、遗漏和拼写错误;5、在需要大量重复测试的页面上,布局和显示只需要测试一次;6.1.2考试1、页面是否下载并正常显示;2、页面上的所有对象是否都可以加载到页面上;3.页面加载时间可以接受吗?如果时间过长,请记录;4.检查页面上的所有连接,检查连接是否正常,连接页面是否正确;5、每个页面的加载时间由配置测试负责,但如果发现异常,可以记录下来。6.1.3可用性测试1、所用语言是否清晰易懂;2、命令、提示、信息是否具有协调的含义;3、用户是否可以随时知道自己的位置;4、用户是否可以随时了解系统的当前状态;5、导航是否方便;6、操作简单吗?7、输入字段是否有必填字段的特殊提示;8.系统应尽可能提供默认值;9、输入错误时是否明确指出错误信息等。所有认为不方便使用可进一步改进的点。6.1.4功能检查检查页面是否缺少功能,典型功能是:1.查询/显示功能;2.输入/修改/删除功能;3.注册/登录功能;对于每个功能,都需要测试以下几个方面:1.检查输入字段,包括有效输入和无效输入;2.选择不同的设置;3、检查功能是否正确实现;4、检查输出是否正常;5.检查所有功能/业务流程。6.1.5容错测试作为容错测试和功能测试的一部分,它可以检查系统处理合法输入的能力,即检查在正常情况下是否可以实现功能,即功能测试。检查系统处理非法输入的能力,即检查系统在异常情况下是否能正确处理,是一种容错测试。其主要检查:1、系统能否识别用户输入错误。2.系统是否能够处理发生的错误而不使功能失效。3、系统是否可以提示用户解释发生的错误。6.2测试用例设计方法示例6.2.1输入字段测试输入字段测试如表6-1所示。表6-1测试表(健康)状况有效输入输入无效字符类型空的,不空的非字形数字0、正、负非数字合乎逻辑的真假其他值评论空的,不空的字符长度最多为n长度为0,1,n-1,nN+1取值x>aX>aX<a,x=ax>=aX>a,x=aX<一个X=一个X=一个X<a,x>aX<=一个X<a,x=ax>aX<>一X<a,x>aX=一个A<x<bA<x<bX<a,x=a,x=b,x>bA<=x<=bA<x<b,x=a,x=bX<a,x>b输入区
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 班组安全工作目标及措施计划培训课件
- 2025年教育评估模型的评估方法比较研究
- 账务往来解协议书
- 质量索赔协议书模板
- 购房合同解约协议书
- 20T燃气热水锅炉维护与检修规程培训
- 莱姆病性神经病护理查房
- 颈部皮肤恶性肿瘤护理查房
- 阔韧带恶性肿瘤护理查房
- 骨髓抑制护理查房
- 2026广东广州南方投资集团有限公司社会招聘49人备考题库附答案详解(研优卷)
- 【时政解读】从美式斩杀线看中国温度与制度力量 课件
- 2026年广州市黄埔区事业单位招聘笔试参考题库及答案解析
- 油漆车间安全培训
- 第25讲-理解为王:化学反应原理综合题解法策略
- 2025多学科共识:慢性阻塞性肺病患者心肺风险的识别和管理课件
- 2026年共青团入团积极分子考试测试试卷题库及答案
- 2025学年河北省名校协作体高三语文上学期12月考试卷附答案解析
- 2025湖南大学出版社有限责任公司招聘笔试历年常考点试题专练附带答案详解试卷2套
- 制造业产品研发流程优化方案
- 某法律服务公司车辆调度管理细则
评论
0/150
提交评论