酒店客房管理系统设计.doc

上传人:最*** 文档编号:1601052 上传时间:2019-10-29 格式:DOC 页数:42 大小:1.44MB
返回 下载 相关 举报
酒店客房管理系统设计.doc_第1页
第1页 / 共42页
酒店客房管理系统设计.doc_第2页
第2页 / 共42页
酒店客房管理系统设计.doc_第3页
第3页 / 共42页
点击查看更多>>
资源描述
武汉工业学院数学与计算机学院数据库应用系统设计 酒店客房管理系统设计 实验报告专 业: 计算机科学与技术 班 级: 计算机092 学 号: 090501229 姓 名: 丁 绢 指导老师: 林 菁 目录:酒店客房管理系统设计 实验报告0一、 前言31.1课题背景31.2开发工具31.2.1 SQL Server 2005 数据库31.2.2 ADO数据库访问技术41.2.2.1 ADO对象模型41.2.2.2 ADO编程4二、 需求分析52.1 任务概述52.1.1系统目标52.1.2用户特点52.2 系统的功能需求52.2.1 系统需求52.2.2 功能需求52.3 系统的性能需求62.4 系统的数据需求6三、 系统功能总体设计73.1 系统功能模块划分83.2 系统的功能模块图8四、 系统数据库设计84.1 数据库概念设计84.2 数据库逻辑设计114.3 数据库设计优化124.4 建立索引124.5 数据存放124.6 系统配置12五、 数据库实施和维护135.1创建数据库135.2数据备份和恢复16六、 系统详细设计186.1 数据库的连接186.2 登录设计196.3 修改密码206.4 添加新用户216.5 客房标准216.6 客房信息226.7 客房信息查询246.8 未定住客房信息查询246.9 订房256.10 订房信息查询266.11 结算276.12 结算信息查询28七、 测试过程:297.1 系统测试297.1.1 测试方法297.1.2 基本功能测试297.2 实际完成的情况387.3 系统测试过程发现的问题38八、 设计总结398.1 系统可以扩充的功能及系统展望398.2 总结语40九、 参考文献40十、附录40一、 前言1.1课题背景当前,随着信息的不断飞速发展,信息技术已逐渐成为各种技术的基础,信息也成为企业具有竞争力的核心要素。企业的生存和发展依靠正确的决策,而决策的基础就是信息,所以企业竞争力的高低完全取决于企业对信息的获取和处理能力。企业要准确、快速的获取和处理信息,企业信息化是必然的选择。企业必须加快内部信息交流,改进企业业务流程和管理模式,提高运行效率,降低成本,提高竞争力,信息化建设是企业适应社会发展的要求。企业管理信息系统即企业MIS是企业信息化的重要内容。随着我国改革开放的不断推进,人民生活水平日益提高,旅游经济蓬勃发展,这一切都带动了酒店行业的发展。再加上入境旅游的人也越来越多,入境从事商务活动的外宾也越来越多。传统的手工已不适应现代化酒店管理的需要。及时、准确、全方位的网络化信息管理成为必需。酒店是一个服务至上的行业,从客人的预定开始,到入住登记直至最后退房结账,每一步骤都要保持一致性的服务水准,错失一步, 会令其辛苦经营的形象功亏一篑。要成为一间成功的酒店,就必须作到宾至如归,面对酒店业内激烈的竞争形势,各酒店均在努力拓展其服务领域的广度和深度。虽然计算机并不是酒店走向成功的关键元素,但它可以帮助那些真正影响成败的要素发挥更大的效用。因此,采用全新的计算机网络和管理系统,将成为提高酒店的管理效率,改善服务水准的重要手段之一。1.2开发工具本系统利用Microsoft Visual Studio 2008编译环境,以Microsoft SQL Server 2005作为后台数据库,选用ADO访问数据库来实现各种功能计算机及操作系统:WindowsXP 或Windows7;开发工具:Microsoft Visual Studio 2008运行环境: 装有SQL SERVER 2005 的系统语言: C# 与 SQL查询语言1.2.1 SQL Server 2005 数据库SQL Server 2005是微软公司动用上千人的研发力量,耗费五年时间打造出来的产品,在企业及数据库产品中具有里程碑的意义。SQL Server 2005是一个关系数据库管理系统,是一个全面的数据库平台,其数据库引擎为关系型数据和结构化数据提供了更安全可靠的存储功能。SQL Server 2005 结合了分析、报表、集成和通知功能,引进了一套集成的管理工具和管理应用编程接口,以提供易用性、可管理性及对大型SQL Server配置的支持。其新的查询类型和在交易过程中使用错误处理的功能,为开发人员在SQL Server查询开发方面提供了更高的灵活性和控制力。SQL Server 可以适合大容量数据的应用,在功能上和管理上都比Microsoft Access 要强的多。在处理海量数据的效率,后台开发的灵活性,可扩展等方面强大。在SQL Server 2005中还可以使用存储过程,在服务器执行操作时,减少网络通讯,提高了执行效率,而且保证了数据库的安全。1.2.2 ADO数据库访问技术ADO 是微软最新的对象层次上的数据操作技术,它为操作OLE DB 数据源提供了一套高层次自动化接口。尽管OLE DB 已经是一个强大的数据操作接口,然而大多数数据库应用开发者并不需要OLE DB 提供的操作数据的底层控制接口。大多数开发者对于管理内存资源、手工聚合组件以及其它的底层操作接口并不是很感兴趣。另外,开发者经常使用高层的、不支持指针和C+函数调用规范的开发语言,OLE DB 为这种需要提供了方便。从功能上来说,ADO 也是一种OLE DB 客户程序,不过它不依赖于特定的OLE DB 服务器,相反,它支持所有的OLE DB 服务提供者。通过这些OLE DB 服务提供者,ADO 支持客户/服务器模式和基于Web 的数据库应用。ADO 支持客户/服务器模式和基于Web 的数据操作,ADO 尤其支持通过客户/服务器模式或者基于Web 模式访问微软的SQL Server 数据库服务器。1.2.2.1 ADO对象模型ADO 对象模型包括以下关键对象:Connection 对象在数据库应用里操作数据源都必须通过该对象,这是数据交换的环境。Connection 对象代表了同数据源的一个会话,在客户/服务器模型里,这个会话相当于同服务器的一次网络连接。不同的数据提供者提供的该对象的集合、方法和属性不同。借助于Connection 对象的集合、方法和属性,可以使用Open 和Close 方法建立和释放一个数据源连接。使用Execute 方法可以执行一个数据操作命令,使用BeginTrans、CommitTrans 和RollbackTrans 方法可以启动、提交和回滚一个处理事务。通过操作the Errors 集合可以获取和处理错误信息,操作CommandTimeout 属性可以设置连接的溢出时间,操作ConnectionString 属性可以设置连接的字符串,操作Mode 属性可以设置连接的模式,操作Provider 属性可以指定OLE DB 提供者。 Command 对象Command 对象是一个对数据源执行命令的定义,使用该对象可以查询数据库并返回一个Recordset 对象,可以执行一个批量的数据操作,可以操作数据库的结构。不同的数据提供者提供的该对象的集合、方法和属性不同。借助于Command 对象的集合、方法和属性,可以使用Parameters 集合制定命令的参数,可以使用Execute方法执行一个查询并将查询结果返回到一个Recordset 对象里,操作CommandText 属性可以为该对象指定一个命令的文本,操作CommandType 属性可以指定命令的类型,操作Prepared 可以得知数据提供者是否准备好命令的执行,操作CommandTimeout 属性可以设置命令执行的溢出时间。 Parameter 对象Parameter 对象在Command 对象中用于指定参数化查询或者存储过程的参数。大多数数据提供者支持参数化命令,这些命令往往是已经定义好了的,只是在执行过程中调整参数的内容。借助于Parameter 对象的集合、方法和属性,可以通过设置Name 属性指定参数的名称,通过设置Value 属性可以指定参数的值,通过设置Attributes 和Direction、Precision、NumericScale、Size 与Type 属性可以指定参数的信息,通过执行AppendChunk 方法可以将数据传递到参数里。Recordset 对象如果执行的命令是一个查询并返回存放在表中的结果集,这些结果集将被保存在本地的存储区里,Recordset对象是执行这种存储的ADO 对象。通过Recordset 对象可以操纵来自数据提供者的数据,包括修改和更新行、插入和删除行。1.2.2.2 ADO编程通常情况下,一个基于ADO 的数据库应用使用如下过程操作数据源里的数据:(1) 创建一个Connection 对象。定义用于连接的字符串信息,包括数据源名称、用户ID、口令、连接超时、缺省数据库以及光标的位置。一个Connection 对象代表了同数据源的一次会话。可以通过Connection 对象控制事务,即执行BeginTrans、CommitTrans 和RollbackTrans 方法。(2) 打开数据源,建立同数据源的连接。(3) 执行一个SQL 命令。一旦连接成功,就可以运行查询了。可以以异步方式运行查询,也可以异步地处理查询结果,ADO 会通知提供者后台提供数据。这样可以让应用程序继续处理其它事情而不必等待。(4) 使用结果集。完成了查询以后,结果集就可以被应用程序使用了。在不同的光标类型下,可以在客户端或者服务器端浏览和修改行数据。(5) 终止连接。当完成了所有数据操作后,可以销毁这个同数据源的连接。二、 需求分析2.1 任务概述2.1.1系统目标本系统需要满足以下几个系统设计目标。(1)实用性原则:真正为用户的实际工作服务,按照酒店客房管理工作的实际流程,设计出实用的酒店客房管理系统。(2)可靠性原则:必须为酒店客房提供信息安全的服务,以保证酒店信息的不被泄露。(3)友好性原则:本酒店客房管理系统面向的用户是酒店内工作人员,所以系统操作上要求简单、方便、快捷,便于用户使用。(4)可扩展性原则:采用开发的标准和接口,便于系统向更大的规模和功能扩展。2.1.2用户特点本系统面向酒店内工作人员为顾客订房和退房及其查询服务和设置酒店客房信息。在旅游高峰期,会有大量的顾客订房数据输入及查询,在退房时也会有大量的退房数据输入及查询,系统的负荷较大;在消费淡季,数据输入和查询也会相对较少。2.2 系统的功能需求2.2.1 系统需求根据酒店客房管理系统的理念,此酒店客房管理系统必须满足以下需求:(1)具有设置酒店客房类型和房间信息的功能(2)能快速、准确地了解酒店的客房状态,以便订房和退房(3)提供多种手段查询客房订房信息(4)提供修改订房和修改退房功能(5)提供简单的酒店工作人员的添加用户和修改密码功能2.2.2 功能需求根据系统的需求分析,本系统功能需求如下:1.系统管理(1)修改密码 (2)添加用户2. 客房信息管理(1)设置客房标准 添加客房标准 修改客房标准 删除客房标准(2)设置客房信息添加客房信息 修改客房信息删除客房信息 查询客房信息3.订房信息管理(1)查询剩余客房信息 (2)添加订房信息(3)修改订房信息 (4)查询订房信息4.结算信息管理(1) 添加结算信息 (2) 修改结算信息(3) 查询结算信息2.3 系统的性能需求为了保证系统能够长期、安全、稳定、可靠、高效的运行,系统应该满足以下的性能需求:(1)系统处理的准确性和及时性系统处理的准确性和及时性是系统的必要性能。在系统设计和开发过程中,要充分考虑系统当前和将来可能承受的工作量,使系统的处理能力和响应时间能够满足用户对信息的处理。由于系统的查询功能对于整个系统的功能和性能完成很重要。从系统的多个数据来源来看,客房信息查询、订房信息查询、结算信息查询,其准确性很大程度上决定了系统的成败。因此,在系统开发过程中,系统采用优化的SQL语句及安全扩展存储过程来保证系统的准确性和及时性。(2)系统的开放性和系统的可扩充性系统在开发过程中,应该充分考虑以后的可扩充性。例如系统权限和客房信息设置等模块也会不断的更新和完善。所有这些都要求系统提供足够的手段进行功能的调整和扩充。而要实现这一点,应通过系统的开放性来完成,既系统应是一个开放系统,只要符合一定的规范,可以简单的加入和减少系统的模块,配置系统的硬件。通过软件的修补、替换完成系统的升级和更新换代。(3)系统的易用性本酒店客房管理系统面向的用户是酒店内工作人员,而有些使用人员往往对计算机并不是非常熟悉,所以系统操作上要求简单、方便、快捷,便于用户使用。这就要求系统能够提供良好的用户接口,易用的人机交互界面。(4)系统的响应速度系统设计中摒弃大量数据冗余,提出了优化数据库的解决方案,大量使用存储过程,大大提高系统响应时间和速度。系统在日常处理中的响应速度为秒级,达到实时要求,以及时反馈信息。严格保证操作人员不会因为速度问题而影响工作效率。2.4 系统的数据需求通过对系统功能需求的分析,可以初步确定该系统的基本数据需求。由各个功能可以进一步确定具体的数据需求,具体数据需求如下:(1)房间类型:类型编号、类型名称、面积、床位数、价格、三电信息(空调、电视、电话)、卫生间。(2)房间信息:房间编号、房间类型、房间位置、房间价格、房间状态、备注(3)订房信息:订房编号、顾客编号、顾客姓名、房间编号、入住时间、折扣、入住备注、预计退房时间、应缴房费(4)退房信息: 房间编号、顾客编号、顾客姓名、退房时间、退房缴费、订房编号(5)顾客信息:顾客编号、顾客姓名、顾客性别(6)用户信息:用户编号、用户密码、用户职位系统数据流图:统数据流图登录客房标准设置客房信息管理客房信息登记订房信息管理顾客登记客房标准信息管理结算信息输入客房信息返回基本信息输入订房信息输入基本信息录入结算信息管理三、 系统功能总体设计3.1 系统功能模块划分结合前面需求分析阶段的结果进行综合处理,确定了客房管理系统需要完成的功能,主要划分为以下模块:1.系统(1)修改密码 (2)添加用户2. 客房信息管理(1)设置客房标准 添加客房标准 修改客房标准 删除客房标准(2)设置客房信息添加客房信息 修改客房信息 删除客房信息 查询客房信息3.订房信息管理(1)查询剩余客房信息 (2)添加订房信息(3)修改订房信息 (4)查询订房信息4.结算信息管理(1) 添加结算信息 (2) 修改结算信息(3) 查询结算信息3.2 系统的功能模块图客房管理系统添加结算修改结算查询结算结算信息管理查询剩余客房查询订房信息修改订房信息添加订房信息订房信息管理添加用户系统修改密码修改客房信息删除客房信息查询客房信息添加客房标准修改客房标准删除客房标准添加客房信息设置客房标准客房信息管理设置客房信息四、 系统数据库设计4.1 数据库概念设计这一设计阶段是在需求分析的基础上,设计出能满足用户需求的各种实体,以及它们之间的关系,为后面的逻辑结构设计打下基础。根据上面的设计规划出的实体有顾客实体、客房类型、房间实体。顾客房间类型房间订房退房标准mm11m1实体联系E-R图顾客实体属性图顾客顾客编号顾客姓名顾客性别用户管理员用户编号用户职位用户密码用户管理实体属性图 房间信息实体属性图房间房间编号房间类型房间位置房间价格房间状态备注房间类型实体属性图房间类型类型编号类型名称面积床位数价格电视空调卫生间电话订房订房订房编号顾客编号顾客姓名房间编号入住时间入住备注折扣应缴房费预计退房时间退房信息退房房间编号顾客编号顾客姓名退房时间退房缴费订房编号4.2 数据库逻辑设计顾客(顾客编号、顾客姓名、顾客性别)用户(用户编号、用户密码、用户职位)房间类型(类型编号、类型名称、面积、床位数、价格、空调、电视、电话、卫生间)房间(房间编号、房间类型、房间位置、房间价格、房间状态、备注)订房(订房编号、顾客编号、顾客姓名、房间编号、入住时间、折扣、入住备注、预计退房时间、应缴房费)退房(房间编号、顾客编号、顾客姓名、退房时间、退房缴费、订房编号)将关系模型转换成具体RDBMS支持的实际关系数据模型,如下面的几个表格所示。(每个表格表示在数据库中的一个表) (1)顾客信息表字段名称数据类型是否NULL说明1customidnvarchar(20)NOT NULL顾客编号2customnamenvarchar(20)NULL顾客姓名3customesexnvarchar(20)NULL顾客性别(2) 用户信息字段名称数据类型是否NULL说明1user_IDvarchar(20)NOT NULL用户编号2user_PWDvarchar(20)NOT NULL用户密码3user_Posnvarchar(20)NULL用户职位(3) 房间类型字段名称数据类型是否NULL说明1typeidvarchar(20)NOT NULL类型编号2typenamevarchar(20)NOT NULL类型名称3areafloatNULL面积4bednumintNULL床位数5pricefloatNULL价格6hairconditionbitNULL空调7htelevisionbitNULL电视8htelephonebitNULL电话9htoiletbitNULL卫生间 (4) 房间信息字段名称数据类型是否NULL说明1roomnovarchar20NOT NULL房间编号2roomtypevarchar(20)NOT NULL房间类型3roompositionvarchar(20)NULL房间位置4roompricefloatNULL房间价格5putupbitNULL房间状态6roommemotextNULL备注 (5) 订房信息字段名称数据类型是否NULL说明1booknovarchar(20) NOT NULL订房编号2customnamevarchar(20)NULL顾客编号3customIDvarchar(20) NOT NULL顾客姓名4roomnovarchar(20) NOT NULL房间编号5indatedatetimeNOT NULL入住时间6discountfloatNULL折扣7inmemotextNULL入住备注8checkdatedatetimeNULL预计退房时间9ammountfloatNULL应缴房费 (6) 退房信息字段名称数据类型是否NULL说明1booknovarchar(20)NOT NULL订房编号2customenamevarchar(20)NULL顾客姓名3customeidvarchar(20)NOT NULL顾客编号4outtimedatetimeNOT NULL退房时间5outmoneyfloatNULL退房缴费6roomnovarchar(20)NOT NULL客房编号4.3 数据库设计优化在上面的实体以及实体之间的关系的基础上,形成数据库中的表格和各个表格之间的关系,即关系模型。设计关系模型并对其进行优化:(1)确定数据依赖,给出给关系模式中的主码,明确其依赖关系。(2)对于各个关系模式之间的数据依赖进行极小化处理,消除冗余的联系。(3)对照数据依赖的理论对各个关系模式逐一进行分析,考察是否存在部分函数依赖、传递函数依赖、多值依赖,确定个关系模式分别所属的范式类型。(4)按照需求分析阶段得到的处理要求,分析对于这样的应用环境这些模式是否合适,对某些模式检查是否有合并或分解的需要。(5)对关系模式进行必要的分解,提高数据操作效率和存储空间的利用率。4.4 建立索引在本实例中,房间号码、订房编号、客人证件号码这几个属性是主码,设计时考虑建立这些索引,使得对数据库的查询、插入、修改和删除的速度加快,效率也提高。4.5 数据存放在开发本系统时因数据库的规模随着顾客的增多将会增大,但因开发环境条件限制,所以数据库是存在个人的计算机磁盘上。4.6 系统配置开发以及运用本数据库应用系统时要求操作系统拥有WindowsXP 或Windows7以上的配置,能创建数据库,保存数据,并将系统数据库作为应用系统运行操作的数据源,为方便开始时创建和调试查看数据库内容,要求系统装有SQL SERVER 2005。 五、 数据库实施和维护5.1创建数据库运用SQL SERVER 2005 创建数据库,其创建过程如下面所示:创建数据库HotelRoomManage(1)设计user_Info表CREATE TABLE user_Info(user_ID nvarchar(20) NOT NULL,user_PWD nvarchar(20) NOT NULL,user_Pos nvarchar(20) NULL,primary key (user_ID,user_PWD) ;(2)设计customers表CREATE TABLE customers(customid nvarchar(20) NOT NULL,customname nvarchar(20) NULL,customesex nvarchar(20) NULL,primary key (customid);(3)设计roomtype表CREATE TABLE roomtype(typeid nvarchar(20) NOT NULL,typename nvarchar(20) NOT NULL,area float NULL,bednum int NULL,haircondition bit NULL,htelephone bit NULL,htelevision bit NULL,htoilet bit NULL,price float NULL,primary key (typeid,typename) ;(4)设计rooms表CREATE TABLE rooms(roomno nvarchar(20) NOT NULL,roomtype nvarchar(20) NOT NULL,roomposition nvarchar(20) NULL,roomprice float NULL,putup bit NULL,roommemo text NULL,primary key (roomno) ;(5)设计bookin表CREATE TABLE bookin(bookno nvarchar(20) NOT NULL,customname nvarchar(20) NULL,customid nvarchar(20) NOT NULL,roomno nvarchar(20) NOT NULL,indate datetime NOT NULL,discount float NULL,inmemo text NULL,checkdate datetime NULL,ammount float NULL,primary key (bookno,customid,roomno,indate),foreign key (customid) references customers(customid),foreign key (roomno) references rooms(roomno);(6)设计checkout表CREATE TABLE checkout(bookno nvarchar(20) NOT NULL,customename nvarchar(20) NULL,customid nvarchar(20) NOT NULL,outtime datetime NOT NULL,outmoney float NULL,roomno nvarchar(20) NOT NULL,primary key (bookno,customid,outtime),foreign key (customid) references customers(customid); 5.2数据备份和恢复数据库是系统的关键信息,需要采取较好、有效的备份方案。在本设计中,数据备份利用SQL SERVER 2005备份功能来进行数据库备份,操作流程如下图所示:先打开企业管理器,找到要备份的数据库在数据库HotelRoomManage上点击鼠标右键,选择”任务”,再选择”备份(B)”,弹出如下对话框:选择要备份的数据库和备份数据存储位置,再点击确定,即可。数据库恢复时应把原数据库删除重新导入,在数据库上右键选择”还原数据库(R)” 选择目标数据库“HotelRoomManage”和源数据库“HotelRoomManage”,目标时间点默认为“最近时间”或自己选择一个时间点,点击确定即可。六、 系统详细设计 6.1 数据库的连接 用#import指令引入ADO类型库#import C:program filescommon filesSystemadomsado15.dll no_namespace rename(EOF,AdoEOF)创建Connection对象并连接数据库if (!AfxOleInit()AfxMessageBox(OLE初始化出错);return FALSE;if( FAILED(:CoInitialize(NULL) ) AfxMessageBox(ADO Init failed);return false;/基于DSNtry/ 初始化COM,创建ADO连接等操作ADOConn.CreateInstance(_uuidof(Connection);ADOConn-Open(DSN=HotelRoomManage;Provider=MSDASQL,sa, adConnectUnspecified);/捕捉异常catch(_com_error &e)CString err;err.Format(%s, (char*)(e.Description() );AfxMessageBox(err);catch(.)AfxMessageBox(Unknown Error.);/ 初始化 ADO RecordSetm_pADOSet.CreateInstance(_uuidof(Recordset);SetRegistryKey(_T(Local AppWizard-Generated Applications);重载Execute方法执行一个查询并将查询结果返回到一个Recordset 对象里bool CHotel_MISApp:ADOExecute(_RecordsetPtr &ADOSet, _variant_t &strSQL)if ( ADOSet-State = adStateOpen)ADOSet-Close();try ADOSet-Open(strSQL, ADOConn.GetInterfacePtr(), adOpenStatic, adLockOptimistic, adCmdUnknown);/打开数据库并执行SQL语句 return true;catch(_com_error &e)/捕获异常 CString err; err.Format(ADO Error: %s,(char*)e.Description(); AfxMessageBox(err); return false;断开数据库的连接/释放 ADO Connectionif( adStateOpen = ADOConn-State )ADOConn-Close();ADOConn.Release(); / 释放 ADO RecordSetif(adStateOpen=m_pADOSet-State)m_pADOSet-Close();m_pADOSet.Release();6.2 登录设计/通过_variant_t这个类,可以方便的把C+类型变量转换成COM中的变量_variant_t Holder, strQuery; strQuery = select user_ID, user_PWD from user_Info where user_ID=+m_sUSER+;theApp.ADOExecute(theApp.m_pADOSet, strQuery);int iCount = theApp.m_pADOSet-GetRecordCount(); /获得数据集中的个数if ( 0=iCount ) theApp.m_iLoginCount+;if ( theApp.m_iLoginCount2 ) AfxMessageBox(没有这个用户n三次输入均不正确,请核对后再来, MB_ICONEXCLAMATION);CDialog:OnCancel(); return;AfxMessageBox(没有这个用户,请重新输入用户名, MB_ICONEXCLAMATION); return;/登录名在数据库中,查看密码是否输入正确CString sPWD;theApp.m_pADOSet-MoveFirst();/到用户记录集的第一条记录Holder = theApp.m_pADOSet-GetCollect(user_PWD);/获得用户数据库中的密码sPWD = Holder.vt=VT_NULL?:(char*)(_bstr_t)Holder;if ( 0!=sPWD.Compare(m_sPWD) )/比较当前输入密码和数据库中此用户的密码是否一样theApp.m_iLoginCount+;if ( theApp.m_iLoginCount2 ) AfxMessageBox(输入密码不正确n三次输入均不正确,请核对后再来, MB_ICONEXCLAMATION);CDialog:OnCancel(); return;AfxMessageBox(输入密码不正确,请重新输入, MB_ICONEXCLAMATION); return;/获得当前登录的用户theApp.m_sCurrentUser = m_sUSER;6.3 修改密码if ( IDOK=dlg.DoModal() )_variant_t strQuery; /将新密码更新到数据库 strQuery = update user_Info set user_PWD=+dlg.m_sPWD1+ where user_ID=+theApp.m_sCurrentUser+; theApp.ADOExecute(theApp.m_pADOSet, strQuery); AfxMessageBox(修改密码成功, MB_ICONINFORMATION);6.4 添加新用户CAppendAccountDLG dlg;if ( IDOK=dlg.DoModal() )_variant_t strQuery; /将新用户保存到数据库 strQuery = insert user_Info (user_ID, user_PWD) values (+dlg.m_sUSER+, +dlg.m_sPWD1+); theApp.ADOExecute(theApp.m_pADOSet, strQuery); AfxMessageBox(添加用户成功, MB_ICONINFORMATION);6.5 客房标准if (m_bAppend)/容许添加客房标准/将客房标准保存到数据库 strQuery = insert roomtype (typeid, typename, area, bednum, price, haircondition, htelephone, htelevision, htoilet) values (+m_sTypeID+, +m_sTypeName+, +m_sArea+, +m_sBedNo+, +m_sPrice+, +sAir+, +sTel+,+sTV+, +sToilet+); if ( theApp.ADOExecute(theApp.m_pADOSet, strQuery) ) AfxMessageBox(_T(添加记录成功!), MB_ICONINFORMATION); / Clear all input m_sTypeID=m_sTypeName=m_sArea=m_sBedNo=m_sPrice=; (CComboBox*)GetDlgItem(IDC_ROOMTYPE_ISAIRCON)-SetCurSel(1); (CComboBox*)GetDlgItem(IDC_ROOMTYPE_ISTEL)-SetCurSel(1); (CComboBox*)GetDlgItem(IDC_ROOMTYPE_ISTV)-SetCurSel(1); (CComboBox*)GetDlgItem(IDC_ROOMTYPE_ISTOILET)-SetCurSel(1); UpdateData(false); else AfxMessageBox(_T(添加记录失败!), MB_ICONEXCLAMATION);6.6 客房信息if (m_bAppend)/客房编号唯一 strQuery = select * from rooms where roomNO=+m_sNo+; theApp.ADOExecute(theApp.m_pADOSet, strQuery); int iCount = theApp.m_pADOSet-GetRecordCount(); if ( 0!=iCount ) AfxMessageBox(_T(已经存在此客房编号的记录!), MB_ICONEXCLAMATION); return; if (m_bAppend)/容许添加客房信息 strQuery = insert into rooms (roomno, roomtype, roomposition, roomprice, roommemo) values (+m_sNo+, +m_sType+, +m_sPosition+, +m_sPrice+, +m_sMemo+); if ( theApp.ADOExecute(theApp.m_pADOSet, strQuery) ) AfxMessageBox(_T(添加记录成功!), MB_ICONINFORMATION); / 清除所有的输入 m_sNo=m_sType=m_sPosition=m_sPrice=m_sMemo=; (CComboBox*)GetDlgItem(IDD_ROOM_TYPE)-SetCurSel(0); UpdateData(false); else AfxMessageBox(_T(添加记录失败!), MB_ICONEXCLAMATION);6.7 客房信息查询if ( !m_bNoChecked & !m_bTypeChecked)/选择查询条件AfxMessageBox(_T(请选择查询条件!), MB_ICONEXCLAMATION);return;m_sNo.TrimRight( );m_sType.TrimRight( );if ( m_bNoChecked ) /编号查询if ( =m_sNo ) AfxMessageBox(_T(客房编号条件不能为空!), MB_ICONEXCLAMATION);return; else m_sNo=%;/房间类型查询if ( !m_bTypeChecked ) m_sType = %; if ( _T(所有房间类型)=m_sType ) m_sType = %;6.8 未定住客房信息查询/查询剩余客房,要求房间的状态是未定住的,putup=False or putup is NULL_variant_t strQuery;if ( m_iTypePrice ) strQuery = select * from rooms where (roomprice=+m_sBottom+ and roompriceGetRecordCount();theApp.m_pADOSet-MoveFirst();for (int i=0; iGetCollect(roomNo); (CComboBox*)GetDlgItem(IDD_BOOKIN_ROOMNO)-InsertString(i, Holder.vt=VT_NULL?:(char*)(_bstr_t)Holder); /根据roomno显示其他信息if ( 0=i ) /获得RoomTypeHolder = theApp.m_pADOSet-GetCollect(roomtype);m_sRoomType = Holder.vt=VT_NULL?:(char*)(_bstr_t)Holder; / 获得 roompositionHolder = theApp.m_pADOSet-GetCollect(roomposition);m_sRoomPosition = Holder.vt=VT_NULL?:(char*)(_bstr_t)Holder; / 获得 roompriceHolder = theApp.m_pADOSet-GetCollect(roomprice);m_sRoomPrice.Format(%.2f, Holder.dblVal); / 获得 roommemoHolder = theApp.m_pADOSet-GetCollect(roommemo);m_sRoomMemo = Holder.vt=VT_NULL?:(char*)(_bstr_t)Holder;theApp.m_pADOSet-MoveNext(); (CComboBox*)GetDlgItem(IDD_BOOKIN_ROOMNO)-SetCurSel(0);6.10 订房信息查询/选择查询条件if ( !(m_bName|m_bRoomNo|m_bInDate) )AfxMessageBox(_T(请选择查询条件!), MB_ICONEXCLAMATION);return;/顾客姓名查询if ( m_bName & =m_sName )AfxMessageBox(_T(顾客姓名不能为空), MB_ICONEXCLAMATION); return;/房间编号查询 if ( m_bRoomNo & =m_sRoomNo )AfxMessageBox(_T(客房编号不能为空), MB_ICONEXCLAMATION); return;/入住时间查询CString sTime = m_tInDate.Format(%Y-%m-%d);if ( !m_bName ) m_sName = %;if ( !m_bRoomNo ) m_sRoomNo = %; /查询条件_variant_t
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


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

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


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