宾馆管理信息系统系统平台:Windows2000数据库服务器:MicrosoftSQLServer2000开发工具:VisualBasic6.0系统开发人员:⒈编写目的宾馆在正常的运营中需要对客房资源、顾客信息、结算信息进行管理,利用宾馆管理信息系统及时了解各个环节中信息的变更,有利于提高管理效率。⒉系统功能分析系统开发的总体任务是实现宾馆各种信息的系统化、规范化和自动化。主要完成功能:●有关客房标准的制定、标准信息的输入,包括标准编号、标准名称、房间面积、床位数量、住房单价、是否有空调、电视机、电话以及单独卫生间等。●客房标准信息的修改、查询等。●客房基本信息的输入,包括客房编号、客房类型、客房位置、客房单价、备注等。●客房基本信息的查询、修改,包括客房编号、客房类型、客房位置、客房单价、备注等。●剩余客房信息的查询等。●订房信息的输入,包括客房编号、客房种类、客房位置、客房单价、顾客姓名、顾客身份证号码、入住日期、折扣、备注信息等。●订房信息的修改和查询,包括客房编号、客房种类、客房位置、客房单价、顾客姓名、顾客身份证号码、入住日期、折扣、备注信息等。●结算信息的输入,包括客房编号、客房种类、位置、客房单价、顾客姓名、顾客身份证号码、入住日期、折扣、结算日期、备注信息等。●结算信息的修改和查询,包括客房编号、客房种类、客房位置、客房单价、顾客姓名、顾客身份证号码、入住日期、折扣、结日期、备注信息等。⒊系统功能模块设计按结构化程序设计思想,分析得出如下系统功能模块图图Ⅰ系统功能模块图⒋数据库设计数据库设计步骤:●数据库需求分析●数据库概念结构设计●数据库逻辑结构设计①数据库需求分析分析调查有关宾馆管理信息需求的基础上得本系统所处理的数据流程宾馆管理信息系统结算信息管理订房信息管理客房信息管理系统管理结算信息查询结算信息修改结算信息添加订房信息查询订房信息修改订房信息添加剩余客房信息查询设置客房信息设置客房标准密码管理用户管理客房信息查询客房信息修改客房信息添加客房标准修改客房标准添加图Ⅱ宾馆管理信息系统数据流程图针对一般宾馆管理信息系统的需求,通过对宾馆管理过程的内容和流程分析,设计如下面所示的数据项和数据结构:●客房标准信息,包括的数据项有:标准编号、标准名称、房间面积、床位数量、住房单价、是否有空调、电视、电话、单独卫生间等。●客房信息,包括的数据项有:客房编号、客房种类、客房位置、客房单价、备注等。●订房信息,包括的数据项有:订房编号、客房编号、客房种类、客房位置、客房备注信息、顾客姓名、顾客身份证号码、入住时间、折扣、备注等。●结算信息,包括的数据项有:订房编号、客房编号、客房种类、客房位置、客房备注信息、顾客姓名、顾客身份证号码、入住时间、折扣、结算时间、备注等。②数据库概念结构设计本系统根据以上的设计规划出的实体有:客房标准信息实体、客房信息实体、订房信息实体、结算信息实体。各个实体具体的描述E-R图如下:客房标准设置基本信息输入客房登记基本信息录入客房信息管理顾客登记订房信息管理订房信息管理结算信息输入结算信息管理客房信息返回客房标准信息实体E-R图客房信息实体E-R图订房信息实体E-R图客房标准信息实体标准编号标准名称床位数量客房单价客房信息实体客房标准客房编号客房位置客房单价订房信息实体客房信息顾客信息折扣入住时间结算信息实体E-R图实体之间关系E-R图③数据库逻辑结构设计首先将宾馆管理信息系统的数据库概念结构转化为SQL2000数据库系统所支持的实际数据模型,即:数据库的逻辑结构。其各个表格的设计结果如下列名数据类型可否为空说明TypeidVarcharNOTNULL标准编号TypenameVarcharNOTNULL标准名称AreaNumericNULL房间面积BednumNumericNULL床位数量HairconditionVarcharNULL是否有空调HtelephoneVarcharNULL是否有电话HtelevisionVarcharNULL是否有电视HtoiletVarcharNULL是否有单独卫生间PriceNumericNULL单价Roomtype客房标准信息表结算信息实体客房信息顾客信息结算时间结算金额客房标准信息客房登记客房信息管理订房订房信息管理结算信息管理客房结算列名数据类型可否为空说明roomNOVarcharNOTNULL客房编号RoomtypeVarcharNOTNULL客房种类RoompositionVarcharNULL客房位置RoompriceNumericNULL单价PutupVarcharNOTNULL是否被预定RoommemoTextNULL备注Rooms客房信息表列名数据类型可否为空说明BooknoVarcharNOTNULL订房编号CustomnameVarcharNOTNULL顾客姓名CustomIDVarcharNOTNULL身份证号码RoomnoVarcharNOTNULL客房编号IndateDatetimeNULL入住日期DiscountNumericNULL折扣InmenoTextNULL备注CheckdateDatetimeNULL结算日期AmountNumericNULL金额Bookin订房信息表⒌数据库结构的实现利用SQL2000数据库系统中的查询分析实现数据库的逻辑结构,其表格如下:创建系统用户表格user_InfoCREATETABLE[dbo].[user_Info1]([user_ID][char](10)COLLATEChinese_PRC_CI_ASNOTNULL,[user_PWD][char](10)COLLATEChinese_PRC_CI_ASNULL,[user_Des][char](10)COLLATEChinese_PRC_CI_ASNULL)ON[PRIMARY]创建客房标准信息表格roomtypeCREATETABLE[dbo].[roomtype]([typeid][char](10)COLLATEChinese_PRC_CI_ASNOTNULL,[typename][char](10)COLLATEChinese_PRC_CI_ASNOTNULL,[area][numeric](5,0)NULL,[bednum][numeric](2,0)NULL,[haircondition][char](2)COLLATEChinese_PRC_CI_ASNULL,[htelephone][char](2)COLLATEChinese_PRC_CI_ASNULL,[htelevision][char](2)COLLATEChinese_PRC_CI_ASNULL,[htoilet][char](2)COLLATEChinese_PRC_CI_ASNULL,[price][numeric](10,2)NULL)ON[PRIMARY]创建客房信息表格roomsCREATETABLE[dbo].[rooms]([roomNO][char](10)COLLATEChinese_PRC_CI_ASNOTNULL,[roomtype][char](10)COLLATEChinese_PRC_CI_ASNOTNULL,[roomposition][char](20)COLLATEChinese_PRC_CI_ASNULL,[roomprice][numeric](10,2)NULL,[putup][char](2)COLLATEChinese_PRC_CI_ASNOTNULL,[roommemo][text]COLLATEChinese_PRC_CI_ASNULL)ON[PRIMARY]TEXTIMAGE_ON[PRIMARY]创建订房信息表bookinCREATETABLE[dbo].[bookin]([bookno][char](14)COLLATEChinese_PRC_CI_ASNOTNULL,[customname][char](10)COLLATEChinese_PRC_CI_ASNOTNULL,[customID][char](18)COLLATEChinese_PRC_CI_ASNOTNULL,[roomno][char](10)COLLATEChinese_PRC_CI_ASNOTNULL,[indate][datetime]NULL,[discount][numeric](2,0)NULL,[inmemo][text]COLLATEChinese_PRC_CI_ASNULL,[checkdate][datetime]NULL,[ammount][numeric](10,2)NULL)ON[PRIMARY]TEXTIMAGE_ON[PRIMARY]⒍宾馆管理信息系统具体程序实现⑴创建公用模块Module1.bas添加公共数据操作函数,用以执行各种SQL语句。添加函数ExecuteSQL,代码如下:PublicFunctionExecuteSQL(ByValSQLAsString,MsgStringAsString)_AsADODB.Recordset‘执行SQL语句,并返回记录集对象DimcnnAsADODB.ConnectionDimrstAsADODB.RecordsetDimsTokens()AsString‘异常处理OnErrorGoToExecuteSQL_Error’‘用Split函数产生一个包含各个子串的数组sTokens=Split(SQL)Setcnn=NEWADODB.Connection‘打开连接cnn.OpenConnectStringIfInStr(“INSERT,DELETE,UPDATE”,UCase$(sTokens(0)))ThenCnn.ExecuteSQLMsgString=sTokens(0)&”querysuccessful”ElseSetrst=NEWADODO.Recordsetrst.OpenTrim$(SQL),cnn,adOpenKeyset,adLockOptimisticrst.MoveLastgetRecordCount‘返回记录集对象SetExecuteSQL=rstMsgString=”查询到”&rst.RecordCount&”条记录”EndIfExecuteSQL_Exit:Setrst=NothingSetcnn=NothingExitFunctionExecuteSQL_Error:MsgString=”查询错误:”&Err.DescriptionResumeExecuteSQL_ExitEndFunctionPublicSubEnterToTab(KeyascAsInteger)‘判断是否为回车键IfKeyasc=13Then‘Keyasc用来保存当前按键‘转换成Tab键SendKeys”{TAB}”EndIfEndsub‘添加全局变量,用来记录各个窗口的读写状态,代码如下:PublicflagTeditAsBoolean‘标示是否进入修改的窗体PublicflagReditAsBooleanPublicflagBeditAsBooleanPublicflagCeditAsBooleanPublicgintCmodeAsIntegerPublicgintTmodeAsInteger’记录是添加还是修改状态,1为添加,2为修改PublicgintRmodeAsIntegerPublicgintBmodeAsIntegerPublicflagSeditAsBoolean⑵系统用户管理模块的创建用户管理模块主要实现:·用户登陆。·添加用户。·修改用户具体客房标准添加代码:PrivateSubForm_Load()‘载入窗体后,判断所处状态DimintCountAsIntegerDimMsgTextAsStringDimiAsIntegerIfgintTmode=1Then‘判断是否属于添加状态Me.Caption=Me.Captio