• 867.50 KB
  • 2022-04-22 13:49:15 发布

系统功能客房管理毕业论文.doc

  • 41页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档共5页,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
  4. 文档侵权举报电话:19940600175。
'系统功能客房管理毕业论文目录摘要1ABSTRACT2前言3Delphi简介1第一章概述21.1 Delphi基本概念介绍21.1.1 Delphi的基本形式21.1.2 面向对象编程的概念21.2 Delphi 快速入门31.3 Delphi可视化编程环境介绍41.3.1主窗口(Main Form)41.3.2 Object Inspector(对象检视器)41.3.3窗体窗口51.3.4代码窗口51.4课题背景及意义51.4.1小型宾馆客房管理系统的功能:51.4.2软件开发的意图61.5相关技术概述61.5.1软件工程61.5.2数据库设计61.4.3软件开发工具91.4.4数据库的建立和连接9第二章软件需求分析与概念结构设计122.1需求分析122.2数据字典132.2.1数据结构132.2.2数据项132.2.3数据流程图152.3系统功能模块的划分162.4系统功能模块图162.5概念结构设计172.5.1概念结构E-R图17第三章酒店客房管理系统的实现203.1主程序界面设计203.2部分窗体模块设计253.2.1用户登录窗体253.2.2入住登记模块273.3酒店房态管理的实现29 3.4预订客房实现32第四章系统测试344.1软件测试方法的描述344.2性能需求35第五章结论35致谢37[参考资料]38 Delphi简介Delphi是Windows平台下著名的快速应用程序开发工具(RapidApplicationDevelopment,简称RAD)。它的前身,即是DOS时代盛行一时的“BorlandTurboPascal”,最早的版本由美国Borland(宝兰)公司于1995年开发。主创者为AndersHejlsberg。经过数年的发展,此产品也转移至Embarcadero公司旗下。Delphi是一个集成开发环境(IDE),使用的核心是由传统Pascal语言发展而来的ObjectPascal,以图形用户界面为开发环境,透过IDE、VCL工具与编译器,配合连结数据库的功能,构成一个以面向对象程序设计为中心的应用程序开发工具。Delphi是Borland公司研制的新一代可视化开发工具,可在Windows3.x、Windows95、WindowsNT、WindowsXP、WindowsVista等环境下使用。当前,DELPHI也可以在LINUX平台上开发应用,其在LINUX上的对应产品Kylix。DELPHI拥有一个可视化的集成开发环境(IDE),采用面向对象的编程语言ObjectPascal和基于部件的开发结构框架。Delphi它提供了500多个可供使用的构件,利用这些部件,开发人员可以快速地构造出应用系统。开发人员也可以根据自己的需要修改部件或用Delphi本身编写自己的部件。“真正的程序员用c,聪明的程序员用Delphi”,这句话是对Delphi最经典、最实在的描述。Delphi被称Delphi界面为第四代编程语言,它具有简单、高效、功能强大的特点。和VC相比,Delphi更简单、更易于掌握,而在功能上却丝毫不逊色;和VB相比,Delphi则功能更强大、更实用。可以说Delphi同时兼备了VC功能强大和VB简单易学的特点。它一直是程序员至爱的编程工具。Delphi具有以下的特性:基于窗体和面向对象的方法,高速的编译器,强大的数据库支持,与Windows编程紧密结合,强大而成熟的组件技术。但最重要的还是ObjectPascal语言,它才是一切的根本。ObjectPascal语言是在Pascal语言的基础上发展起来的,简单易学。Delphi提供了各种开发工具,包括集成环境、图像编辑(ImageEditor),以及各种开发数据库的应用程序,如DesktopDataBaseExpert等。除此之外,还允许用户挂接其它的应用程序开发工具,如Borland公司的资源编辑器(ResourseWorkshop)。在Delphi众多的优势当中,它在数据库方面的特长显得尤为突出:适应于多种数据库结构,从客户机/服务机模式到多层数据结构模式;高效率的数据库管理系统和新一代更先进的数据库引擎;最新的数据分析手段和提供大量的企业组件。Delphi发展至今,从Delphi1、Delphi2到现在的Delphi2007,不断添加和改进各种特性,功能越来越强大。Delphi5开始添加了对IDE(集成开发环境)的很多改进新特性,扩展了数据库支持(ADO和InterBase数据库),带有Internet支持的MIDAS改进版,TeamSouse版本控制工具,转换功能,框架概念以及很多的新组件与新特性。Delphi6.0是Borland公司最新推出的一套无论是界面还是功能都近乎完美的应用程序开发工具。与以前的Delphi版本相比,Delphi6.0使用更简便,效率也更高。XXXVII 概述Delphi是全新的可视化编程环境,为我们提供了一种方便、快捷的Windows应用程序开发工具。它使用了Microsoft Windows图形用户界面的许多先进特性和设计思想,采用了弹性可重复利用的完整的面向对象程序语言(Object-Oriented Language)、当今世界上最快的编辑器、最为领先的数据库技术。对于广大的程序开发人员来讲,使用Delphi开发应用软件,无疑会大大地提高编程效率,而且随着应用的深入,您将会发现编程不再是枯燥无味的工作——Delphi的每一个设计细节,都将带给您一份欣喜。 1.1 Delphi基本概念介绍 1.1.1 Delphi的基本形式 Delphi实际上是Pascal语言的一种版本,但它与传统的Pascal语言有天壤之别。一个Delphi程序首先是应用程序框架,而这一框架正是应用程序的“骨架”。在骨架上即使没有附着任何东西,仍可以严格地按照设计运行。您的工作只是在“骨架”中加入您的程序。缺省的应用程序是一个空白的窗体(Form),您可以运行它,结果得到一个空白的窗口。这个窗口具有Windows窗口的全部性质:可以被放大缩小、移动、最大最小化等,但您却没有编写一行程序。因此,可以说应用程序框架通过提供所有应用程序共有的东西,为用户应用程序的开发打下了良好的基础。Delphi已经为您做好了一切基础工作——程序框架就是一个已经完成的可运行应用程序,只是不处理任何事情。您所需要做的,只是在程序中加入完成您所需功能的代码而已。在空白窗口的背后,应用程序的框架正在等待用户的输入。由于您并未告诉它接收到用户输入后作何反应,窗口除了响应Windows的基本操作(移动、缩放等)外,它只是接受用户的输入,然后再忽略。Delphi把Windows编程的回调、句柄处理等繁复过程都放在一个不可见的Romulam覆盖物下面,这样您可以不为它们所困扰,轻松从容地对可视部件进行编程。1.1.2 面向对象编程的概念 面向对象的程序设计(Object-Oriented Programming,简记为OOP)是Delphi诞生的基础。OOP立意于创建软件重用代码,具备更好地模拟现实世界环境的能力,这使它被公认为是自上而下编程的优胜者。它通过给程序中加入扩展语句,把函数“封装”进Windows编程所必需的“对象”中。面向对象的编程语言使得复杂的工作条理清晰、编写容易。说它是一场革命,不是对对象本身而言,而是对它们处理工作的能力而言。对象并不与传统程序设计和编程方法兼容,只是部分面向对象反而会使情形更糟。除非整个开发环境都是面向对象的,否则对象产生的好处还没有带来的麻烦多。而Delphi是完全面向对象的,这就使得Delphi成为一种触手可及的促进软件重用的开发工具,从而具有强大的吸引力。XXXVII 一些早期的具有OOP性能的程序语言如C++,Pascal,Smalltalk等,虽然具有面向对象的特征,但不能轻松地画出可视化对象,与用户交互能力较差,程序员仍然要编写大量的代码。Delphi的推出,填补了这项空白。您不必自己建立对象,只要在提供的程序框架中加入完成功能的代码,其余的都交给Delphi去做。欲生成漂亮的界面和结构良好的程序丝毫不必绞尽脑汁,Delphi将帮助您轻松地完成。它允许在一个具有真正OOP扩展的可视化编程环境中,使用它的Object Pascal语言。这种革命性的组合,使得可视化编程与面向对象的开发框架紧密地结合起来。1.2 Delphi 快速入门 在这一节中,我们来开发一个小程序。随着开发的过程,逐步介绍Delphi的主要部件及其操作方法。建议读者按照本书介绍的过程,在您的电脑上直接操作。您将对Delphi的可视化编程有一个直观、快捷的了解,必将起到事半功倍的效果。 1.2.1 安装Delphi Delphi的安装与其它应用软件并无不同。7.0版必须在Windows2000以上的操作系统中使用。启动Windows 2000或Windows NT后,将Delphi的光盘放入光驱(CD-ROM)中,运行光盘上的INSTALLSETUP.EXE文件,它的安装程序会提示您正确地装入Delphi。如果您是在微软中文Windows环境中安装Delphi,请参照附录A来设置您的BDE环境,以便于处理中文数据。 1.2.2 进入Delphi 环境  为避免隐藏在Delphi后的Program Manager和曾经运行过的其它程序扰乱版面,分散您的注意力,不妨在启动Delphi前关掉其它应用程序;启动Delphi后,再最小化隐藏在后面的Delphi 7.0程序组。这样屏幕上就只留下Delphi窗口可见了。首次加载Delphi,屏幕上会出现四个窗口:● 标题为“Delphi-Project1”的Delphi主窗口● Object Inspector(对象检视器)窗口● 标题为“Form1”的窗体(Form)窗口● 标题为“Unit1.PAS”的代码编辑窗口。刚启动时这一窗口的大部分被“Form1”窗体所掩盖。将“Form1”窗体移开,或单击Form1窗体下方的状态行,可以使其全部可见。在“Form1”窗体的任意可见位置单击鼠标,可以恢复主窗体可见。运行delphi时的开发环境如图1.1所示。XXXVII 图.1.1delphi时的开发环境以下我们将对这四个窗口分别进行介绍1.3 Delphi可视化编程环境介绍 1.3.1主窗口(Main Form)Delphi的主窗口位于屏幕的上端,包括Menu(菜单)、Speed Bar(加速条)和Component Panel(部件选项板)。Menu是下拉式主菜单。Speed Bar位于主窗口的左下端,由两排共14个加速按钮组成。这些按钮是菜单功能的快捷方式,各种图标直观地表示了它能执行的动作。Component Panel由一行、若干页对象按钮所组成,利用它来选择需要的部件并将它放到窗体中去。如图1.2所示图1.2主窗口1.3.2 Object Inspector(对象检视器) Object InspeXXXVII ctor窗口含有两页:Properties页显示窗体中当前被选择部件的属性信息,并允许改变对象的属性;Events页列出了当前部件可以响应的事件。按动Object Inspector下端的“Events”页标签,使得Events页可见,这一定的事件后边的空白处,可以定义对象接受到相应事件时执行的动作。首次启动时,Object Inspector窗口显示的是当前窗体Form1的属性。Object Inspector根据对象属性的多少,决定是否有滚行显示。移动滚行条,可以查看当前对象的全部属性。  此外,Object Inspector上还有Object Selector(对象选择器),位于Object Inspector上方的下拉式菜单中。它显示了窗体上所有部件的名称和类型,也包含窗体本身。您可以用Object Selector很容易地在窗体的各个部件之间切换,也可以快速地回到窗体本身。当窗体中含有较多的对象时,您会发现这是切换对象尤其是回到窗体的最快捷途径。   想使Object Inspector一直可见,可将鼠标移到Object Inspector上,按动右键,以启动Object Inspector的弹出式菜单,将其设置为Stay On Top。这对初学者常是一个很重要的设置方式。  1.3.3窗体窗口 Forms窗口是开展大部分设计的工作区域。首次启动Delphi 2.0时显示的是窗体Form1。可以把部件放在窗体中,通过移动位置、改变尺寸等操作随心所欲地安排它们,以此来开发应用程序的用户界面。您可以把窗体想象成一个可以放置其它部件的容器。窗体上有栅格(Grids),供放置部件时对齐位置用,在程序运行时Grids是不可见的。     一个真正的应用程序可能有不止一个窗口,您可以选用不同的窗体进行设计。其它窗体可以是对话框(Dialog Box)、数据录入框等。1.3.4代码窗口   代码窗口一开始处于窗体窗口之下。因为在Delphi中,设计用户界面直接在窗体中进行,运行结果和设计样板完全一致。当部件被放到窗体上时,Delphi会自动生成大部分的用户界面代码。您所应做的只是在它为您生成的框架中加入完成所需功能的程序段而已。点动Form1的状态行使代码窗口可见。 这个窗口中是代码编辑器。可以在其中书写Delphi应用程序的源代码。当程序中含有不止一个窗口时,会有几个库单元的源程序出现在代码编辑器中。代码编辑器的标题条中显示了当前正在编辑的库单元文件名。要查看某一特定程序的源代码,只需用鼠标点动写有该库单元文件名的页标签,就可以对该库单元进行编辑了。1.4课题背景及意义小型宾馆客房管理系统是一种以计算机为基础、为支持管理活动和管理功能的信息系统。更具体的定义为:酒店管理系统是由人和计算机结合的管理信息进行收集、存储、维护、加工传递和使用的系统。在社会经济飞速发展的今天,酒店管理的自动化和规范化已经是大势所趋。它是一种集成化的人机系统,能为酒店的作业管理和决策职能提供信息支持。1.4.1小型宾馆客房管理系统的功能:XXXVII 客户入住和退宿处理;数据库的更新和维护;历史记录查询处理;用户与系统的交互作用(用户界面)。1.4.2软件开发的意图本软件系统的开发意图是为了实现小型宾馆客房管理的信息化和规范化,使得宾馆的运作能够实现降低人力成本,提高管理效率,有效地提高宾馆的经营效益。使得宾馆企业能够在经济日益发展、竞争日趋激烈的今天仍然立于不败之地。市场上待解决的问题,现今的宾馆从经营规模上大致分成两个部分,一部分为大型的企业形式,另外一大部分是独立的小型酒店小型旅馆形式。大型企业有资金开发或购买基于WEB技术的管理系统软件,市面上也有许多此类的软件发售。而小型的酒店旅馆很少有应用信息技术来实现商品的销售、管理,就是有也是功能上比较简陋。这与小型酒店小型旅馆的成本、资金等有关系,也与市面上很少有此类管理软件的因素有很大的关系。这导致了这些小酒店陷于商品销售、管理以及员工管理上的各种琐细问题中,限制了商店的发展。1.5相关技术概述1.5.1软件工程软件工程是指导计算机软件开发和维护的工程学科。它采用工程的概念、原理、技术和方法来开发和维护软件;它将管理技术与当前经过时间考验的而证明是正确的技术方法结合起来;它强调使用生存周期方法学和结构分析和结构技术;经过人们长期的努力和探索,围绕着实现软件优质高产这个目标,从技术到管理两个方面做了大量的努力,逐渐形成了"软件工程学"这一新的学科。1.5.2数据库设计1.5.2.1数据库的概念数据库是一种存储数据并对数据进行操作的工具。数据库的作用在于组织和表达信息,简而言之,数据库就是信息的集合。计算机的数据库可以分为两类:非关系数据库(flat-file)和关系数据库(relational)。关系数据库中包含了多个数据表的信息,数据库含有各个不同部分的术语,象记录、域等。关系数据库产品是怎么发展起来的呢?对关系模型的支持第一阶段(70年代)的RDBMS仅支持关系数据结构和基本的关系操作(选择、投影、连接)。例如:DBASE之流。第二阶段(80年代),对关系操作的支持已经比较完善,但是对数据完整性的支持仍然较差。此时,SQL语言已经成为关系数据库的标准,各家对SQL标准的支持还都是不存的(几乎全不是超水平发挥)。XXXVII 第三阶段(90年代)的产品,加强了数据完成性和安全性的性能。完整性的控制在核心层实现,克服了在工具曾的完整性可能存在“旁路”的弊病。ACCESS是关系型数据库系统,用户可利用许多语言编写访问ACCESS数据库的程序,对于大型应用系统是非常理想的。除了支持标准的ANSISQL语句,从而能获得相当好的性能。它可以在WindowsNT系统上或者在Windows95/98系统上运行。ACCESS的执行性能非常高,运行速度非常快,并非常容易使用,是一个非常棒的数据库。如下1.3图是数据库设计整个过程及步骤如图1.4。图1.3数据可设计过程XXXVII 图1.4数据库设计步骤XXXVII 1.4.3软件开发工具  软件开发工具包(SoftwareDevelopmentKit,即SDK)是一些被软件工程师用于为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件的开发工具的集合。  它或许只是简单的为某个程序设计语言提供应用程序接口的一些文件,但也可能包括能与某种嵌入式系统通讯的复杂的硬件。一般的工具包括用于调试和其他用途的实用工具。SDK还经常包括示例代码、支持性的技术注解或者其他的为基本参考资料澄清疑点的支持文档。  软件工程师通常从目标系统开发者那里获得软件开发包。为了鼓励开发者使用其系统或者语言,许多SDK是免费提供的。SDK经常可以直接从互联网下载。有时也被作为营销手段。例如,甲产品或许会免费提供构件SDK以鼓励人们使用它,从而会吸引更多人由于能免费为其编程而购买其构件。  SDK可能附带了使其不能在不兼容的许可证下开发软件的许可证。例如一个专有的SDK可能与自由软件开发抵触。而GPL能使SDK与专有软件开发近乎不兼容。LGPL下的SDK则没有这个问题。 软件开发工具:指的是很方便地把一种编程语言代码化并编译执行的工具。其中主要的语言开发工具有几大类:java开发工具、。net开发工具、delphi开发工具等。1.4.4数据库的建立和连接这个程序采用的数据库是MicrosoftAcccess2003,Delphi作为数据库的前台开发工具,必须与后台数据库进行连接,这样才能控制和进行操作数据库,数据库的连接方式有两种,ODBC和ADO。Access2003就是关系数据库开发工具,数据库能汇集各种信息以供查询、存储和检索。Access的优点在于它能使用数据表示图或自定义窗体收集信息。数据表示图提供了一种类似于Excel的电子表格,可以使数据库一目了然。另外,Access允许创建自定义报表用于打印或输出数据库中的信息。Access也提供了数据存储库,可以使用桌面数据库文件把数据库文件置于网络文件服务器,与其他网络用户共享数据库。Access是一种关系数据库工具,关系数据库是已开发的最通用的数据库之一。如上所述,Access作为关系数据库开发具备了许多优点,可以在一个数据包中同时拥有桌面数据库的便利和关系数据库的强大功能。微软公司的ADO(ActiveXDataObjects)是一个用于存取数据源的COM控件。它提供了编程语言和统一数据访问方式OLEXXXVII DB的一个中间层。允许开发人员编写访问数据的代码而不用关心数据库是如何实现的,而只用关心到数据库的连接。访问数据库的时候,关于SQL的知识不是必要的,但是特定数据库支持的SQL命令仍可以通过ADO中的命令对象来执行。ADO被设计来继承微软早期的数据访问对象层,包括RDO(RemoteDataObjects)和DAO(DataAccessObjects)。ADO在1996年冬被发布.ADO控件的使用需要利用支持COM的高级语言,例如ASP中的VBScript或者VisualBasic,甚至Delphi,微软的竞争对手Borland的一个产品,现在也支持使用ADO来访问数据库。ADO向我们提供了一个熟悉的,高层的对OLEDB的Automation封装接口。对那些熟悉RDO的程序员来说,你可以把OLEDB比作是ODBC驱动程序。如同RDO对象是ODBC驱动程序接口一样,ADO对象是OLEDB的接口;如同不同的数据库系统需要它们自己的ODBC驱动程序一样,不同的数据源要求它们自己的OLEDB提供者(OLEDBprovider)。目前,虽然OLEDB提供者比较少,但微软正积极推广该技术,并打算用OLEDB取代ODBC。ADO向Delphi程序员提供了很多好处。包括易于使用,熟悉的界面,高速度以及较低的内存占用(已实现ADO2.0的Msado15.dll需要占用342K内存,比RDO的Msrdo20.dll的368K略小,大约是DAO3.5的Dao350.dll所占内存的60%)。同传统的数据对象层次(DAO和RDO)不同,ADO可以独立创建。因此你可以只创建一个"Connection"对象,但是可以有多个,独立的"Recordset"对象来使用它。ADO针对客户/服务器以及WEB应用程序作了优化。ADO(ActiveXDataObjects,ActiveX数据对象)是Microsoft提出的应用程序接口(API)用以实现访问关系或非关系数据库中的数据。例如,如果您希望编写应用程序从DB2或Oracle数据库中向网页提供数据,可以将ADO程序包括在作为活动服务器页(ASP)的HTML文件中。当用户从网站请求网页时,返回的网页也包括了数据中的相应数据,这些是由于使用了ADO代码的结果。像Microsoft的其它系统接口一样,ADO是面向对象的。它是Microsoft全局数据访问(UDA)的一部分,Microsoft认为与其自己创建一个数据,不如利用UDA访问已有的数据库。为达到这一目的,Microsoft和其它数据库公司在它们的数据库和Microsoft的OLE数据库之间提供了一个“桥”程序,OLE数据库已经在使用ADO技术。ADO的一个特征(称为远程数据服务)支持网页中的数据相关的ActiveX控件和有效的客户端缓冲。作为ActiveX的一部分,ADO也是Microsoft的控件对象模式(COM)的一部分,它的面向控件的框架用以将程序组装在一起。ADO是对当前微软所支持的数据库进行操作的最有效和最简单直接的方法,它是一种功能强大的数据访问编程模式,从而使得大部分数据源可编程的属性得以直接扩展到你的ActiveServer页面上。可以使用ADO去编写紧凑简明的脚本以便连接到OpenDatabaseConnectivity(ODBC)兼容的数据库和OLEDB兼容的数据源,这样ASP程序员就可以访问任何与ODBC兼容的数据库,包括MSSQLSERVER、Access、Oracle等等。比如,如果网站开发人员需要让用户通过访问网页来获得存在于IBMDB2或者Oracle数据库中的数据,那么就可以在ASP页面中包含ADO程序,用来连接数据库。于是,当用户在网站上浏览网页时,返回的网页将会包含从数据库中获取的数据。而这些数据都是由ADO代码做到的。ADO是一种面向对象的编程接口,微软介绍说,与其同IBM和Oracle提倡的那样,创建一个统一数据库,不如提供一个能够访问不同数据库的统一接口,这样会更加实用一些。为实现这一目标,微软在数据库和微软的OLEDB中提供了一种“桥”程序,这种程序能够提供对数据库的连接。 开发人员在使用ADO时,其实就是在使用OLEDB,不过OLEXXXVII DB更加接近底层。ADO的一项属性??远程数据服务,支持“数据仓库”ActiveX控件以及高效的客户端缓存。作为ActiveX的一部分,ADO也是COM控件的一部分。ADO是由早期的微软数据接口远程数据对象RDO演化而来的。RDO同微软的ODBC一同连接关系数据库,不过不能连接非关系数据库。XXXVII 第二章软件需求分析与概念结构设计2.1需求分析开发出真正满足用户需求的软件产品[5]就必须了解用户的集体需求。需求分析是软件工程的一项重要任务。所谓需求,是指用户对目标软件系统在功能、行为、性能设计约束等方面的要求。在需求分析工作中,系统分析人员对用户的需求进行调查和分析,确定现有环境的特征,正确定义目标软件的特性。因此,需求分析工作是对应用问题及其环境进行理解与分析,为问题涉及的信息、功能及系统行为建立模型,将用户需求精确化。随着信息技术的发展和人们对酒店宾馆的要求越来越高,酒店客房手工操作已不能适应当前社会高速发展的需要。而酒店信息管理系统对酒店加强客房信息管理有着极其重要的作用,就一所客房数量较大的酒店来说,它的设计内容非常复杂而且繁多,比如拥有客房信息管理功能,是要对酒店现有的客房进行基本信息的录入、保存,当日后客房变动,或设施改变时,可以方便的查看和修改。入住信息管理功能,是要求系统登记客人的基本信息,了解客人的需要,以便对客人进行更好的服务。收银管理功能,则是针对酒店的财务管理,可以方便的统计出客人入住所需的费用,以及当天的酒店收支情况,这样可以快速并直观的反映出酒店的财务情况,可以大大方便管理者对酒店的管理。而且设计的模块也很多,例如信息统计模块,通过该模块可以快速的了解酒店的客人入住情况、房间的使用情况、财务的结算情况等等;查询模块则方便了操作者对酒店客人信息的查询以及客房的信息查询等等;结帐模块主要具有可以提醒管理者入住客人的住宿押金使用情况,在押金不足的情况下,需要做出提醒;当结帐时,能够快速准确的统计出客人费用等等功能。该系统主要是为较小型酒店定制开发的,应充分利用信息技术提高酒店客房的管理水平和服务水平。酒店客房管理系统主要具备一下几个基本功能:l前台操作:包括开房登记、退房结账和房状态查看。l预定管理:包括预定房间、预定入住和解除预定。l信息查询:包括在住客人列表、预定客人列表和历史客人列表。l报表统计:包括开房记录统计、退房结账和预定房间统计表。XXXVII 2.2数据字典2.2.1数据结构住店管理:客人姓名、证件号、房号、入住日期、应付金额。客人信息:客人姓名、性别、证件类型、证件号码、联系电话。房间信息:房号、房类型、价格、押金、房状态。预定房间:客人姓名、性别、房类型、房号、价格、证件类型、证件号码、联系电话、入住日期。2.2.2数据项数据项表如下:登陆信息表(2)客人信息表XXXVII (3)客房信息表(4)消费信息表XXXVII (5)预定信息表2.2.3数据流程图XXXVII 2.3系统功能模块的划分结合前面的需求分析的结果进行综合处理,确定了客房管理系统需要完成的功能,主要划分为以下模块:l前台操作:包括开房登记、退房结账和房状态查看。l预定管理:包括预定房间、预定入住和解除预定。l信息查询:包括在住客人列表、预定客人列表和历史客人列表。l报表统计:包括开房记录统计、退房结账和预定房间统计表。2.4系统功能模块图客房管理系统登录基础设置业务管理客房管理帮助退出系统客房类型设置客房信息设置预定管理收银退房消费记帐入住管理关于本系统关于我们付款方式设置用户登录权限退房查询客户信息查询房态管理XXXVII 结合实际客房管理、查询和统计信息处理量大查询和统计的方式各不相同的特点,在系统设计进行的优化时采取一些下面的原则:l统一的各种原始单据的格式,统一的账目和报表的格式。l删除不必要的管理余,实现管理规范化、科学化l程序代码标准化,软件统一化,确保软件的可维护性和实用性。l界面尽量简单化,尽量方便前台服务人员的操作。2.5概念结构设计2.5.1概念结构E-R图这一设计阶段是在需求分析的基础上,设计出能满足用户需求的各种实体,以及他们之间的关系,为后面的结构设计打下基础。根据上面的设计规划处的实体有客人实体、房间实体、住店管理实体、预定信息实体和消费信息实体。各实体的E-R图及其关系描述如下:客人性别证件号码姓名联系放系证件类型客人E-R图XXXVII 房间房类型房号价格押金状态房间实体E-R图住店管理姓名证件号码房间号码入住日期结账日期应付金额住店管理E-R图XXXVII 消费信息房号总金额酒烟其他消费信息E-R图预定信息房号预定时间预定信息E-R图房间信息客人信息消费信息预定信息客房管理实体之间的联系图XXXVII 第二章酒店客房管理系统的实现系统的详细设计包括:主程序界面的设计、各个窗体模块的设计等。3.1主程序界面设计在Delphi7.0中,可通过向导快速创建一个应用程序的结构,在使用向导创建应用程序结构之前,先在磁盘中创建保存项目的文件夹,设计或收集应用程序中使用的图标,图片等素材。本系统由菜单驱动,将菜单设计到主窗体中,用户通过菜单调用各子模块完成相应的功能。建立一个新的工程,添加主窗口,保存为MainForm.pas,并将其设为启动窗体。在此程序中,fmMain是主窗体,主要用来集成各模块的功能,因此,主窗体中的代码主要是菜单事件和工具按钮事件的代码,这些事件代码一般都显示一个窗体,所以要在frmMain上的菜单工具栏中提供各个窗体间的切换。如图3.1所示图3.1系统主程序图XXXVII 代码如下:procedureTmainfrm.Timer1Timer(Sender:TObject);beginstatusbar1.Panels[3].Text:=datetostr(date);statusbar1.Panels[5].Text:=timetostr(time);end;procedureTmainfrm.N14Click(Sender:TObject);beginmessagebeep(0);ifmessagedlg("ÕæµÄÒªÍ˳ö±¾ÏµÍ³Âð£¿",mtwarning,[mbyes,mbno],0)=mryesthenclose;end;procedureTmainfrm.FormCreate(Sender:TObject);beginn12.Enabled:=false;zhuxiao.Enabled:=false;N2.Visible:=false;N3.Visible:=false;N4.Visible:=false;kaifang.Visible:=false;yuding.Visible:=false;jiezhang.Visible:=false;kehu.Visible:=false;tuifang.Visible:=false;toolbar2.Visible:=false;toolbar3.Visible:=false;statusbar1.Panels[1].Text:="δµÇ¼";end;procedureTmainfrm.N12Click(Sender:TObject);beginXXXVII messagebeep(0);ifmessagedlg("ÕæµÄҪעÏú´Ë´ÎµÇ¼Âð£¿",mtwarning,[mbyes,mbno],0)=mryesthenbeginN2.Visible:=false;N3.Visible:=false;N4.Visible:=false;kaifang.Visible:=false;yuding.Visible:=false;jiezhang.Visible:=false;kehu.Visible:=false;tuifang.Visible:=false;toolbar2.Visible:=false;toolbar3.Visible:=false;statusbar1.Panels[1].Text:="δµÇ¼";mainfrm.denglu.Enabled:=true;mainfrm.N11.Enabled:=true;mainfrm.N12.Enabled:=false;mainfrm.zhuxiao.Enabled:=false;endend;procedureTmainfrm.N52Click(Sender:TObject);beginourfrm.Visible:=true;end;procedureTmainfrm.N51Click(Sender:TObject);beginthisfrm.Visible:=true;end;XXXVII procedureTmainfrm.N13Click(Sender:TObject);beginshowmessage("µÇ¼ÃûΪ±¾×é³ÉÔ±ÒÔ¼°Ö¸µ¼ÀÏʦµÄÐÕÃû£¬ÃÜÂëÓÉÐÕÃûÖкº×ÖµÄÊ××Öĸ×é³É£¡");end;procedureTmainfrm.N35Click(Sender:TObject);begintuifangfrm.Visible:=true;end;procedureTmainfrm.yudingClick(Sender:TObject);beginyudfrm.Visible:=true;end;procedureTmainfrm.N31Click(Sender:TObject);beginyudfrm.Visible:=true;end;procedureTmainfrm.kaifangClick(Sender:TObject);beginruzfrm.Visible:=true;end;procedureTmainfrm.N32Click(Sender:TObject);beginruzfrm.Visible:=true;end;procedureTmainfrm.N22Click(Sender:TObject);beginkeffrm.Visible:=true;end;XXXVII procedureTmainfrm.kehuClick(Sender:TObject);beginkehfrm.Visible:=true;end;procedureTmainfrm.N36Click(Sender:TObject);beginkehfrm.Visible:=true;end;procedureTmainfrm.N33Click(Sender:TObject);beginjzfrm.Visible:=true;end;procedureTmainfrm.N4Click(Sender:TObject);beginfangtfrm.Visible:=true;end;procedureTmainfrm.jiezhangClick(Sender:TObject);begintffrm.Visible:=true;end;procedureTmainfrm.N34Click(Sender:TObject);begintffrm.Visible:=true;end;end.XXXVII 3.2部分窗体模块设计3.2.1用户登录窗体1、在Access2003中通过数据库,打开数据库的登录信息表模板的用户、密码以及group的组成员信息。如下表1所示:表1组成员信息2、作为系统的启动窗体,用于验证用户是否合法。界面设计好后,进行代码编写,窗体上有二个文本框,用于输入用户编号和密码。输入完用户编号和密码后,系统通过数据库验证,将用户名及权限保存在全局变量中,显示系统主窗体,卸载本窗体。单击取消按钮时结束程序运行。如果不是用户,拒绝进入。用户登录窗体代码如下:procedureTloginfrm.BitBtn2Click(Sender:TObject);beginclose;end;XXXVII procedureTloginfrm.BitBtn1Click(Sender:TObject);beginusername.SetFocus;ifusername.Text=""thenbeginshowmessage("用户名不能为空,请输入用户名!!");username.SetFocus;exit;end;ifpsw.Text=""thenbeginshowmessage("登陆密码不能为空,请重新输入!!");psw.SetFocus;exit;end;//判断用户名跟密码是否为空,如果是空就提示用户输入!adotable1.Open;ifadotable1.Locate("用户名",username.Text,[locaseinsensitive])then//判断用户名是否正确。beginifadotable1.Locate("密码",psw.Text,[locaseinsensitive])then//判断密码是否正确。beginmainfrm.N12.Enabled:=true;mainfrm.zhuxiao.Enabled:=true;mainfrm.zhuxiao.Down:=false;mainfrm.N2.Visible:=true;mainfrm.N3.Visible:=true;mainfrm.N4.Visible:=true;mainfrm.ToolBar2.Visible:=true;mainfrm.ToolBar3.Visible:=true;mainfrm.kaifang.Visible:=true;mainfrm.yuding.Visible:=true;mainfrm.jiezhang.Visible:=true;mainfrm.kehu.Visible:=true;mainfrm.tuifang.Visible:=true;XXXVII loginfrm.Close;mainfrm.StatusBar1.Panels[1].Text:=username.Text;mainfrm.denglu.Enabled:=false;mainfrm.N11.Enabled:=false;endelseshowmessage("密码不正确,请重新输入!!");endelseshowmessage("用户名不存在,请重新输入!!");adotable1.Close;end;end.3.2.2入住登记模块客人在入住前,必须登好记录,填写好客户入住的各类信息。但也需要注意以下几点事项:本酒店拒不接待赌博、吸毒、聚众喝酒、不提供真实身份和不交押金以及违法、乱纪行为的房客;禁止携带任何宠物和易燃易爆及易传染病的物品住宿;2、入住时间超过7天的,您需要配合当地公安机关关于流动人口管理的条列,办理相关的手续,我们会提供相关的咨询和帮助。3、酒店现场缴纳住宿预付款和酒店设施押金,填写入住登记表;4、登记身份证/护照等有效证件原件;5、旅客核对公寓内所有设施,领取房卡及钥匙。酒店入住登记模板图XXXVII 代码如下:procedureTruzfrm.Timer1Timer(Sender:TObject);beginadoquery1.Close;adoquery1.SQL.Clear;adoquery1.SQL.Add("select*from客房信息表where状态=""空""");adoquery1.Open;dbgrid1.DataSource:=datasource1;statusbar1.Panels[1].Text:=datetostr(date)+timetostr(time);end;procedureTruzfrm.Button1Click(Sender:TObject);beginadoquery2.Close;adoquery2.SQL.Clear;adoquery2.SQL.Add("update消费信息表set酒水=""0"",烟=""0"",其它=""0"",总金额=""0"",退房时间=""""where客房编号="""+edit5.Text+"""");adoquery2.ExecSQL;adoquery3.Close;ifradiobutton1.Checked=truethenbeginifmessagedlg("您确定要入住此房间吗XXXVII ?",mtinformation,[mbyes,mbno],0)=mryesthenadoquery3.SQL.Clear;adoquery3.SQL.Add("update客房信息表,客户信息表set客户信息表.入住时间="""+statusbar1.Panels[1].Text+""",客户信息表.旅客姓名="""+edit1.Text+""",客户信息表.证件类型="""+radiobutton1.Caption+""",客户信息表.证件号="""+edit3.Text+""",客户信息表.电话号码="""+edit4.Text+""",客房信息表.状态=""入住""where客房信息表.客房编号=客户信息表.客房编号and客户信息表.客房编号="""+edit5.Text+"""");adoquery3.ExecSQL;showmessage("恭喜您入住成功!!");endelseifradiobutton2.Checked=truethenbeginifmessagedlg("您确定要入住此房间吗?",mtinformation,[mbyes,mbno],0)=mryesthenadoquery3.SQL.Clear;adoquery3.SQL.Add("update客房信息表,客户信息表set客户信息表.入住时间="""+statusbar1.Panels[1].Text+""",客户信息表.旅客姓名="""+edit1.Text+""",客户信息表.证件类型="""+radiobutton2.Caption+""",客户信息表.证件号="""+edit3.Text+""",客户信息表.电话号码="""+edit4.Text+""",客房信息表.状态=""入住""where客房信息表.客房编号=客户信息表.客房编号and客户信息表.客房编号="""+edit5.Text+"""");adoquery3.ExecSQL;showmessage("恭喜您入住成功!!");endelseshowmessage("请选择您的开房证件类型!!");end;end.3.3酒店房态管理的实现 1、客房房态也就是客房的一个情况,为了随时掌握酒店客房房态的变化,因此在酒店客房管理中,设计了一个客房的情况图XXXVII XXXVII 红色代表:已有人住下。当客人进入客房,把插牌插入插牌器,客人进入房间的信息就会由安装在客房内的信号探测器通过电话线向房务中心主控机发出信息,房务中心的电脑显示屏就显示出该客房有人状态。绿色代表:空房。当客房是空房无人时,房间信息就会由安装在客房内的信号探测器通过电话线向房务中心主控机发出信息,房务中心的电脑显示屏就显示出该客房是空房状态。黄色代表:已经预订的。由于客人提前预订的房间,房务中心主控机无法显示该房是预订状态,所以由工作人员动手操作。酒店房态管理代码如下:(101、102、103、104,……306号房代码相同,只需改房号即可。)varftfrm:Tftfrm;implementationusesgl;{$R*.dfm}procedureTftfrm.Panel101Click(Sender:TObject);beginApplication.CreateForm(Tglfrm,glfrm);glfrm.Show;glfrm.Label2.Caption:="101";glfrm.ADOQuery1.Close;glfrm.ADOQuery1.SQL.Clear;glfrm.ADOQuery1.SQL.Add("select客房信息表.状态,客户信息表.旅客姓名,客户信息表.电话号码,客户信息表.入住时间,客户信息表.证件号from客房信息表,客户信息表where客户信息表.客房编号=客房信息表.客房编号and客户信息表.客房编号=""101""");glfrm.ADOQuery1.Open;glfrm.DBEdit1.DataSource:=glfrm.DataSource1;glfrm.DBEdit1.DataField:="旅客姓名";glfrm.DBEdit2.DataSource:=glfrm.DataSource1;glfrm.DBEdit2.DataField:="电话号码";glfrm.DBEdit3.DataSource:=glfrm.DataSource1;glfrm.DBEdit3.DataField:="证件号";glfrm.DBEdit4.DataSource:=glfrm.DataSource1;glfrm.DBEdit4.DataField:="入住时间";glfrm.DBRadioGroup1.DataSource:=glfrm.DataSource1;glfrm.DBRadioGroup1.DataField:="状态";//glfrm.ADOQuery1.Close;XXXVII end;3.4预订客房实现 酒店预订流程如下:  第一步:选择好适合您的酒店后,您可以通过电话、网上下订单或传真,报客人姓名、房型及入住日期进行预订.  第二步:在收到您的预订信息后,我们会在一小时内予以确认.  第三步:在收到我方确认后,客人只需在酒店前台报客人姓名即可.  第四步:入住时候需要携带成人身份证件登记入住,并需要交付一定的押金注意事项:  1.酒店房间一般情况下保留到预订当天的下午6点整,节假日可能保留到下午5点整;  2.如客人因其它原因晚到,请在预订成功后直接致电保留房间,会展等特殊时期需要提供信用卡担保或者提前支付房费。  3.房间价格因季节变化可能不准确,请以电话咨询或最终确认为准。4.需要信用卡担保的酒店对取消预订有不同的要求,如果您是在酒店要求的有效工作日内取消,是可以的。否则将不可以取消预订,如您未能去入住,将从您的信用卡中扣除相应的房费。XXXVII 为了方便客人随时掌握酒店客房房态的变化,因此在酒店客房管理中,设计了一个客房预订的情况图。预订代码如下:programydfrm;usesForms,ydin"..yd.pas"{yudfrm};{$R*.res}beginApplication.Initialize;Application.CreateForm(Tyudfrm,yudfrm);Application.Run;end.XXXVII 第二章系统测试4.1软件测试方法的描述有两大类:白盒法和黑盒法。白盒法:你清楚程序的流程时,用不同的数据测试你程序的代码,验证程序的正确性,有:条件测试,路径测试,条件组合。。。。白盒法用在程序开发阶段的前期。黑盒法:主要用于程序开发阶段的后期,即程序的流程测试正确后,测试程序以下是黑盒测试的总流程。1测试计划  首先,根据用户需求报告中关于功能要求和性能指标的规格说明书,定义相应的测试需求报告,即制订黑盒测试的最高标准,以后所有的测试工作都将围绕着测试需求来进行,符合测试需求的应用程序即是合格的,反之即是不合格的;同时,还要适当选择测试内容,合理安排测试人员、测试时间及测试资源等。2测试设计  将测试计划阶段制订的测试需求分解、细化为若干个可执行的测试过程,并为每个测试过程选择适当的测试用例(测试用例选择的好坏将直接影响到测试结果的有效性)。3测试开发  建立可重复使用的自动测试过程。4测试执行  执行测试开发阶段建立的自动测试过程,并对所发现的缺陷进行跟踪管理。测试执行一般由单元测试、组合测试、集成测试、系统联调及回归测试等步骤组成,测试人员应本着科学负责的态度,一步一个脚印地进行测试。5测试评估  结合量化的测试覆盖域及缺陷跟踪报告,对于应用软件的质量和开发团队的工作进度及工作效率进行综合评价。XXXVII 4.2性能需求系统的运行对运行环境有如下需求:硬件环境:处 理器:IntelPentium233MX或更高     内  存:64MB以上   硬盘空间:10G以上显  卡:SVGA显示适配器软件环境:操作系统:Windows98/2000/XP开发软件:Delphi7.0、Access2003第二章结论踉踉跄跄地忙碌了两个月,我的毕业设计课题也终将告一段落。点击运行,也基本达到预期的效果,虚荣的成就感在没人的时候也总会冒上心头。但由于能力和时间的关系,总是觉得有很多不尽人意的地方,譬如功能不全、外观粗糙、底层代码的不合理……数不胜数。可是,我又会有点自恋式地安慰自己:做一件事情,不必过于在乎最终的结果,可贵的是过程中的收获。以此语言来安抚我尚没平复的心。XXXVII XXXVII 致谢毕业论文暂告收尾,这也意味着我在贵港职业学院三年的学习生活既将结束。我特别要感谢我的指导老师李晓红老师。从论文的选题、文献的采集、框架的设计、结构的布局到最终的论文定稿,从内容到格式,从标题到标点,她都费尽心血。没有李晓红老师的辛勤栽培、孜孜教诲,就没有我论文的顺利完成。她严肃的科学态度,严谨的治学精神,精益求精的工作作风,深深地感染和激励着我。从课题的选择到项目的最终完成,李晓红老师都始终给予我细心的指导和不懈的支持。三年多来,李老师不仅在学业上给我以精心指导,同时还在思想、生活上给我以无微不至的关怀,在此谨向李老师致以诚挚的谢意和崇高的敬意。感谢电子机械系的各位同学,与他们的交流使我受益颇多。最后要感谢我的家人以及我的朋友们对我的理解、支持、鼓励和帮助,正是因为有了他们,我所做的一切才更有意义;也正是因为有了他们,我才有了追求进步的勇气和信心。在论文即将完成之际,我的心情无法平静,从开始进入课题到论文的顺利完成,有多少可敬的师长、同学、朋友给了我无言的帮助,!最后我还要感谢培养我长大含辛茹苦的父母,谢谢你们!时间的仓促及自身专业水平的不足,整篇论文肯定存在尚未发现的缺点和错误。恳请阅读此篇论文的老师、同学,多予指正,不胜感激!XXXVII [参考资料][1]张春林.Delphi6程序设计导学.第二版.北京.清华大学出版社.2002:50-142[2][英]JohnCarter.数据库设计与编程实例详解.第二版.北京.电子工业出版社.2001:120-150[3]飞思科技.Delphi6数据库开发.第一版.北京.电子工业出版社.2002:4-178[4]丁宝康.数据库原理.第三版.北京.经济科学出版社.2000:12-90[5]何旭洪.Delphi6数据库系统开发实例导航.第一版.北京.人民邮电出版社.2002:4-25[6]飞思科技.Delphi6开发者手册.第一版.北京.电子工业出版社.2002:30-112[7]肖永明,张子江.Delphi开发基础与范例.第二版.北京.电子工业出版社2000:100-150[8]张海藩.软件工程导论.第二版.北京.清华大学出版社.2000:18-176[9]http://msdn.microsoft.com[10]汤海滨.SQLServer数据库开发技术.第二版.科学出版社.2000:150-210[11]萨师煊王姗,数据库系统概论.第二版.北京:高等教育出版社1991年:117-143,208-236。XXXVII Delphi7.0客房管理系统1'