大型宾馆客房服务管理系统计算机专业毕业设计论文.doc
摘要与关键词 随着社会的发展,科学技术越来越发达,我国的服务管理也走向自动化和智能化,为了适应我国社会主义市场经济的发展需要,促进办公现代化,及时满足一些大型宾馆、酒楼管理工作自动化和智能化的需要,根据一番初步的调查,我以Visual Basic 6.0为环境,开发了此应用软件“大型宾馆客房服务管理系统”,用以减轻宾馆、酒楼客房管理工作的难度。由于时间的关系,部分意图不能完全在系统中体现,系统的功能也不是很完善,但我相信通过不断的学习、实践和修改,这些问题会逐渐得到解决。关键词:面向对象、服务管理、SQL、ActiveX控件Abstract and KeywordsWith the development of society, science and technology is more and more developed, manage and moves towards automation and intelligent too in service of our country, in order to meet the development need of the socialist market economy of our country, promote the modernization of handling official business, meet some large-scale hotels , the management automation of saloon bar and intelligent need in time, according to some preliminary investigations, I regard VISUAL Basic 6.0 as the environment, has developed this application software " Used to lighten the degree of difficulty of the hotel , management of guest room of saloon bar. Because of time, some intentions can't totally reflect in the system , the systematic function is not very perfect, but I believe through constant study , practise and revising , these problems will be solved gradually.Key words: Face the target , service management ,SQL,ActiveX controlling part三、前言随着社会的发展,科学技术的不断提高。提高工作效率、降底劳动强度、美化工作环境等问题越来越受到重视,为此,办公环境也正走向自动化、智能化和多功能化。科学技术的发展使电子计算机、通信设备、办公设备的应用日益广泛,为实施办公自动化(Office Automation)创造了良好条件。随着现代科学技术的迅猛发展,计算机广泛的应用在国防、科研、教学、医疗技术等许多领域,并正在进入家庭,成为人们工作与学习的得力助手。自20世纪60年代末,数据库才露头角,随即得到了迅猛发展,成为数据处理的公用支撑技术。进至今日,数据库系统已遍布政府机关,社会团体和各行各业,存储着他们得以正常运转的资料资源,显著的提高的工作效率和质量,产生极大的社会经济效益。为了适应我国社会主义市场经济的发展和扩大改革开放的需要,促进办公现代化,及时满足各大型宾馆、酒楼客房管理自动化的需要,根据一番初步的调查,我以Visual Basic 6.0为环境,开发了此应用软件“大型宾馆客房服务管理系统”,用以减轻宾馆、酒店客房管理工作的难度。由于时间的关系,部分意图不能完全在系统中体现,系统的功能也不是很完善,但我相信通过不断的学习、实践和修改,这些问题会逐渐得到解决。四、目录一、封面二、摘要及关键词Abstract and Keywords三、前言四、目录五、第一章:开发大型宾馆、酒店服务管理系统的目的和意义 第二章:系统设计背景分析第三章:设计目标3.1、现行研究存在的问题3.2、本系统要达到的几个设计目标第四章:系统设计原理、原则和开发环境 4.1、系统设计原理 4.2、系统设计原则 4.3、系统运行的配置要求第五章:系统功能与分析5.1、系统功能5.2、系统分析第六章:系统的总体设计与实现 6.1、数据库设计 6.2、程序设计 6.3、程序流程图 6.4、系统功能的具体实现第七章:系统测试 7.1、发布系统 结束语(心得体会、致谢) 六、参考文献 七、附录(源代码) 五:第一章:开发大型宾馆客房服务管理系统的目的和意义随着社会的发展,科学技术的进步,我国的办公环境也走向了自动化和多功能化。电子计算机、各种通迅设备、网络的应用日益广泛。在国防、科研、教学、医疗等各个行业越来越来受重视,而且正在进入家庭,进入我们的生活,成为我们学习、生活的得力助手。数据库的应用更是广泛,大到政府机关、国企,小到私营工厂,数据库存储着它们得以正常运行的数据资料。显著的提高了工作效率,减轻了劳动强度,美化了工作环境。 根据一番初步的调查,发现现在一些宾馆、酒店等服务行业,各种服务项目越来越多,需要管埋的数据也越来越多,导致数据管理难度比较大,而且这些数据资料非常重要。但是现在一些用于宾馆、酒店的管理软件比较过时,操作不够方便,对宾馆的管理不够统一,包括的服务项目不够全面。为了使宾馆、酒店的数据管理更加方便,更加简单,更加全面,进一步提高工作效率,我设计了这个“大型宾馆客房服务管理系统”,尽量使它界面美观,在操作中更加方便、容易,功能也更加强大,以减轻宾馆、酒店等服务行业的数据管理难度。由于时间关系及本人的水平有限,程序中难免有些BUG,但我相信通过不断的学习,对程序更新、管理,会解决程序中的错误,使程序更加稳定,也欢迎各位爱好者、各界人士给我提出宝贵的意见。第二章:系统设计背景分析大型宾馆、酒店的服务台或服务部是大型宾馆客房服务管理系统的用户,通过对宾馆服务台的考察,了解了宾馆服务台工作人员在客房等服务项目上的管理需求。即:现在宾馆、酒店的服务项目越来越多,需要管理的数据很多、很杂,但是这些数据又非常重要,而服务台又不宜有太多的工作人员。在为客户开房间、退房间时需要花费很多时间,客户往往不耐烦,在给客户讲解不同规格的房间时,或是介绍宾馆项目时经常记不清楚,而且,在不同服务项目方面,管理软件切换很麻烦。希望把不同的服务项目管理软件集中在一起,使查询方便快捷,并且加入客房的介绍。在了解了现在大型宾馆、酒店的管理模式,现行宾馆、酒店管理软件的缺陷后,把新的管理系统用数据流程图表示出来后,得出了初步的逻辑模型。征求了宾馆管理负责人和系统使用者对系统开发成本、处理事务、系统规模和目标等方面的意见,得出准确的模型。即:现在宾馆、酒店的服务项目越来越多,需要管理项目也越来越多,管理难度越来越高,要求新的管理系统层次分明,结构清晰。管理的服务项目集中,查询方便,最好加入一些世界时钟表、货币对换表、列车时刻信息等相关的一些资料和使用宾馆的一些介绍、图片等内容。开发的这个新的管理系统应能综合以上功能,减轻宾馆、酒店服务工作人员的劳动强度。经过上述一系列分析后,通过深入的思考,对系统模型进行全面的策划,认为大型宾馆、酒店管理系统在设计方面不需要特殊的技术,用现行的可视化,面向对象程序设计语言VB,可以实现。第三章:设计目标3.1、现行研究存在的问题u 使用Windows的注册表保存系统登陆密码。首先使用API中的注册表操作函数,但是在实际中,出现乱码,无法正常的读写的密码信息,使系统的登陆密码模块无法使用。现在使用的是VB 中的注册表操作函数SaveSetting、GetSetting、DeleteSetting,它们的使用比较简单,唯一的不足之处是只能把信息记录在指定的位置上。u 本系统的主窗体使用的MDIForm,这种窗体上不能加上Image控件,所以无法使用可伸缩的背景图,而直接使用窗体的Picture属性加入背景图的话,图像的大小无法跟随窗体大小变化而自动伸缩。系统暂时取消窗体背景图显示这一功能。u 显示数据表的窗体上,MSFlexGrid控件中被选中记录的加亮显示是即时通过改变单元格的背景色实现的,因为这一方法比较复杂,所以在使用中可能会出现一些显示不正确的地方。u 系统使用的数据库文件要放在程序目录下,否则无法显示数据库中的记录。编译后的可执行文件,也需要把数据库文件和两幅图片文件与程序放在同一目录下,否则程序无法启动,弹出出错框。u 在添加记录时,如果弹出错误框,则说明记录中有些字段不能为空值。比如字段类型为数字型的,就一定不能为空值。3.2、本系统要达到的几个设计目标本系统是大型宾馆、酒店用于客房管理的软件,其主要功能电子化管理宾馆的客房、入住客户的信息、客房服务员的信息。本系统的设计目标有以下几个:u 记录宾馆各客房的规格、价格、类型等信息,可添加新的客房信息,修改客房信息,删除没有的客房信息,按不同字段条件查询客房信息。u 记录已住房和已订房客户的姓名、身份证号、工作单位等信息。随时修改客户的信息,方便的按不同字段条件查询客户的信息。u 记录宾馆客房服务员的个人信息,可随时方便的添加、修改、删除服务员的信息,随时按不同字段条件查询服务员的信息。u 数据库中的记录对宾馆非常重要,本系统可以设置系统登陆密码,当系统设置了登陆密码后,任何人要进入系统,进行数据操作都必需要输入正确的密码才能进入本系统。u 可以通过本系统的工具栏按钮直接打开计算器和记事本,以方便在使用系统时一些数字的计算和重要事情的记录。第四章:系统设计原理、原则和开发环境 4.1、系统设计原理Microsoft公司的VISUALBASIC 6.0有强大的数据库处理功能。通过数据控件DATA,实现对数据库中的各个表进行添加、修改、删除、移动等操作。设定为索引的字段可以自动排列。判断用户的操作是否可行,如果满足条件,则可进行相应的操作。网格控件可以把数据表中的记录以电子表格的形式显示出来,非常美观。用户在浏览记录时也一目了然。本系统就是通过数据控件绑定数据库中表,使用程序代码来进行数据记录的各种操作。通过网格控件MSFlexGrid来显示数据表的每项记录。 4.2、系统设计原则程序设计原则:本系统程序设计的原则是把每一个不同的功能使用一个模块实现,这些模块之间的结构灵活,独立性很强,整个系统的结构也变的十分清晰,可靠性强,每个模块的代码简短、清楚,大大加强了程序代码的可读性,也方便于日后的代码修改和程序维护。整个系统形成一个树形的结构,每一层都是独立的,每一层又可以调用它的下一层,一层一层的分解开来。这样的层次简单明了,各层次之间的联系少。数据库设计原则:数据库在一个信息管理系统中占有非常重要的地位,数据库结构设计的好坏将直接对应用系统的效率以及实现的效果产生影响。合理的数据库结构设计可以提高存储的效率,保证数据的完整和一致,同时,合理的数据库结构也将有利于程序的实现。本系统的数据库使用Microsoft Access 2000设计,分为三个表客房信息表、客户信息表、服务员信息表,表与表之间的联系较少。4.3、系统运行的配置要求部件名称基本配置CPUPentium133以上(推荐Pentium 1G以上)内存最低32M(推荐128M以上)硬盘空间安装需80M显示器彩色显示器显示卡支持640*480以上分辩率(推荐2M显存)打印机Windows操作系统支持的打印机输入设备系统兼容的鼠标、健盘光驱倍速CD-ROM或DVD(推荐8倍速以上)软件Windows98、ME、2000或WindowXP,Visual Basic 6.0或VB运行库Microsoft Access 2000第五章:系统功能与分析5.1、系统功能1) 系统主菜单图:大型宾馆、酒店客房管理系统关于系统使用说明打开记事本打开计算器全部关闭全部最小化横向排列纵向排列系统设置删除密码更改密码设置密码打开服务员表打开客户表打开客房表退出系统帮助工具子窗体设置数据库 2)子窗体工具栏图:开房退房新增客房首条记录更改客房宾馆客房表窗体宾馆客户表窗体上一条记录删除客房下一条记录首条记录末条记录上一条记录更改客户下一条记录查询末条记录查询查找空房删除客房新增客房更改客户宾馆服务员表窗体末条记录下一条记录上一条记录首条记录查询5.2、系统分析 本系统分为七大功能模块,以下对各个模块简述:1、 系统登陆:要求用户输入合法的密码,才有权限进入本宾馆客房管理系统,否则将提示“密码错误”,阻止非法用户进入本系统,以保证系统的安全性和可靠性。2、 客房管理模块:这一个模块主要是管理宾馆所有的客房,包括显示已记录的所有客房,客房的添加、信息更改、删除、查询客房信息和查找空的客房,在开房和退房功能中,主要是标明哪些客房已住人、已订或为空房并且在客户管理表中添加客户的信息。在查询功能中可以用不同的字段为查询条件。在查找空房功能中,可以方便的查找不同规格类型的空客房。客房的信息包括客房号、客房的类型规格、日价格、现在状态、客户入住的日期和客户姓名、服务员姓名。3、 客户管理模块:这一个模块主要是管理客户的信息,包括显示已记录的客户的信息,更改客户的信息,按不同字段查询客户的信息。客户的信息包括客户的姓名、性别、工作单位、身份证号码和客户已往或已订的客房号。4、 服务员管理模块:这一个模块主要是管理宾馆在职服务员的信息,包括添加、更改、删除服务员信息,按不同的字段查询在职服务员的信息。服务员信息包括服务员的编号、姓名、性别、年龄、身份证号、联系电话和本服务员管理的客房号。5、 子窗体控制模块:这一模块是针对所有的子窗体的,包括让子窗体纵向排列、横向排列,让所有的子窗体最小化,关闭全部的子窗体。6、 工具和帮助模块:工具模块可以快捷的打开Windows的计算器和记事本工具,方便在使用本系统时遇到一些计算或重要的事情记录。帮助模块主要是告诉用户如何使用本系统。还包括本系统的版本号。7、 预读模块:这一个模块是在程序开始运行时,载入所有的窗体,并隐藏它们,以减少调用某一个窗体时需要的时间,加快本系统的运行速度。第六章:系统的总体设计与实现 6.1、数据库设计 本系统的数据库是基于Microsoft Access的表,数据库文件的后缀名为XXX.mdb。具体设计是使 用VB自带的数据库设计工具。打开VB菜单栏中“外接程序”,打开“可视化数据管理器”,在弹出的数据管理器中,选择菜单项“文件”->“新建” ->“Microsoft Access” ->“Version 7.0 MDB”,输入数据库的文件名,点击“保存”,在数据库窗口中按鼠标右健,选择“新建表” ->输入表名,点击“添加字段”来增加表需要的字段,输入字段名、数据类型、数据大小等内容。1) 系统数据流程图客房或客户或服务员信息录入更改信息删除信息(客户表无此项)数据表查询信息2) 实体ER图 (客房信息表)客房信息实体现在状态客房规格客房类型日价格客房号客户姓名入往日期服务员 (客户信息表)客户信息实体性别客户姓名工作单位身份证号所往(订)房间 (服务员信息表)服务员信息实体年龄编号服务员姓名性别身份证号联系电话管理客房号3)数据库结构图客房信息表字段名称数据类型数据大小数据说明客房号Integer2索引(不可为空)客房类型Text20无客房规格Text20无价格Currency8无现在状态Text10无入住日期Date/Time8无客户姓名Text20无服务员Text20无客户信息表字段名称数据类型数据大小数据说明客户姓名Text20无性别Text10无工作单位Memo0无身份证号Text20无所住(订)房间Integer2住或订房间服务员信息表字段名称数据类型数据大小数据说明编号Integer2索引(不可为空)服务员姓名Text20无性别Text10无年龄Integer2无身份证号Text20无联系电话Text20无管理房间号Integer2无 6.2、程序设计 大型宾馆、酒店客房管理系统是使用Microsoft 公司的Visual Basic 6.0开发的,VB是当今最优秀,最流行的可视化快速软件开发工具之一。用它可以开发基于Windows平台的32位应用程序,依靠它强大的编译器以及在数据库方面的开发能力,可以开发出功能强大的数据库管理程序。Visual Basic 6.0继承了QBASIC语言简单、高效、易用的特性,并且加入了面向对象、过程可视化、事件驱动等软件开发方面的最新技术,使的软件的开发更加简单,更加高效。系统设计详细步骤:I. 新建一个工程,增加窗体。添加控件(本系统使用了多窗口界面,即一个父窗体Mainform与三个子窗体Roomform、kfform、fwform。父窗体上添加菜单栏、工具栏、状态栏,用来控制整个系统的运行操作,子窗体只添加工具栏,用来显示、操作、查询各个数据表。密码登陆窗体使用Windows注册表保存系统密码。)II. 添加一个模块apiandsub,声明一些公用的变量和公用的子程序、声明API函数,以便在系统代码中调用。III. 使用VB自带的可视化数据管理工具制作系统数据库,录入数据字段。IV. 为系统写入代码。V. 测试整个系统,修正系统中出现的错误。系统在开发中,添加一个窗体后,马上为窗体添加代码,单个的一步步实现各个模块的功能,反复以上步骤,完成全部模块的制作,然后运行调试无误后,才完成整个系统的设计工作。系统界面图1. 主窗体Mainform及子窗体roomform、kfform、fwform2.Inputpwform 3.setpwform4.openform及quitform5.添加信息及更改信息6.setmain7.查询(seekkf) 8.seekempty9.initform注:因系统中客房、客户、服务员表的添加、更改、查询界面基本相同,所以以上只列出一幅图片,具体界面样式,请参看附带光碟中的源程序。 读入全部窗体并隐藏,完成6.3、程序流程图1. 启动没有设密码输入密码正确检查是否设有密码Initform运行inputpwform运行Inputpwform关闭已设置密码输入密码错误重新输入系统退出2. 系统菜单关于系统使用说明打开记事本打开计算器全部关闭全部最小化横向排列纵向排列系统设置删除密码更改密码打开服务员表打开客户表退出系统设置密码打开客房表帮助工具子窗体设置数据库Setpwform显示Editpwform显示删除注册表中的密码系统结束显示setform窗体fwform显示kfform显示Roomform显示子窗体全部隐藏子窗体全部纵向排列子窗体全部横向排列子窗体全部最小化状态输入或修改密码输入要设置的内容显示Initform窗体暂无调用记事本程序调用计算器程序保存到注册表3. 工具栏流程图查找空房查询首条记录删除客房更改客房新增客房退房开房上一条记录下一条记录输入或更改信息输入查询条件末条记录输入房间号输入房间号和客户的信息作出相应的操作在客房表中删除一条记录更改客房表字段的内容在客房表中添加一条新记录显示出查询结果在客户表中删除一条记录在客户表中添加一条新记录更改客房表字段的内容 刷新数据库,操作成功,完成注:以上为客房数据表工具栏的流程图,其它数据表的各流程图与上大致相同,只是个别命今没有,请根据实际情况,参考以上流程图6.4、系统功能的具体实现 本系统使用面向对象语言VB开发设计,其功能的具体实现方法以下分部分或模块一一叙述:u 系统密码模块:1. 设置密码:使用VB中提供的函数SaveSetting()把用户输入的系统密码保存在VB指定的注册表根健下。2. 删除密码:使用VB中提供的函数DeleteSetting()删除保存在注册表中的系统密码。3. 输入密码:如果系统设置了密码,则进入系统时要求用户输入正确的密码。使用VB中提供的函数GetSetting()调出注册表中的系统密码,与用户输入的进行对比,正确才允许进入本系统。u 数据表管理模块:使用Date控件绑定到对应的数据表,用MSFlexGrid控件绑定到对应 的数据控件。1. 添加记录:使用Date控件的方法AddNew来增加一条新的记录。2. 更改记录:使用Date控件的方法Edit来对一条记录进行更改。3. 删除记录:使用Date控件的方法Delete来删除一条记录。4. 移动记录:使用Date控件的方法MoveFirst、MoveLast、MovePrevious和MoveNext对记录进行首条、末条、上一条和下一条的定位操作。5. 查询记录:使用Date控件的方法FindFirst来查找数据表中符合用户指定条件的记录u 子窗体控制模块:1. 纵向排列与横向排列:使用父窗体的方法Arrange不同的取值来实现。2. 全部最小化:使用窗体的属性WindowState的取值等于1-Minimized来实现各个窗体的最小化。3. 全部关闭:实际是使用窗体的方法Hide()来隐藏全部的窗体u 打开工具模块:使用方法Shell(PathName,WindowStyle)来打开指定路径的应用程序,并可以设置要打的应用程序打开时的状态(普通,最小化,最大化)u 窗体位最上层:使用API函数SetWindowPos()来实现窗体出现时,永远位于顶层。u 读入或打开窗体:使用Load()、Show()来读入、显示指定的窗体。u 窗体永远居中:在窗体Load事件中,使用Screen.width和Screen.height得出的屏幕的宽和高,再与窗体的宽和高相减,然后取半实现。第七章:系统测试 7.1:发布系统在VB的菜单栏中选择“文件”à“生成XXX.EXE”,在指的目录中出现了可直接运行的.exe文件。经过对生成的应用程序反复运行,修改后,系统全部功能可以正常使用。本系统第一次运行时默认不需要密码,如果要使用登陆密码,请选择系统菜单栏中的“数据库”à“设置密码”。结束语:通过这次毕业设计作业大型宾馆、酒店客房管理系统的设计开发,我学会了使用VB开发数据库管理程序的基本方法,学习了许多关于系统开发的技巧,积累了许多相关经验。明白了开发一个好的管理系统需要很多的相关经验、大量的时间及耐心。在此对我的毕业设计指导老师:XX讲师XX讲师XX讲师表示感谢,谢谢他们对本系统开发的支持和对本人的耐心指导。六、参考文献书名或资料名作者出版社VB6/.NET编程实例精选陈学、绍山等四川电子音像出版社Visual Basic 6.0编程实例教程佳文工作室电子工业出版社软件工程张海藩人民邮电出版社电脑应用疑难问题与技巧1000唐凯军四川电子音像出版社VB6.0应用于数据库的设计软星工作室软星教学软件制作Visual Basic编程资源大全VB木屋清华大学出版社电脑报2004年合订本(下)电脑报编辑社西南师范大学出版社Microsoft MSDN LibraryMicrosoftMicrosoft Corporation大型图书馆管理系统设计 刘 明无VB中使用API操作注册表李林森无大型宾馆的管理理念 华孝清求实出版社七、附录(源代码) Begin VB.Form inputpwform Caption = "登陆密码?" ClientHeight = 1320 ClientLeft = 60 ClientTop = 345 ClientWidth = 3180 Icon = "inputpwform.frx":0000 LinkTopic = "Form1" MaxButton = 0 'False MinButton = 0 'False ScaleHeight = 1320 ScaleWidth = 3180 StartUpPosition = 3 '窗口缺省 Begin VB.CommandButton Command1 Caption = "登 陆" Default = -1 'True Height = 375 Left = 2040 TabIndex = 2 Top = 900 Width = 855 End Begin VB.TextBox Text1 Height = 270 IMEMode = 3 'DISABLE Left = 720 PasswordChar = "*" TabIndex = 1 Top = 480 Width = 2175 End Begin VB.Label Label1 Caption = "请输入管理员密码:" Height = 195 Left = 240 TabIndex = 0 Top = 240 Width = 1695 EndEndAttribute VB_Name = "inputpwform"Attribute VB_GlobalNameSpace = FalseAttribute VB_Creatable = FalseAttribute VB_PredeclaredId = TrueAttribute VB_Exposed = FalseDim password As StringPrivate Sub Command1_Click()password = GetSetting("ajew", "system", "password")If Text1.Text = password ThenMe.Hideinitform.HideLoad editpwformeditpwform.HideLoad setpwformsetpwform.Hideinitform.initlabel.Caption = "正在读入客房信息."Load roomformroomform.Hideinitform.initlabel.Caption = "正在读入客户信息."Load kfformkfform.Hideinitform.initlabel.Caption = "正在读入服务员信息."Load fwformfwform.HideLoad seekroomseekroom.HideLoad seekfwseekfw.HideLoad seekkfseekkf.Hidemainform.Enabled = Truemainform.ShowMe.HideElseMsgBox "对不起,密码错误,请重新输入!", vbOKOnly, "密码错误"Text1.Text = ""Text1.SetFocusEnd IfEnd SubPrivate Sub Form_Load()mainform.Enabled = FalseMe.Top = (Screen.Height - Me.Height) / 2Me.Left = (Screen.Width - Me.Width) / 2SetWindowPos Me.hwnd, -1, 0, 0, 0, 0, 3End SubPrivate Sub Form_Unload(Cancel As Integer)EndEnd Sub Object = "831FDD16-0C5C-11D2-A9FC-0000F8754DA1#2.0#0" "MSCOMCTL.OCX"Object = "5E9E78A0-531B-11CF-91F6-C2863C385E30#1.0#0" "MSFLXGRD.OCX"Begin VB.Form kfform Caption = "客户管理表" ClientHeight = 3195 ClientLeft = 60 ClientTop = 345 ClientWidth = 7785 Icon = "kfform.frx":0000 LinkTopic = "Form1" MDIChild = -1 'True ScaleHeight = 3195 ScaleWidth = 7785 Begin VB.PictureBox cutform BorderStyle = 0 'None Height = 900 Left = 0 ScaleHeight = 900 ScaleWidth = 8175 TabIndex = 2 ToolTipText = "关闭" Top = 370 Visible = 0 'False Width = 8175 Begin VB.TextBox Text1 Alignment = 2 'Center Appearance = 0 'Flat DataField = "客户姓名"