酒店客户住宿服务管理系统

上传人:痛*** 文档编号:112374604 上传时间:2022-06-22 格式:DOC 页数:51 大小:676.54KB
返回 下载 相关 举报
酒店客户住宿服务管理系统_第1页
第1页 / 共51页
酒店客户住宿服务管理系统_第2页
第2页 / 共51页
酒店客户住宿服务管理系统_第3页
第3页 / 共51页
点击查看更多>>
资源描述
西安航空职业技术学院 毕业设计论文酒店客户住宿服务管理系统【摘要】随着社会服务行业的发展,使用管理软件来管理整个宾馆企业的要求也逐年升温,有条件的酒店或宾馆都采用了相关的酒店管理系统,以解决宾馆全凭原始的手工记录管理,效率低、易出错的缺陷。宾馆行业对自身提供服务的质量和能力也有了更高的要求,宾馆信息管理系统正因此而越来越受到重视。宾馆信息管理系统主要实现宾馆酒店的客房管理、客户信息管理、客户添加管理、客户修改管理、客户删除管理功能. 一个宾馆信息管理系统应该包括基本的客房信息管理、客房客户信息管理、入住退房信息管理等相关的信息管理.所以整个宾馆信息管理系统分为两大部分,即后台的数据库管理维护和前台的操作。后台数据库的管理能保证系统各项功能的正常运行,前台操作能提供给宾馆客户尽可能方便快捷的服务。关键词:宾馆信息管理系统,数据库,服务Abstract: With the development of social services sectors, the use of management software to manage the entire hotel business requirements are also gradually warming up, the hotel or guesthouse conditional use of the relevant hotel management system to address the guesthouse entirely original manual records management, low efficiency , Error-prone defects. Hotel industry on their own quality of services provided and ability to have higher requirements, hotel information management systems and are therefore more attention。 Hotel Information Management System main hotel rooms hotel management, customer information management, customer add management, customer modify management, customer management features deleted. A guesthouse information management system should include basic information management rooms, rooms, information management, CheckIn CheckOut information management, and other related information management. Therefore, the entire hotel information management system is divided into two major parts, namely the background database maintenance and future management of the operation. Background database management system to ensure the normal operation of various functions, the outlook for hotel operators can provide to clients as far as possible, convenient and efficient service.Key words: hotel management information system, database, service目 录1。NET对数据库开发的支持31.1ADO。NET概述31.2ADO.NET组件31.3数据绑定控件132概述143需求分析143。1理解需求143。2需求分析154数据库设计164.1创建数据库164。2创建表174.3创建存储过程215连接数据库266页面设计及相关代码分析296。1酒店客房管理系统首页设计及其代码分析296.2客房信息管理页面设计及其代码分析316。3客房信息添加/修改页面设计及其代码分析346。4客房经营管理页面设计及其代码分析396。5订房/退房管理页面设计及其代码分析436.6经营状况统计页面设计及其代码分析467实例演示49结束语50谢辞51文献521 .NET对数据库开发的支持大多数C# 应用程序都是围绕读取和更新数据库中的信息展开的。为了允许在分布式、可缩放应用程序中实现数据集成,Visual Studio .NET 提供对新一代数据访问技术 ADO .NET的支持。1。1 ADO .NET概述在介绍ADO 。NET之前,先澄清一个概念:ADO 。NET是一项超越ADO的重要技术,ADO 。NET这个名字并不代表实际的内容 ADO.ADO原来是表示ActiveX Data Objects,Microsoft已经将ADO .NET作为一种技术的名称。ADO .NET是一组向.NET程序员公开数据访问服务的类。ADO 。NET为创建分布式数据共享应用程序提供了一组丰富的组件。它提供了对关系数据、XML和应用程序数据的访问,因此是。NET Framework中不可缺少的一部分.ADO 。NET支持多种开发需求,包括创建由应用程序、工具、语言或Internet浏览器使用的前端数据库客户端和中间层业务对象。ADO 。NET提供对Microsoft SQL Server等数据源以及通过OLE DB和XML公开的数据源的一致访问.数据共享使用者应用程序可以使用ADO .NET来连接到这些数据源,并检索、操作和更新数据。在介绍如何实现ADO 。NET访问SQL Server 2000数据库前,有必要介绍一下ADO .NET中的一个核心元素,它是.NET Framework数据提供程序,其组件的设计目的相当明确:为了实现数据操作和对数据的快速、只进、只读访问。Connection对象提供与数据源的连接.Command对象使用户能够访问用于返回数据、修改数据、运行存储过程以及发送或检索参数信息的数据库命令。DataReader从数据源中提供高性能的数据流。最后,DataAdapter提供连接DataSet对象和数据源的桥梁。DataAdapter使用Command对象在数据源中执行SQL命令,以便将数据加载到DataSet中,并使对DataSet中数据的更改与数据源保持一致.1。2 ADO.NET组件为了实现对数据库的访问,ADO .NET定义了两个核心组件:DataSet和。NET Framework数据提供程序,后者是一组包括Connection,Command,DataReader和DataAdapter对象在内的组件.1。 DataSetDataSet对象是支持ADO。NET的断开式、分布式数据方案的核心对象。DataSet的设计目的很明确:为了实现独立于任何数据源的数据访问。因此,它可以用于多种不同的数据源,用于XML数据,或用于管理应用程序本地的数据。DataSet包含一个或多个DataTable对象的集合,这些对象由数据行和数据列以及主键、外键、约束和有关DataTable对象中数据的关系信息组成.(1) DataTablesCollection对象DataSet里的表(Table)是用DataTable来表示的。一个DataSet包含DataTable对象所表示的零个或更多个表的集合。DataTableCollection包含DataSet中的所有DataTable对象。DataTable在System。Data命名空间中定义,表示内存驻留数据表。它包含 DataColumn Collection所表示的列和ConstraintCollection所表示的约束的集合,这些列和约束一起定义了该表的架构。DataTable还包含DataRowCollection所表示的行的集合,而DataRow Collection则包含表中的数据.除了其当前状态之前,DataRow还会保留其当前版本和初始版本,以标识对行中存储的值的更改。(2) RelationsCollection对象DataSet在其DataRelationCollection对象中包含关系.关系由DataRelation对象来表示,它使一个DataTable中的行与另一个DataTable中的行相关联。关系类似于可能存在于关系数据库中的主键列和外键列之间的联接路径。DataRelation标识DataSet中两个表的匹配列。关系使用户能够在DataSet中从一个表导航至另一个表。DataRelation的基本元素为关系的名称、相关表的名称以及每个表中的相关列。关系可以通过一个表的多个列来生成,方法是将一组DataColumn对象指定为键列。当关系被添加到DataRelationCollection中时,如果已对相关列值作出更改,它可能会选择添加一个UniqueKeyConstraint和一个Foreign KeyConstraint来强制完整性约束。(3) ExtendedProperties对象DataSet(以及DataTable和DataColumn)具有ExtendedProperties属性。ExtendedProperties是一个PropertyCollection,用户可以在其中放置自定义信息,例如用于生成结果集的SELECT语句或表示数据生成时间的日期/时间戳。ExtendedProperties集合与DataSet(以及DataTable和DataColumn)的架构信息一起保持。2. 。NET Framework数据提供程序。NET Framework数据提供程序用于连接到数据库、执行命令和检索结果。用户可以直接处理检索到的结果,或将其放入DataSet对象,以便与来自多个源的数据或在层之间进行远程处理的数据组合在一起,以特殊方式向用户公开。下表概括了组成.NET Framework数据提供程序的4个核心对象。表11 .NET Framework 数据提供程序的核心对象对 象说 明Connection建立与特定数据源的连接Command对数据源执行命令。公开Parameters,并且可以从Connection在Transa ction的范围内执行DataReader从数据源中读取只进且只读的数据流DataAdapter用数据源填充DataSet并解析更新(1) Connection对象Connection对象有3种:SqlConnection,OleDbConnection和OdbcConnection。其中,SqlConnection主要用于连接SQL Server数据库。表12显示了部分SqlConnection属性。表12 SqlConnection属性属 性类 型描 述ConnectionStringstring获取或设置用来打开数据库的字符串ConnectionTimeoutint获取重试建立数据库连接时等待的秒数Databasestring获取当前数据库名DataSourcestring获取数据库服务器名PacketSizeint获取与SQL Server通信的网络分组的大小ServerVersionstring获取包含SQL Server版本的字符串StateConnection获取当前连接状态WorkstationIdstring获取字符串,此字符串标识连接SQL Server的计算机表1-3显示了部分SqlConnection方法。表1-3 SqlConnection方法方 法返 回 类 型描 述BeginTransaction()SqlTransaction重载,开始数据库事务ChangeDatabase()Void改变打开连接的当前数据库Close()Void关闭数据库连接CreateCommand()SqlCommand生成并返回一个命令对象Open()Void用连接字符串属性指定的属性设置打开数据库连接下面介绍如何使用SqlConnection对象连接SQL Server数据库。为了使用SqlConnection对象,首先需要导入System.Data.SqlClient命名空间。using System。Data。SqlClient;使用SqlConnection()构造函数生成SqlConnection对象。这个构造函数是重载的.SqlConnection()如下:SqlConnection()SqlConnection(string connectionString)其中,connectionString包含数据库连接的细节。这里,我们使用下面语句生成新的SqlConnection对象:SqlConnection myConn = new SqlConnection();然后,可以使用myConn的连接字符串属性设置数据库连接的细节,如下所示。myConn.ConnectionString = server=localhost;uid=sa;pwd=;database=student ”;其中:server指定运行SQL Server的计算机名;database指定数据库名;uid指定数据库用户名;pwd指定用户密码。或者,可以将连接字符串直接传入SqlConnection()构造函数,来生成新的SqlConnection对象。例如:String connectionString = ” server=localhost;uid=sa;pwd=;database=student ”;SqlConnection myConn = new SqlConnection(connectionString);建立了对数据源的连接后,就可以打开数据库连接。只有打开它,才可以使用SqlCommand或SqlDataAdapter对象对连接的数据源执行SQL命令或查询打开数据表。下例调用myConn对象的Open()方法:myConn.Open();完成数据库操作之后,可以调用myConn对象的Close()方法,关闭数据库连接.例如:myConn. Close();(2) Command对象Command对象有3种:SqlCommand,OleDbCommand和OdbcCommand.其中,SqlCommand主要用于对SQL Server数据库执行命令。表14显示了部分SqlCommand属性。表1-4 SqlCommand属性属 性类 型描 述CommandTextstring获取或设置要对数据源执行的 Transact-SQL 语句或存储过程CommandTimeoutint获取或设置在终止执行命令的尝试并生成错误之前的等待时间CommandTypeCommandType获取或设置一个值,该值指示如何解释CommandText属性Connectionstring获取或设置SqlCommand的此实例使用的数据库连接名DesignTimeVisiblebool获取或设置一个值,该值指示命令对象是否应在Windows窗体设计器控件中可见ParametersSqlParameterCollection获取提供给命令的参数TransactionSqlTransaction获取或设置将在其中执行SqlCommand的数据库事务UpdatedRowSourceUpdateRowSource获取或设置命令结果在由DbDataAdapter的Update方法使用时如何应用于DataRow表15显示了部分SqlCommand方法。表1-5 SqlCommand方法方 法返 回 类 型描 述Cancel()Void试图取消SqlCommand的执行CreateParameter()SqlParameter创建SqlParameter对象的新实例ExecuteNonQuery()int对连接执行Transact-SQL语句并返回受影响的行数ExecuteReader()SqlDataReader已重载。将CommandText发送到 Connection并生成一个SqlDataReaderExecuteScalar()object执行查询,并返回查询所返回的结果集中第一行的第一列。忽略额外的列或行ExecuteXmlReader()XmlReader将CommandText发送到Connection并生成一个XmlReader对象Prepare()void在SQL Server的实例上创建命令的一个准备版本ResetCommandTimeout()void将CommandTimeout属性重置为其默认值对数据源的连接建立并打开后,必须使用Command对象执行SQL命令才能从数据库中取得所需的数据表。所以Command对象就是对数据源执行SQL命令的工具,包括:Select,Update,Insert,Delete等,也可以调用存储过程。例如:生成SqlCommand对象有两种办法:一是使用SqlCommand构造函数,二是调用SqlConnection对象的CreateCommand()方法。若使用SqlCommand构造函数,首先要有创建一个SqlConnection对象,用于和SQL Server数据库通信.这里,我们继续使用前面创建的myConn对象。可以用下面语句生成新的SqlCommand对象:SqlCommand myCommand = new SqlCommand();然后,将myCommand对象的Connection属性设置为myConn:myCommand.Connection mySqlConnection;到此,myConn对象就可以使用myCommand对象与数据库通信了。如果不用构造函数,也可以调用SqlConnection对象的CreateCommand()方法生成Sql Command对象。例如:SqlCommand myCommand = myConn。CreateCommand(); 若要执行SQL命令,可以通过CommandText属性来设置。下例将myCommand对象的CommandText属性设置为Update语句,如下:myCommand.CommandText = Update StudentsInfo Set Sage=21 Where Sname=南潇 ”;最后,用ExecuteNonQuery()方法执行SELECT语句:myCommand。ExecuteNonQuery();如果执行成功,便可将南潇的年龄改成21。 (3) DataReader对象DataReader对象用Command对象从数据库中读取记录.DataReader对象有3种:SqlDataReader,OleDbDataReader和OdbcDataReader。其中,SqlDataReader主要用于从SQL Server数据库中读行。表16显示了部分SqlDataReader属性。表1-6 SqlDataReader属性属 性类 型描 述Depthint获取一个值,该值指示当前行的嵌套深度FieldCountint获取当前行中的列数IsClosedbool获取一个值,该值指示数据读取器是否已关闭RecordsAffectedint获取执行TransactSQL语句所更改、插入或删除的行数表1-7显示了部分SqlDataReader方法。表17 SqlDataReader方法方 法返 回 类 型描 述GetBoolean()bool获取指定列的布尔值形式的值GetByte()byte获取指定列的字节形式的值GetBytes()long以指定的列偏移量将字节流读入缓冲区,并将其作为从给定的缓冲区偏移量开始的数组GetChar()char获取指定列的单个字符串形式的值GetChars()long以指定的列偏移量将字符流作为数组从给定的缓冲区偏移量开始读入缓冲区GetDataTypeName()string获取源数据类型的名称GetDateTime()DateTime获取指定列的DateTime对象形式的值GetDecimal()decimal获取指定列的Decimal对象形式的值GetDouble()double获取指定列的双精度浮点数形式的值GetFieldType()Type获取是对象的数据类型的 TypeGetFloat()float获取指定列的单精度浮点数形式的值GetGuid()Guid获取指定列的全局惟一标识符(GUID)形式的值GetInt16()Short获取指定列的16位有符号整数形式的值GetInt32()int获取指定列的32位有符号整数形式的值GetInt64()long获取指定列的64位有符号整数形式的值GetName()string获取指定列的名称GetOrdinal()int在给定列名称的情况下获取列序号GetScheduleTable ()DataTable返回一个DataTable,它描述SqlDataReader的列元数据GetSqlBinary()SqlBinary获取指定列的SqlBinary形式的值GetSqlBoolean()SqlBoolean获取指定列的SqlBoolean形式的值GetSqlDecimal()SqlDecimal获取指定列的SqlDecimal形式的值GetSqlDouble()SqlDouble获取指定列的SqlDouble形式的值GetSqlGuid()SqlGuid获取指定列的SqlGuid 式的值GetSqlInt16()Int16获取指定列的SqlInt16形式的值GetSqlInt32()Int32获取指定列的SqlInt32形式的值GetSqlInt64()SqlInt64获取指定列的SqlInt64形式的值GetSqlMoney()SqlMoney获取指定列的SqlMoney形式的值GetSqlSingle()SqlSingle获取指定列的SqlSingle形式的值GetSqlString()SqlString获取指定列的SqlString形式的值GetSqlValue()object获取一个表示基础SqlDbType变量的ObjectGetSqlValues()int获取当前行的集合中的所有属性列GetSqlString()SqlString获取指定列的字符串形式的值GetValue()object获取以本机格式表示的指定列的值GetValues()int获取当前行的集合中的所有属性列IsDBNull()bool获取一个值,该值指示列中是否包含不存在的或缺少的值NextResult()bool当读取批处理TransactSQL语句的结果时,使数据读取器前进到下一个结果Readbool使SqlDataReader前进到下一条记录生成DataReader对象只能通过Command对象的ExecuteReader()方法。例如,下列代码生成所要的对象并执行一个Select语句,从数据库Student的StudentsInfo表中读取所有记录,将返回的行存放在SqlDataReader对象中。String connectionString = server=localhost;uid=sa;pwd=;database=student ;SqlConnection myConn = new SqlConnection(connectionString);SqlCommand myCommand = myConn.CreateCommand();myCommand。CommandText = Select Stu_Id, Sname, Sgender, Sage, Sdept +” From StudentsInfo +” Order By Stu_Id;myConn。Open();SqlDataReader myReader = myCommand.ExecuteReader();如果要从DataReader对象中取行,可以使用Read()方法.这个方法在还有可读行时返回布尔值true,否则返回布尔值false.可以从DataReader中读取一行中单独的列值,方法是在方括号中传递列名.例如,要读取Stu_Id,使用myReaderStu_Id”。也可以指定需要的列,方法是在括号中传递一个数值。例如,myReaderStu_Id也返回Stu_Id列值。下面的代码演示了这两种读取列值的方法.使用列名读取列值:while ( myReader.Read() ) Console。WriteLine( myReader”Stu_Id” );Console.WriteLine( myReaderSname” );Console.WriteLine( myReader”Sgender” );Console。WriteLine( myReaderSage );Console。WriteLine( myReader”Sdept );使用数字列位置读取列值:while ( myReader.Read() ) Console.WriteLine( myReader0 );Console。WriteLine( myReader1 );Console。WriteLine( myReader2 );Console。WriteLine( myReader3 );Console.WriteLine( myReader4 );完成读取操作之后,可以调用Close()方法关闭myReader对象:myReader。 Close();(4) DataAdapter对象DataAdapter对象有3种:SqlDataAdapter,OleDbDataAdapter和OdbcDataAdapter.其中,SqlDataAdapter对象同步DataSet对象中存储的数据与SQL Server数据库中的数据。表18显示了部分SqlDataAdapter属性。表18 SqlDataAdapter属性属 性类 型描 述AcceptChangesDuringFillbool获取或设置一个值,该值指示在任何 Fill操作过程中,在将AcceptChanges添加到DataTable之后是否针对DataRow调用它ContinueUpdateOnErrorbool获取或设置一个值,该值指定在行更新过程中遇到错误时是否生成异常SelectCommandSqlCommand获取或设置一个Transact-SQL语句或存储过程,用于在数据源中选择记录InsertCommandSqlCommand获取或设置一个Transact-SQL语句或存储过程,以在数据源中插入新记录DeleteCommandSqlCommand获取或设置一个Transact-SQL语句或存储过程,以从数据集删除记录UpdateCommandSqlCommand获取或设置一个Transact-SQL语句或存储过程,用于更新数据源中的记录MissingMappingActionMissingMappingAction确定传入数据没有匹配的表或列时需要执行的操作MissingSchemaActionMissingSchemaAction确定现有DataSet架构与传入数据不匹配时需要执行的操作TableMappingsDataTableMapping-Collection获取一个集合,它提供源表和DataTable之间的主映射表19显示了部分SqlDataAdapter方法。表1-9 SqlDataAdapter方法方 法返 回 类 型描 述Fill()int已重载。已重写。在DataSet中添加或刷新行以匹配数据源中的行FillSchema()DataTable 已重载.已重写。将DataTable添加到DataSet 中,并配置架构以匹配数据源中的架构GetFillParameters()IDataParameter 已重写.获取当执行SQL SELECT语句时由用户设置的参数Update()int已重载.为DataSet中每个已插入、已更新或已删除的行调用相应的INSERT、UPDATE 或 DELETE语句使用SqlDataAdapter ()构造函数生成SqlDataAdapter对象。这个构造函数是重载的。SqlDataAdapter ()如下:SqlDataAdapter ()SqlDataAdapter (SqlCommand mySqlCommand)SqlDataAdapter (String selectCommandString, SqlConnection mySqlConnection)SqlDataAdapter (String selectCommandString, String connectionString)其中,mySqlCommand指定SqlCommand对象,selectCommandString指定Select语句或存储过程调用,mySqlConnection指定SqlConnection,connectionString指定连接数据库的连接字符串。下例使用SqlDataAdapter ()构造函数生成SqlDataAdapter对象:SqlDataAdapter myAdapter = new SqlDataAdapter ();用myAdapter建立DataSet对象之前,要将其SelectCommand属性设置为包含Select语句或存储过程的SqlCommand对象。下面将生成SqlCommand对象,并将CommandText属性设置为Select语句,从StudentsInfo表中读取所有记录,将myAdapter的Select Command属性设置为这个SqlCommand对象。SqlCommand myCommand = myConn。CreateCommand();myCommand。CommandText = ” Select Stu_Id, Sname, Sgender, Sage, Sdept +” From StudentsInfo + Order By Stu_Id”;myAdapter.SelectCommand = myCommand;下例使用SqlDataAdapter (SqlCommand mySqlCommand)构造函数生成SqlDataAdapter对象:SqlDataAdapter myAdapter = new SqlDataAdapter (myCommand);下例使用SqlDataAdapter (String selectCommandString, SqlConnection mySqlConnection)构造函数生成SqlDataAdapter对象:SqlConnection myConn = new SqlConnection(” server=localhost;uid=sa;pwd=;database=student );String selectCommandString = Select Stu_Id, Sname, Sgender, Sage, Sdept + From StudentsInfo +” Order By Stu_Id;SqlDataAdapter myAdapter = new SqlDataAdapter (selectCommandString, myConn);最后,使用SqlDataAdapter (String selectCommandString, String connectionString)构造函数生成SqlDataAdapter对象:String selectCommandString = ” Select Stu_Id, Sname, Sgender, Sage, Sdept ” +” From StudentsInfo +” Order By Stu_Id;String connectionString = ” server=localhost;uid=sa;pwd=;database=student ”;SqlDataAdapter myAdapter = new SqlDataAdapter (selectCommandString, connectionString);创建DataAdapter对象之后,就可以使用Fill()方法填充DataSet对象了。例如:DataSet myDataSet = new DataSet();myAdapter.Fill(myDataSet, ” StudentsInfo”);上例中,我们将StudentsInfo表中的行填充到了DataSet对象中。1。3 数据绑定控件使用ADO.NET连接数据库并创建DataSet,主要是为了显示和操作数据库中的数据.要在Web程序中实现数据的显示和操作,则必须将数据与页面中的控件绑定起来,通过控件来显示和处理数据。ASP.NET提供了Repeater,DataList和 DataGrid 3种服务器端控件。这些控件将数据集合表现为基于HTML的界面。Repeater,DataList,DataGrid控件是System.Web。UI。WebControls命名空间(Namespace)里几个相关的页面组件。这些控件把绑定到它们的数据通过HTML表现出来,它们又被称为“列表绑定控件”(list-bound controls)。和其他Web组件一样,这些组件不仅提供了一个一致的编程模型,而且封装了与浏览器版本相关的HTML逻辑。这种特点使得程序员可以针对这个对象模型编程,而无须考虑各种浏览器版本的差别和不一致性。这三个控件具有把它们的相关数据“翻译”成各种外观的能力。这些外观包括表格、多列列表或者任何的HTML流。同时,它们也允许创建任意的显示效果。除此之外,它们还封装了处理提交数据、状态管理、事件激发的功能。最后,它们还提供了各种级别的标准操作,包括选择、编辑、分页、排序,等等。使用这些控件,可以轻松地完成如下的Web应用:报表、购物推车、产品列表、查询结果显示、导航菜单,等等。因篇幅所限,这三个控件的工作机理就不再进行介绍了,读者可以查阅相应的技术文档.2 概 述酒店客房管理系统的主要任务是对酒店的客房进行管理,使用户能轻松地找到所需要的客房信息,提供订房和退房服务,并对酒店客房的业绩进行统计。在不同的酒店之间,酒店客房管理系统会存在一些差异。通常,酒店客房管理系统的主要功能包括以下几个方面。 (1) 用户信息管理:对酒店客房管理系统的使用员工进行管理,包括对员工的基本信息(如用户姓名、所属部门、用户类型等)进行检索、录入和修改.(2) 客房类型管理:用户可自定义客房类型,并对其进行管理,包括对客房类型的基本信息(如类型名称、面积、床位、价格等)进行检索、录入和修改。(3) 客房信息管理:用户对客房信息进行管理,包括对客房的基本信息(如客房号、客房类型、客房位置等)进行检索、录入和修改。(4) 客房经营管理:实现对客房的订房和退房管理,包括对客房的业务信息(如客房号、入房时间、退房时间、金额等)进行检索、录入和修改。 (5) 客户信息查询:用户可对入住过酒店的客户信息进行查询,包括对客户的基本信息(如身份证号、客户姓名、联系电话)进行检索.(6) 经营状况统计:根据酒店客房的业务记录,用户可选择不同的统计方式对营业额进行统计。读者只要根据本酒店的具体情况,补充完善上述功能,就可以应用到实际应用中去。酒店客房管理系统作为当前使用非常广泛的数据库应用系统之一,其开发过程包括需求分析、UML系统建模、数据库分析和设计以及各功能模块的实现。我们将在后面几节中详细讲述。3 需 求 分 析需求分析阶段是酒店客房管理系统开发最重要的阶段。开发者首先要了解和澄清用户的需求,然后严格地定义该系统的需求规格说明书。这里我们将需求分析分为两个过程,一是理解需求,二是分析需求,下面分别讲解。3.1 理解需求理解需求是在问题及其最终解决方案之间架设桥梁的第一步。开发者只有和客户充分理解了需求之后才能开始设计系统,否则,对需求定义的任何改进,在设计上都必须大量的返工。下面是经过双方调研后得到的需求规格说明。(1) 系统界面采用Web方式,界面应简洁明了,用户可方便浏览和查找客房信息。该系统的用户有两种类型:一是管理员,二是服务员,两者应具有不同的权限.(2) 系统需对用户登录进行管理。使用各功能模块时,系统应验证用户身份的有效性,否则要求用户登录。另外,允许用户对自己的密码进行修改。(3) 系统应提供客房的分类管理功能,可分类制订客房面积、价格、是否配备空调等客房类型,对不同标准的客房进行有效管理。系统可实现对客房信息的添加、删除以及修改。 (4) 在进行订房/退房管理时,系统可以根据客房当前的状态自动提示可用服务(订房/退房)。如果客房没有客人入住,则该客房的可用服务为“订房”;否则,可用服务为“退房”。(5) 系统在各功能模块的实现当中,提供多级分类检索和组合搜索。(6) 系统的客户端在Windows平台下运行,服务器端可在Windows平台或UNIX平台下运行.系统还需要有较好的安全性和可扩展性。3。2 需求分析需求分析是从客户的需求中提取出软件系统能够帮助用户解决的业务问题,通过对用户业务问题的分析,规划出系统的功能模块,即定义用例.这个步骤是对理解需求的升华,直接关系到该系统的质量。 经过开发者同客户的需求分析后,确定酒店客房管理系统的功能模块(用例)包括: 用户信息管理 客房类型管理 客房信息管理 客房经营管理 客户信息查询 经营状况统计酒店系统完全采用Web方式,由前台和后台管理两个部分组成。前台作为与用户直接交互的可视化界面,由于使用方便,能将系统的各个功能提供给用户,以帮助用户进行客房管理.前台在考虑功能实现的同时,也考虑了操作的简洁和方便性,目的是让大多数客户能够轻松地享受电子商务给他们带来的便利。为了确保客户和酒店的信息具有更好的安全性,前台管理和后台管理是分离的。前台的各管理模块需要经过权限授权才可以使用,我们为此设计了两个角色:一是酒店管理员,二是前台服务员。其中: 酒店管理员享有最高权限,可以使用酒店客房管理系统所提供的所有功能,包括员工信息管理、客房类型管理、客房信息管理、客房经营管理、客户信息查询、经营状况统计、个人密码修改以及注销功能。 前台服务员的主要职能是负责订房和退房,以及查询入住的客户信息。所有该角色只可以使用部分功能,包括客房经营管理、客户信息查询、个人密码修改以及注销功能.后台管理主要由数据库系统作为支持,后台管理的维护工作主要由系统管理员进行,包括完成对各个数据表单的维护、数据库的备份及恢复等工作,本实例我们选用的数据库系统为SQL Server 2000。4 数据库设计数据库分析完成后,我们就可以对数据库进行设计了。在酒店客房管理系统中,数据库的设计工作主要包括建立管理系统的数据库,创建所需要的表,也可以设计相关的视图及存储过程。这些设计工作都在SQL Server 2000环境下操作并实现。4。1 创建数据库在设计数据库表结构之前,首先要创建一个数据库.本系统使用的数据库名为JdglSys.用户可以在企业管理器中创建数据库,步骤如下。(1) 启动SQL Server 2000数据库在系统桌面上选择“开始”|“程序” Microsoft SQL Server |“服务管理器”命令,然后单击“启动按钮,即启动SQL Server 2000。(2) 启动企业管理器选择“开始“程序”| Microsoft SQL Server |“企业管理器”命令,启动数据库的管理界面。(3) 新建数据库展开Microsoft SQL Server local “数据库”后,右键单击“数据库”按钮,在弹出的菜单中选择“新建数据库”命令后,会弹出新建数据库窗口,在“名称”项中输入新数据库的名称JdglSys.单击“数据文件”标签页后,输入数据库文件的存放位置;单击“事务日志标签页后,输入数据库日志的存放位置, 设置完成后,单击“确定”按钮即完成数据库的创建。读者也可以在SQL Server提供的查询分析器中执行以下TransactSQL语句:CREATE DATABASE JdglSys ONPRIMARY ( NAME = JdglSys_Data, FILENAME = c:program filesmicrosoft sql servermssqldataJdglSys_Data.mdf, SIZE = 100MB, MAXSIZE = 200, FILEGROWTH = 20)LOG ON ( NAME = JdglSys_Log, FILENAME = c:program filesmicrosoft sql servermssqldataJdglSys_Log。ldf, SIZE = 100MB, MAXSIZE = 200, FILEGROWTH = 20),GO以上的Transact-SQL语句保存在随书光盘的“Chap10DBCreateDB。sql”中.4。2 创建表数据库JdglSys包含以下7个表:用户信息表(UsersInfo)、客户信息表(CustomersInfo)、客房类型表(RoomCategory)、客房信息表(RoomsInfo)、客房状态表(RoomStatus)、客房业务表(RoomOperation)、业务记录表(History).下面分别介绍这些表的结构。(1) 用户信息表用户信息表(UsersInfo)用来保存使用该系统的酒店员工的基本信息,表UsersInfo的结构如表114所示。表1-14 用户信息表(UsersInfo)编 号字 段 名 称数 据 结 构说 明1UserIdInt用户编号2NameVarchar(50)用户姓名3PasswordVarchar(50)密码4GenderInt性别(0男,1女)5EmailVarchar(50)Email地址6AddressVarchar(50)通讯地址7TelephoneVarchar(50)联系电话8DepartmentVarchar(50)所在部门9TypeInt用户类型(1酒店管理员,2前台服务员 (2) 客户信息表客户信息表(CustomersInfo)用来保存在酒店订房的客户的基本信息,表CustomersInfo的结构如表115所示。表1-15 客户信息表(CustomersInfo)编 号字 段 名 称数 据 结 构说 明1CIdentityIdnVarchar(50)身份证号2CNamenVarchar(50)客户姓名3CPhonenVarchar(50)联系电话(3) 客房类型表客房类型表(RoomCategory)用来保存酒店所有客房类型的基本信息,表RoomCategory的结构如表1-16所示。表116 客房类型表(RoomCategory)编 号字 段 名 称数 据 结 构说 明1RCategoryIdInt客房类型编号2NamenVarchar(50)类型名称3AreaFloat客房面积4BedNumInt配置床位5PriceMoney客房价格6AirConditionInt配置空调(0是,1否)7TVInt配置电视(0是,1否) (4) 客房信息表客房信息表(RoomsInfo)用来保存酒店所有客房的相关
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 成人自考


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!