毕业设计(论文)-VB小型宾馆管理信息系统.doc_第1页
毕业设计(论文)-VB小型宾馆管理信息系统.doc_第2页
毕业设计(论文)-VB小型宾馆管理信息系统.doc_第3页
毕业设计(论文)-VB小型宾馆管理信息系统.doc_第4页
毕业设计(论文)-VB小型宾馆管理信息系统.doc_第5页
已阅读5页,还剩38页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

装订线长 春 大 学 毕业设计(论文)纸1 前言1.1 项目开发背景 随着我国加入世界贸易组织,宾馆服务业与国际市场接轨已成为大势所趋,宾馆要迎接这场挑战,就必须提高整体竞争能力,提高整体竞争能力必须变革宾馆的管理模式,提高管理水平,实施信息化建设无疑是实现这一目的的必由之路和明智之举。目前,我国宾馆服务业信息化管理的进程缓慢,跟国外的宾馆相比管理依然落后。在激烈的竞争中,如何能把握机会,保持自己的优势,立于不败之地呢?这就需要提供最好的服务,提供最完善的设施和最先进的技术。一个成功的宾馆,其经营者不仅要提高服务水平和服务质量,从而提高客房占有率和回头率,还要有好的工作效率,并控制成本。在信息时代,更重要的是还必须要有一个完善的管理信息系统,便于方便客人和更好地管理宾馆。一套优秀的宾馆管理信息系统应该是一套适用于星级宾馆使用的优秀系统,操作简单、灵活性好、系统安全性高、运行稳定,是管理者的理想选择。本人的毕业设计题目就是设计一个小型宾馆管理信息系统,在前期的考察和分析之后,对系统进行了设计,虽然受水平所限,实践经验十分匮乏,独立完成一套完备的优秀的宾馆管理信息系统有很大的难度,但是为完成本次设计会尽自己最大的努力在实践中巩固以及整理自己在大学期间所学的知识,尽量把这个系统设计的更好。1.2 系统开发的目标对于星级宾馆,既需要完成前台的一些服务工作,还需要完成后台的管理工作,建立一套功能完善的管理信息系统,既能满足业务人员日常处理的需要,增强企业经营全过程的数字化管理水平;又能满足管理人员决策分析的需要,提高公司管理层对公司经营反馈信息的响应速度。从而大幅度提高工作效率,提高实施管理的准确性、科学性,使担负管理的工作人员从繁杂的手工劳作中解脱出来。宾馆客房管理信息系统是用来收集、处理、存贮和传播客房、顾客、结算信息,以信息管理为核心的计算机应用系统。利用宾馆客房管理信息系统中合理的数据库结构来保存数据信息,及时了解各个环节中信息的变更,通过有效的程序结构来支持各种数据操作的执行,以提高管理效率,实现宾馆服务的系统化、规范化、自动化。通过该项目的开发与使用,宾馆可以提高其员工的工作效率,增强企业竞争力,同时适应信息时代管理数字化的要求,提高宾馆的服务水平与质量,从而赢得高信誉、强实力、好效益!综上所述,该系统开发的目标如下:(1) 快速实现客人入住登记和账务处理,减少客人住店及离店时的等待时间。(2) 准确实现客人预订入住的要求,实现有效及有保障的前台系统作业。(3) 快速响应住宿客人的有关项目查询要求。(4) 实现入住、消费、结账一条龙服务,方便客人在店内的各类消费的要求。2 系统需求分析2.1 可行性分析 经济可行性:随着计算机硬件设备价格的平民化,对计算机硬件设备的投资较之以往已可以有大幅度的降低。对于本系统来说,从投入的财力与物力来讲是非常之小的,只需一台电脑,(基本配置:80586的cpu芯片,32兆的内存,windows操作平台,visual basic软件),本系统就可以正常运行,如再配以一台打印机,再运用扫码技术,将使系统的整体效用大幅提高。由于摆脱了传统的管理方式,工作效率将也会有大幅度提高。工作人员不仅能够快速的进行订房与结算等基本的工作外,还能够进行许多在传统方式下无法完成或很难完成的工作。使工作人员能够摆脱繁重的手工作业,而把更多的精力放到其他更重要的工作中,进而使宾馆的管理方式提高一个层次。技术可行性:Visual Basic已成为一个比较成熟的可视化软件开发工具,通过各种生成器的运用完全有能力开发出界面友好,功能完善的数据库管理系统。Visual Basic 也已成为许多教材中的学习数据库的入门软件,各类计算机应用能力考核,职称考核中都有Visual Basic软件的内容,所以,大凡系统学过计算机应用的人员都能对本系统的数据库进行必要的维护和管理工作。法律可行性:本软件在目前开发阶段只是作为宾馆管理的一个小型软件,它不作为商业用途上的使用,所以基本不会涉及到与法律有关的问题。特此声明:如有转载作为其他商业用途的用户,其产生的一切法律责任自负。2.2 现行系统业务需求对于宾馆日常业务的管理来说,传统的人工管理模式已经远远不能满足有效、快捷地处理经营中产生的大量信息数据的需要,从而使得宾馆企业决策层无法及时、准确地掌握一线资料,继而影响对市场进行正确地分析和预测。因此,欲在竞争中甩开对手,取得优势,必须在经营、管理、产品、服务等方面具备独到之处。而对宾馆的经营状况起决定作用的是客房的管理。简单的服务标准已不是制胜的锦囊,只有管理做到最细微之处,才能让顾客体会到宾馆服务的高标准、高质量,而准确、快速、周全往往就是最基本的成功要素。采用电脑管理业务、财务等诸多环节已成为推动宾馆业迅速发展的先决条件,宾馆客房管理信息系统是各大中小型宾馆所需要使用的一个管理系统。宾馆在其运作期间,服务水平的高低,直接影响到宾馆的形象和声誉,如:服务的安排、调度是否周到;客人的要求是否能迅速、很好地得到满足;市场的预测分析是否快捷,准确等。这其中的核心就是对每天大量的信息(客人、费用、房间等)的正确处理和保存。采用计算机这一现代化工具作为管理的辅助手段是必须的。计算机的应用包括OA(办公自动化)、MIS(管理信息系统)、CAD(计算机辅助设计)等,宾馆的计算机系统正是典型的MIS应用。因此考虑到宾馆业务上的需求我们有了开发这套系统的需要。2.3 现行系统存在的主要问题由于历史原因和实际条件的限制,目前的系统基本都采用DOS版本,它使用烦琐、不够直观、不利于扩展系统;而且客人在客房的登记、消费等都要使用手工操作,使各个部门的信息传递慢且容易造成差错,影响工作效率。例如:(1) 前台接待处:不能直接了解实际房价、客房的使用情况,客人资料查找不够快捷,其它部门不能直接了解开房信息。(2) 前台收银处:不能直接快速查询、统计客人实际消费情况,营业情况、应收情况,财务部门不能直接了解实际营收情况,更谈不上进行财务数据分析。(3) 总机处:手工计费,不够实时、快速、准确,而且要人工送单到收银处。由于人手操作的缘故,所有统计报表都由工作人员手工计算和制作,不但效率低,容易差错,更无法作大型复杂的统计,先进的管理模式无法在宾馆应用,直接影响宾馆管理水平的提高等等。2.4 解决方案通过对宾馆原有系统的了解,可以知道由于手工操作的烦琐混乱且容易出错,不易及时统计客房预定和使用情况,帐目的应收、挂帐情况等,常常造成管理上的漏洞,给服务人员和顾客带来不便,所以迫切需要用计算机来实现可靠,便捷、先进、科学的管理。因此系统改进的重点在于引入计算机网络技术和数据库技术,把各部门紧密地连接起来用计算机取代人手计算,通过网络进行信息传递取代手写传递,从而达到提高管理和服务水平,增强效率,减少差错的目的。宾馆管理信息系统正是为此而设计的,它是在对宾馆的日常运作进行综合调查的基础上开发出来的一套系统。主要包括客房资源、顾客信息、结算信息进行管理,利用宾馆管理信息系统及时了解各个环节中信息的变更,有利于提高管理效率。系统以Microsoft SQL Server 2000作为后台数据库,Visual Basic 6.0为前台开发工具,运用自顶向下逐层分解的模块化结构设计思想、面向对象的设计方法,完成了管理系统的主要模块,包括了客房信息管理、订房信息管理、结算信息管理和系统管理四个子模块。3 系统方案设计3.1 设计的原则在系统的设计过程中,需要遵循一些原则来约束设计的内容,以完善系统的功能。其主要的设计原则如下:(1) 实用性原则 该系统是以宾馆管理为基础开发的通用宾馆管理信息系统,适合于中、小型宾馆企业的使用。 (2) 可靠性原则 该系统应有较高的可靠性,在系统设计及程序设计上应该强调系统的可靠性。 (3) 可扩充性原则 应该保证该系统在系统的功能,结构方面具有可扩充性。以便适应企业以后发展的需要,做出相应的功能结构上的调整。 (4) 经济性原则 应该注重系统的性价比,时刻为用户着想,在同等功能的基础上尽可能的减少企业的投入。 综上所述,帮助企业加强管理,提高经济效益,解决实际管理中的各类问题,是设计该系统的主要目标。3.2 数据流图设计数据流图使结构化分析的主要技术,它简单,有效,能够帮助系统分析员更好的理解和掌握程序的数据流向和逻辑。通过对用户需求的数据流分析,可以得到一些基本的输入,输出,过程和数据存储,由此可以设计出如下三层的数据流图。首先分析顶层的DFD图,如图3-1所示。宾馆管理信息系统普通用户管理员用户管理退房订房房间管理结算管理图3-1宾馆管理信息系统顶层DFD图通过对顶层的数据流图的进一步细化,得到若干细化的加工和数据流,从而得到数据流图的0层子图,如图3-2所示:1客房管理 3结算管理 2用户管理订退客房结算信息房间管理用户信息用户管理客房信息表图3-2 0层细化DFD图进一步分析可以得知,“客房管理”和“结算管理”子加工可以进一步划分:1.1客房标准管理1.2订房管理客房标准表订房信息表修改标准增删标准订退客房1.3客房信息管理客房状态客房标准图3-3 客房管理底层细化DFD图用户信息3.1结算信息增删3.2结算信息修改客房标准表用户信息图3-4 结算管理底层细化DFD图3.3 系统流程分析根据前面的需求分析来对系统进行数据流程的分析,为以后的设计打下基础。(1) 首先根据宾馆的实际客房标准设置客房信息。(如标准名称、客房面积、床位数量、客房单价、是否有空调、电视机、电话和单独卫生间等)(2) 对这些客房信息进行标准化管理。(3) 顾客登记,录入顾客的基本信息。(如顾客姓名、顾客身份证号码等)(4) 录入顾客的订房信息。(如入住时间、及其他要求等)(5) 订房信息的管理。(包括房间信息和顾客信息的查询、空房信息的查询等)(6) 如果顾客退房,就进入结算信息的管理。(有退房时间的其他信息)(7) 由于顾客的退房,此房已成为空房,应返回到客房信息管理。4 系统总体结构设计4.1 系统的模块设计在进行完系统方案设计之后,对各项功能进行集中、分块,按照结构化程序设计的要求,得到如图4-1所示的系统功能模块图:宾馆管理信息系统系统管理客房信息管理订房信息管理结算信息管理结算信息查询添加新用户退出系统修改用户密码设置客房标准结算信息修改结算信息添加订房信息查询订房信息添加订房信息修改剩余客房信息查询设置客房信息客房标准删除客房标准修改客房标准添加客房信息查询客房信息修改客房信息添加客房信息删除图4-1 系统功能模块图4.2 数据库设计(1) 数据库需求分析用户的需求具体体现在各种信息的提供、保存、更新和查询等方面。这就要求数据库结构能充分满足各种信息的输入和输出、收集基本数据、数据结构以及数据处理的流程,组成一份详尽的数据字典,为数据库的具体设计打下基础。在仔细分析调查有关宾馆管理信息系统需求的基础上,确定了这个系统所处理的数据流程。针对一级宾馆管理信息系统的需求,通过对宾馆管理工作过程的内容和数据流程分析,下面开始对数据库的概念结构开始设计。(2) 数据库概念结构设计本系统根据以上的设计规划出的实体有:客房标准信息实体、客房信息实体、订房信息实体、结算信息实体。各实体图以及实体间整体E-R图如图4-2至图4-6所示。客房标准信息实体标准编号卫生间标准名称电话 客房面积空调电视机床位数量客房单价图4-2 客房标准信息实体图客房信息实体客房编号备注信息客房单价客房类型客房位置图4-3 客房信息实体图订房信息实体客房编号顾客备注客房类型折扣客房位置入住时间身份证号客房单价价客房备注顾客姓名图4-4 订房信息实体图结算信息实体客房编号备注信息客房类型客房备注客房位置折扣入住时间顾客姓名身份证号客房单价图4-5 结算信息实体图管理员实体管理普通用户订房客房信息结算信息管理结算订房1n1mn1nm图4-6 实体间整体-图(3) 数据库逻辑结构设计现在需要将上面的数据库概念结构转化为SQL Server 2000数据库系统所支持的实际数据模型,也就是数据库的逻辑结构。宾馆管理信息系统数据库中包括四个表格,每个表格表示在数据库中的一个表。其中包括表4-1客房标准信息表、表4-2订房信息表、表4-3客房信息表、表4-4系统用户表,设计结果如下所示:表4-1 客房标准信息表列名数据类型可否为空说明TypeidVarcharNOT NULL标准编号TypenameVarcharNOT NULL标准名称AreaNumericNULL房间面积BednumNumericNULL床位数量PriceNumericNULL单价HairconditionVarcharNULL是否有空调HtelephoneVarcharNULL是否有电话HtelevisionVarcharNULL是否有电视HtoiletVarcharNULL是否有单独卫生间列名数据类型可否为空说明Bookno VarcharNOT NULL订房编号CustomnameVarcharNOT NULL 顾客姓名CustomIDVarcharNOT NULL身份证号码RoomnoVarcharNOT NULL客房编号IndateDatetimeNULL入住日期DiscountNumericNULL折扣InmenoTextNULL备注CheckdateDatetimeNULL结算日期AmountNumericNULL金额表4-2 订房信息表表4-3 客房信息表列名数据类型可否为空说明roomNOVarcharNOT NULL客房编号RoomtypeVarcharNOT NULL客房类型RoompositionVarcharNULL客房位置RoompriceNumericNULL单价PutupVarcharNOT NULL是否被预定RoommemoTextNULL备注表4-4 系统用户表列名数据类型可否为空说明User_idcharNOT NULL用户名称User_pwdcharNULL 用户密码User_descharNULL用户描述 (4) 数据库结构的实现经过前面的需求分析和概念结构设计以后,得到数据库的逻辑结构。现在就可以在SQL Server 2000数据库系统中实现该逻辑结构。这是利用SQL Server 2000数据库系统中的SQL 查询分析器实现的。下面给出创建这些表格的SQL语句。创建系统用户表格 user_Info CREATE TABLE dbo.user_Info1( user_IDchar(10) COLLATE Chinese_PRC_CI_AS NOT NULL, user_PWD char (10) COLLATE Chinese_PRC_CI_AS NULL, user_Des char(10) COLLATE Chinese_PRC_CI_AS NULL ) ON PRIMARY创建客房标准信息表格roomtype CREATE TABLE dbo.roomtype( typeidchar(10) COLLATE Chinese_PRC_CI_AS NOT NULL, typenamechar(10) COLLATE Chinese_PRC_CI_AS NOT NULL, areanumeric(5,0) NULL, bednumnumeric(2,0) NULL, hairconditionchar(2) COLLATE Chinese_PRC_CI_AS NULL, htelephonechar(2) COLLATE Chinese_PRC_CI_AS NULL, htelevisionchar(2) COLLATE Chinese_PRC_CI_AS NULL, htoiletchar(2) COLLATE Chinese_PRC_CI_AS NULL, pricenumeric(10,2)NULL ) ON PRIMARY创建客房信息表格roomsCREATE TABLE dbo.rooms( roomNOchar(10) COLLATE Chinese_PRC_CI_AS NOT NULL, roomtypechar(10) COLLATE Chinese_PRC_CI_AS NOT NULL, roompositionchar(20) COLLATE Chinese_PRC_CI_AS NULL, roompricenumeric(10,2) NULL, putupchar(2) COLLATE Chinese_PRC_CI_AS NOT NULL, roommemotext COLLATE Chinese_PRC_CI_AS NULL ) ON PRIMARY TEXTIMAGE_ON PRIMARY创建订房信息表bookinCREATE TABLE dbo.bookin( booknochar(14) COLLATE Chinese_PRC_CI_AS NOT NULL, customnamechar(10) COLLATE Chinese_PRC_CI_AS NOT NULL, customIDchar(18) COLLATE Chinese_PRC_CI_AS NOT NULL,roomnochar(10) COLLATE Chinese_PRC_CI_AS NOT NULL, indatedatetime NULL, discountnumeric(2,0) NULL, inmemotext COLLATE Chinese_PRC_CI_AS NULL, checkdatedatetime NULL, ammountnumeric(10,2) NULL) ON PRIMARY TEXTIMAGE_ON PRIMARY5 系统详细设计5.1 管理信息系统工程的创建5.1.1创建工程项目启动Visual Basic后,单击文件新建工程菜单,在工程摸板中选择标准 EXE,Visual Basic将自动产生一个Form窗体,属性都是缺省设置。将这个工程项目命名为Hotel_MIS。5.1.2创建公用模块这是系统中最主要的模块,在Visual Basic中可以用公用模块来存放整个工程项目公用的函数、过程和全局变量等。这样可以极大地提高代码的效率。在项目资源管理器中为项目添加一个Module,保存为Module1.bas.在录入有关信息时,需要按回车键来进入下一个文本框,这样对软件使用者非常方便。在所有的功能模块都需要这个函数,所以将它放在公用模块中。由于系统中各个功能模块都将频繁使用数据库中的各种数据,因为需要一个公共的数据操作函数ExecuteSQL,用以执行各种SQL语句。Keyasc 用来保存当前按键,SendKeys函数用来指定的按键。一旦单击回车键,将返回Tab键,下一个控件自动获得输入焦点。主要的代码如下:Public Sub EnterToTab(Keyasc As Integer) If Keyasc=13 Then SendKeys“TAB” End IfEnd subGintTmode变量用来记录是添加状态还是修改状态,赋值1为添加,赋值2为修改。FlagTedit变量用来标示是否进入修改的窗体。ExecuteSQL函数有两个参数:SQL和MsgString。其中SQL用来存放需要执行的SQL语句,MsgString用来返回执行的提示信息。函数执行时,首先判断SQL语句中包含的内容,当执行查询操作时,ExecuteSQL函数将返回一个与函数同名的记录集对象(Recordset),所有满足条件的记录包含在对象中,当执行如删除、更新、添加等操作时,不返回记录集对象。ExecuteSQL函数主要的代码如下:打开连接cnn.Open ConnectString If InStr(“INSERT,DELETE,UPDATE”,UCase$(sTokens(0) Then Cnn.Execute SQL MsgString=sTokens(0)&”query successful” Else Set rst=NEW ADODB.Recordset rst.Open Trim$(SQL),cnn,adOpenKeyset,adLockOptimistic rst.MoveLast get RecordCount返回记录集对象 Set ExecuteSQL=rst MsgString=“查询到“&rst.RecordCount&”条记录”函数过程基本上和sub子程序过程类似,惟一的不同在于,sub子程序仅定义一段可能重复使用的代码,而Function函数过程除了定义一段可重复使用的代码外,还可以在调用结束后带回一个返回值。5.2 用户登录窗体的创建系统启动后,用户首先输入用户名,然后输入密码。如果用户3次输入密码不正确,将退出程序。用户登录窗体中放置了两个文本框,用来输入用户名和用户密码;两个按钮用来确定或者取消登录;四个标签用来标示窗体的信息。为窗体定义全局变量OK,用来判断登录是否成功;定义miCount,用来记载输入密码的次数。并且在载入窗体时初始化这两个全局变量。Option Explicit是用来规定所有变量使用前必须定义。这样可以避免由于输入错误而产生的新变量。当用户输入完用户名和用户密码,单击cmdOK的Click事件进行身份验证。用户如果没有输入用户名和用户密码,将出现消息框提示。如果输入的用户名在用户表格中没有找到,将提示重新输入用户名,文本框txtUserName将重新获得输入焦点。如果用户输入的密码不正确,文本框txtPassword将重新获得输入焦点。用户登录成功,全局变量OK将被赋值为True;一旦三次输入密码均不正确,全局变量OK将被赋值为False.公用模块中的Main过程将根据OK的值决定是退出,或者进入系统。如果用户取消登录,单击cmdCancel按钮,将触发按钮的Click事件。登录窗体的数据流程如图5-1所示: 否 是 否 是输入用户名是否存在该用户输入密码密码验证是否正确进入系统主窗体开 始结 束 图5-1 登录窗体数据流程图登录界面如图5-2所示: 图5-2 用户登录界面5.3 系统用户管理模块的创建5.3.1 主窗体系统的主窗体是各个模块之间相互联系的桥梁,通过它可以实现各个模块之间的沟通和联系。整个系统设置了四个菜单,分别为系统、客房信息管理、订房信息管理和结算信息管理,每个菜单执行不同的功能,其中系统菜单各个功能将在以后介绍。作为主窗体这里采用MDI(多文档界面)。它是提供进行多个文档操作的界面,可以在应用程序中同时打开多个文档,分别以不同的窗体显示在程序画面中,让用户随意在各个文档来回切换,简化了文档之间的信息交换。当用户在登录窗体输入的用户名和密码验证正确后就登录到系统主窗体,系统主窗体界面如图5-3所示: 图5-3 系统主窗体界面5.3.2 添加用户窗体进入系统后,选择菜单“系统管理|添加用户”就可以添加用户。 在这个窗体中放置了3个文本框,用来输入用户名和用户密码;两个按钮用来确定是否添加用户;3个标签用来标示文本框的提示。用户需要两次输入密码,用来确保输入密码的正确。用户输入信息完毕后,单击cmdOK按钮将触发Click事件。一旦输入完毕,系统将首先查询数据库中与新建用户名相同的记录,和登录界面一样,如果数据库记录表中有相同记录系统将提示用户重新输入用户名,文本框txtUserName将重新获得输入焦点。如果用户输入的密码不正确,文本框txtPassword将重新获得输入焦点。当确定数据库中没有相同的用户名,并且两次输入密码一致时,将把该条记录添加到数据库中。添加用户界面如图5-4所示:图5-4 添加用户界面5.3.3修改用户密码窗体用户如果想修改自己的密码,可以选择菜单“系统管理|修改密码”。在这个窗体中放置了两个文本框,用来输入密码和确认密码;两个按钮用来确定是否修改密码;两个标签用来标示文本框的内容。两次输入密码后,单击cmdOK按钮,将触发Click事件判断是否修改密码。当两次输入密码一致时,数据库中的记录将更新。修改用户密码界面如图5-5所示:图5-5 修改用户密码界面5.4 客房标准管理模块的创建5.4.1添加客房标准选择“客房信息管理|设置客房标准|添加客房标准”菜单。在窗体上放置多个文本框,用来输入客房标准基本信息,多个下拉式文本框选择不同的硬件设施;两个按钮用来确定是否添加房间标准信息;多个标签用来提示文本框中需要输入的内容。在系统载入窗体时,程序首先判断所处状态。载入窗体后,将首先通过变量gintTmode判断是添加还是修改。如果是添加状态,文本框将清除内容,窗体有提示信息;如果是修改状态,将选择显示当前的记录。判断所处状态是添加状态的代码如下:If gintTmode=1 Then 判断是否属于添加状态 Me.Caption=Me.Caption & ”添加” For i=0 To 3 Combo1(i).AddItem ”否” Combo1(i).AddItem ”是” Combo1(i).ListIndex=0 Next i用户输入内容完毕后,单击cmdSave按钮将触发Click事件。程序首先对是否输入内容进行判断,然后进行格式判断。程序将判断是否有重复编号的记录,然后添加数据到数据库。最后根据状态来显示相应的信息:如果是添加状态,将提示添加成功,然后重新显示并清空所有文本框,以便继续添加记录;如果处于修改状态,将提示修改成功,然后更新所有记录的列表。添加客房标准的界面如图5-6所示:图5-6 添加客房标准的界面在上面的程序中以及以后的程序中经常会出现EOF和BOF属性,这是两个很重要的属性。BOF是判定是否在首记录之前,若BOF为TRUE,则当前位置位于记录集的第一条记录之前。与此类似,EOF判定是否在末记录之后,若EOF为TRUE,则当前位置位于记录集的最后一条记录之后。BOF和EOF属性具有以下几个特点:(1) 如果记录集中没有记录,则BOF和EOF的值都是TRUE。(2) 当BOF或EOF的值成为TRUE之后,只有将记录指针移动到实际存在的记录上,BOF或EOF属性值才会变为FALSE。(3) 若BOF或EOF为FALSE,而且记录集中唯一的记录被删除掉,那么属性将保持FALSE,直到试图移到另一个记录为止,这时BOF和EOF属性都将变为TRUE。(4) 当创建或打开至少含有一个记录的记录集时,第一条记录将成为当前记录,而且BOF和EOF均为FALSE。5.4.2修改客房标准选择“客房信息管理|设置客房标准|修改客房标准”菜单。在窗体中放置一个表格控件。载入窗体时,触发窗体的Load事件,显示当前数据库中所有的记录。调用showTitle函数,显示表头。调用showData函数,显示记录列表。当窗体变化时,需要调整标签和表格的位置,使标签始终处于窗体的最上方,而表格始终处于标签的下方。窗体的大小变化时将触发Resize事件。修改客房标准界面如图5-7所示:图5-7 修改客房标准界面5.4.3删除客房标准选择“客房信息管理|设置客房标准|删除客房标准”菜单,将出现记录列表。选择相应记录,单机鼠标右键,选择弹出式菜单,将删除当前记录。也可在直接在房间标准列表界面中点击要删除的记录,将记录删除。删除语句通过赋值给txtSQL变量来调用ExecuteSQL函数,从而实现删除的功能。删除客房标准的主要代码如下:txtSQL=“ delete from roomtype where typeid=“&Trim(frmRoomtype.msgList.TextMatrix(intCount,1)&”Set mrc=ExecuteSQL(txtSQL,MsgText)5.5 客房信息管理模块的创建5.5.1添加客房信息选择“客房信息管理|设置客房信息|添加客房信息”菜单。将各种文本框放在窗体的框架中,组成“客房信息”栏。载入窗体时,由于设计了下拉菜单,所以系统将自动添加已经事先设置好的客房种类信息,代码加在窗体的Load事件中。输入完内容,单击“保存”按钮,触发Click事件,首先检查文本内容是否符合格式要求,然后判断是否有重复记录,并更新房间表中的相关信息,最后添加内容到数据库。添加客房信息界面如图5-8所示:图5-8 添加客房信息界面5.5.2修改客房信息选择“客房信息管理|设置客房信息|修改客房信息”菜单。窗体中放置了一个表格控件,所有房间记录都显示在里面。选择需要修改的记录,在弹出式菜单中选择“修改客房信息”,然后进行修改。选择“修改客房信息”将触发menuModifyroom的Click事件。程序判断为修改状态后,首先删除原有记录,然后把新的内容加入到数据库中。修改客房信息的主要代码如下:If frmRoom.msgList.Rows1 Then判断客房信息列表内容是否为空 gintRmode=2设置为修改状态 intCount=frmRoom.msgList.Row记录当前记录的位置frmRoom1.txtSQL=“ select*from rooms where roomNO=“&Trim(frmRoom.msgList.TextMatrix(intCount,1)&”frmRoom1.Show修改客房信息界面如图5-9所示:图5-9 修改客房信息界面5.5.3删除客房信息在客房记录列表中选择记录,然后选择菜单中的“删除客房信息”,将删除当前记录。主要的功能介绍和代码同删除客房标准基本相同,这里就不再做介绍了。5.5.4查询客房信息选择“客房信息管理|设置客房信息|查询客房信息”菜单,在这里可以按照各种方式以及他们的组合进行查询。载入窗体时,将自动加入所有记录的输入时间。设置完查询内容和方式后,单击cmdOK按钮将进行查询。满足查询条件的所有记录将显示出来。首先通过语句txtSQL=“select DISTINCT typename from roomtype”来初始化客房种类,然后通过ExecuteSQL(txtSQL,MsgText)函数来返回一个记录集,用户运行程序时当设置完查询内容和方式后,单击cmdOk按钮查询,查询按钮的设计是通过三个if语句来判断条件,从而将符合要求的查询语句赋值到变量sQSql上,最后再通过frmRoom.txtSQL=“select*from rooms where”&sQSql来实现客房信息的查询。以后模块中用到的查询方法的代码设置都是按照上面的思想设计的。查询客房信息界面如图5-10所示:图5-10 查询客房信息界面5.6 订房信息管理模块的创建订房信息管理是整个宾馆前台操作中最重要的功能模块之一,可以说前台接待质量的好坏直接影响宾馆客人的入住率和声誉。一套高质量的宾馆管理系统应该能使酒店前台工作人员快捷有序地为客人办理不同类型的入住登记手续,这一点当宾馆前台等待入住的客人较多时就显得尤为重要,操作人员经过培训后在不到半分钟内即可通过电脑操作完成,而客人的详细资料可以在办完入住手续后再由当班操作员补填。以下是客人入住的一般操作步骤:5.6.1查询剩余客房信息选择“客房信息管理|查询剩余客房信息”菜单,可以查询剩余的客房。载入窗体时,程序将自动加入事先设置好的客房种类和客房单价。设置好查询方式,单击“确定”按钮。所有没有被预定的客房都将显示在窗体中。 此模块的代码设计基本同查询客房信息模块代码相同。查询剩余客房信息界面如图5-11所示:图5-11 查询剩余客房信息界面5.6.2添加订房信息选择“订房信息管理|添加订房信息”菜单。系统载入窗体时,将把所有没有被预定的客房信息加入其中。用户选择完客房信息后,再完整的输入顾客信息,单击“保存”按钮,将添加当前记录到数据库中。这里的入住时间的输入格式一定要正确,如2006-02-02。在这里使用的下拉菜单就是为了方便用户不用再次输入已经设定好的客房信息,而只需要通过选择客房编号就可以自动添加以后的客房信息,用户只需要输入顾客的信息就可以了。添加订房信息的数据流程图如图5-12所示: 否 是图5-12 添加订房信息数据流程图开 始选择客房信息添加订房信息窗体输入顾客信息信息是否添加完整结 束添加订房信息界面如图5-13所示:图5-13 添加订房信息界面5.6.3修改订房信息选择“订房信息管理|修改订房信息”菜单。系统载入窗体后选择要修改的记录,单击鼠标右键。选择“修改订房信息”,当前记录的内容将出现在窗体中,用户可以对其进行修改,修改结束后选择“保存”按钮,将修改的数据保存到数据库中。修改订房信息界面如图5-14所示:图5-14 修改订房信息界面5.6.4查询订房信息选择“订房信息管理|查询订房信息”菜单。在这里可以按照各种方式以及它们的组合进行查询。满足查询要求的记录将出现在记录窗体中。代码同前面查询的代码基本相同。查询订房信息界面如图5-15所示:图5-15 查询订房信息界面5.7 结算信息管理模块的创建5.7.1添加结算信息 选择“结算信息管理|添加结算信息”菜单。窗体载入时,自动加入所有未结算客房的信息。选择不同的客房,触发cboItem下拉式文本框的Click事件,显示相应的顾客信息。完成内容的输入,单击“确定”按钮将触发Click事件。首先判断输入内容是否满足要求,然后添加到数据库中。添加结算信息中结算的设计主要代码如下:If bYear=eYear Then aDays=eDays-bDays Else aDays=(eYear-bYear-1)*365+(365-bDays)+eDays End If mrcc.Fields=aDays*Trim(cboItem(3)*Trim(txtItem(3)/100计算应交房费 amMount=aDays*Trim(cboItem(3)*Trim(txtItem(3)/100 mrcc.Update更新数据添加结算信息界面如图5-16所示:图5-16 添加结算信息界面5.7.2修改结算信息选择“结算信息管理|修改结算信息”菜单。选择需要修改的记录,单击鼠标右键,选择“修改结算信息”命令,就可以在所示的窗体中记录进行修改。修改结算信息界面如图5-17所示:图5-17 修改结算信息界面5.7.3查询结算信息选择“结算信息管理|查询结算信息”菜单。设置好查询方式和查询内容,满足条件的记录将的窗体中。查询结算信息的代码同查询客房信息代码基本相同。查询结算信息界面如图5-18所示:图5-18 查询结算信息界面经过上面的详细设计后,最后再打包发布,整个宾馆管理信息系统设计完成。由于在代码设计阶段经常用到一些对象的属性、事件和方法,所以掌握好这些概念对于学习Visual Basic 6.0及其他可是化的程序设计是十分重要的。属性:是指一个对象的性质和特征,这些特征可能是直接可见的,也可能是不可见的。事件:是对象能识别的一种操作或动作。方法:是对象所具有的动作和行为。下面简要介绍一些程序中经常使用的事件和方法:(1) 窗体对象的常用事件: Click/DblClick 事件Click是鼠标单击事件,对于窗体对象,在窗体的空白区中,单击鼠标左键或右键时激发的事件,其语法结构为:Private Sub Form_Click() (Visual Basic 语句)End Sub其中Private、Sub、End 都是Visual Basic语言的“关键字”。Private Sub表示过程的开始,过程都是以End Sub结束。Form_Click() 是事件过程的过程名。有些过程名后面的小括号中可以用来放置过程的参数。窗体的Click事件过程没有参数,所以括号是空的,但括号不能省略。DblClick是鼠标的双击事件,当用户在窗体上的空白处双击鼠标任意键时,触发这个事件。该事件过程也没有参数,语法为:Private Sub Form_DblClick() (Visual Basic 语句)End Sub如果在窗体上双击时,触发顺序首先是窗体的Click事件,然后才是DblClick事件。 Load 事件在窗体被加载时,由系统引发Load事件,可以使用该事件过程在窗体显示之前做一些准备工作,例如设置窗体或控件的属性,在列表框、组合框中加入初始条目,给模块级变量和全局变量赋初值等等,其语法为:Private Sub form.Load()(2) 窗体对象的常用方法 Show方法此方法用于显示窗体。语法:对象.Show Style其中,Style为参数,用以决定窗体是模式还是无模式显示。如果Style为0则窗体为无模式的,此时,参数为0或被省略,显示窗体之后,继续执行后面的代码;如果Style为1,则窗体是模式窗体,在显示模式窗体时,随后的代码要直到该窗体被隐藏或卸载时才能被执行。 Refresh方法 此方法用于强行全部重绘一个窗体以及上面的控件,一般称之为刷新窗体。 语法: 对象.Refresh6 实施概况6.1 编程工具概述(1) Visual Basic 简介Visual Basic 是Microsoft 公司开发的Windows 应用程序开发工具,Visual 可视化的,是一种开发图形户界面(GUI)的方法,使得非计算机专业的人也可以开发出专业的Windows软件。 Visual Basic继承了BASIC语言简单易学的优点,又增加了许多新的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论