




已阅读5页,还剩38页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
系统功能客房管理毕业论文目录摘要1ABSTRACT2前 言3Delphi简介1第一章概述21.1Delphi基本概念介绍21.1.1Delphi的基本形式21.1.2面向对象编程的概念21.2Delphi快速入门31.3Delphi可视化编程环境介绍41.3.1主窗口(MainForm)41.3.2ObjectInspector(对象检视器)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酒店房态管理的实现293.4预订客房实现32第四章系统测试344.1 软件测试方法的描述344.2性能需求35第五章结论35致谢37参考资料38Delphi简介 Delphi是Windows平台下著名的快速应用程序开发工具(Rapid Application Development,简称RAD)。它的前身,即是DOS时代盛行一时的“BorlandTurbo Pascal”,最早的版本由美国Borland(宝兰)公司于1995年开发。主创者为Anders Hejlsberg。经过数年的发展,此产品也转移至Embarcadero公司旗下。Delphi是一个集成开发环境(IDE),使用的核心是由传统Pascal语言发展而来的Object Pascal,以图形用户界面为开发环境,透过IDE、VCL工具与编译器,配合连结数据库的功能,构成一个以面向对象程序设计为中心的应用程序开发工具。Delphi是Borland公司研制的新一代可视化开发工具,可在Windows3.x、Windows95、WindowsNT、WindowsXP、Windows Vista等环境下使用。当前,DELPHI 也可以在LINUX平台上开发应用,其在LINUX上的对应产品Kylix。DELPHI 拥有一个可视化的集成开发环境(IDE),采用面向对象的编程语言ObjectPascal和基于部件的开发结构框架。Delphi它提供了500多个可供使用的构件,利用这些部件,开发人员可以快速地构造出应用系统。开发人员也可以根据自己的需要修改部件或用Delphi本身编写自己的部件。“真正的程序员用c,聪明的程序员用Delphi”,这句话是对Delphi最经典、最实在的描述。Delphi被称 Delphi界面为第四代编程语言,它具有简单、高效、功能强大的特点。和VC相比,Delphi更简单、更易于掌握,而在功能上却丝毫不逊色;和VB相比,Delphi则功能更强大、更实用。可以说Delphi同时兼备了VC功能强大和VB简单易学的特点。它一直是程序员至爱的编程工具。Delphi具有以下的特性:基于窗体和面向对象的方法,高速的编译器,强大的数据库支持,与Windows编程紧密结合,强大而成熟的组件技术。但最重要的还是Object Pascal语言,它才是一切的根本。 Object Pascal语言是在Pascal语言的基础上发展起来的,简单易学。Delphi提供了各种开发工具,包括集成环境、图像编辑(Image Editor),以及各种开发数据库的应用程序,如DesktopDataBase Expert等。除此之外,还允许用户挂接其它的应用程序开发工具,如Borland公司的资源编辑器(Resourse Workshop)。在Delphi众多的优势当中,它在数据库方面的特长显得尤为突出:适应于多种数据库结构,从客户机服务机模式到多层数据结构模式;高效率的数据库管理系统和新一代更先进的数据库引擎;最新的数据分析手段和提供大量的企业组件。Delphi发展至今,从Delphi、Delphi到现在的Delphi2007,不断添加和改进各种特性,功能越来越强大。Delphi开始添加了对IDE(集成开发环境)的很多改进新特性,扩展了数据库支持(ADO和InterBase数据库),带有Internet支持的MIDAS改进版,TeamSouse版本控制工具,转换功能,框架概念以及很多的新组件与新特性。Delphi 6.0是Borland公司最新推出的一套无论是界面还是功能都近乎完美的应用程序开发工具。与以前的Delphi版本相比,Delphi 6.0使用更简便,效率也更高。第一章 概述Delphi是全新的可视化编程环境,为我们提供了一种方便、快捷的Windows应用程序开发工具。它使用了MicrosoftWindows图形用户界面的许多先进特性和设计思想,采用了弹性可重复利用的完整的面向对象程序语言(Object-OrientedLanguage)、当今世界上最快的编辑器、最为领先的数据库技术。对于广大的程序开发人员来讲,使用Delphi开发应用软件,无疑会大大地提高编程效率,而且随着应用的深入,您将会发现编程不再是枯燥无味的工作Delphi的每一个设计细节,都将带给您一份欣喜。1.1Delphi基本概念介绍 1.1.1Delphi的基本形式 Delphi实际上是Pascal语言的一种版本,但它与传统的Pascal语言有天壤之别。一个Delphi程序首先是应用程序框架,而这一框架正是应用程序的“骨架”。在骨架上即使没有附着任何东西,仍可以严格地按照设计运行。您的工作只是在“骨架”中加入您的程序。缺省的应用程序是一个空白的窗体(Form),您可以运行它,结果得到一个空白的窗口。这个窗口具有Windows窗口的全部性质:可以被放大缩小、移动、最大最小化等,但您却没有编写一行程序。因此,可以说应用程序框架通过提供所有应用程序共有的东西,为用户应用程序的开发打下了良好的基础。Delphi已经为您做好了一切基础工作程序框架就是一个已经完成的可运行应用程序,只是不处理任何事情。您所需要做的,只是在程序中加入完成您所需功能的代码而已。 在空白窗口的背后,应用程序的框架正在等待用户的输入。由于您并未告诉它接收到用户输入后作何反应,窗口除了响应Windows的基本操作(移动、缩放等)外,它只是接受用户的输入,然后再忽略。Delphi把Windows编程的回调、句柄处理等繁复过程都放在一个不可见的Romulam覆盖物下面,这样您可以不为它们所困扰,轻松从容地对可视部件进行编程。 1.1.2面向对象编程的概念 面向对象的程序设计(Object-OrientedProgramming,简记为OOP)是Delphi诞生的基础。OOP立意于创建软件重用代码,具备更好地模拟现实世界环境的能力,这使它被公认为是自上而下编程的优胜者。它通过给程序中加入扩展语句,把函数“封装”进Windows编程所必需的“对象”中。面向对象的编程语言使得复杂的工作条理清晰、编写容易。说它是一场革命,不是对对象本身而言,而是对它们处理工作的能力而言。对象并不与传统程序设计和编程方法兼容,只是部分面向对象反而会使情形更糟。除非整个开发环境都是面向对象的,否则对象产生的好处还没有带来的麻烦多。而Delphi是完全面向对象的,这就使得Delphi成为一种触手可及的促进软件重用的开发工具,从而具有强大的吸引力。 一些早期的具有OOP性能的程序语言如C+,Pascal,Smalltalk等,虽然具有面向对象的特征,但不能轻松地画出可视化对象,与用户交互能力较差,程序员仍然要编写大量的代码。Delphi的推出,填补了这项空白。您不必自己建立对象,只要在提供的程序框架中加入完成功能的代码,其余的都交给Delphi去做。欲生成漂亮的界面和结构良好的程序丝毫不必绞尽脑汁,Delphi将帮助您轻松地完成。它允许在一个具有真正OOP扩展的可视化编程环境中,使用它的ObjectPascal语言。这种革命性的组合,使得可视化编程与面向对象的开发框架紧密地结合起来。 1.2Delphi快速入门 在这一节中,我们来开发一个小程序。随着开发的过程,逐步介绍Delphi的主要部件及其操作方法。建议读者按照本书介绍的过程,在您的电脑上直接操作。您将对Delphi的可视化编程有一个直观、快捷的了解,必将起到事半功倍的效果。 1.2.1安装Delphi Delphi的安装与其它应用软件并无不同。7.0版必须在Windows2000以上的操作系统中使用。启动Windows2000或WindowsNT后,将Delphi的光盘放入光驱(CD-ROM)中,运行光盘上的INSTALLSETUP.EXE文件,它的安装程序会提示您正确地装入Delphi。如果您是在微软中文Windows环境中安装Delphi,请参照附录A来设置您的BDE环境,以便于处理中文数据。 1.2.2进入Delphi环境 为避免隐藏在Delphi后的ProgramManager和曾经运行过的其它程序扰乱版面,分散您的注意力,不妨在启动Delphi前关掉其它应用程序;启动Delphi后,再最小化隐藏在后面的Delphi7.0程序组。这样屏幕上就只留下Delphi窗口可见了。 首次加载Delphi,屏幕上会出现四个窗口: 标题为“Delphi-Project1”的Delphi主窗口 ObjectInspector(对象检视器)窗口 标题为“Form1”的窗体(Form)窗口 标题为“Unit1.PAS”的代码编辑窗口。刚启动时这一窗口的大部分被“Form1”窗体所掩盖。将“ Form1”窗体移开,或单击Form1窗体下方的状态行,可以使其全部可见。在“Form1”窗体的任意可见位置单击鼠标,可以恢复主窗体可见。运行delphi时的开发环境如 图1.1所示。图.1.1delphi时的开发环境以下我们将对这四个窗口分别进行介绍1.3Delphi可视化编程环境介绍1.3.1主窗口(MainForm) Delphi的主窗口位于屏幕的上端,包括Menu(菜单)、SpeedBar(加速条)和ComponentPanel(部件选项板)。Menu是下拉式主菜单。SpeedBar位于主窗口的左下端,由两排共14个加速按钮组成。这些按钮是菜单功能的快捷方式,各种图标直观地表示了它能执行的动作。ComponentPanel由一行、若干页对象按钮所组成,利用它来选择需要的部件并将它放到窗体中去。如图1.2所示图1.2主窗口1.3.2ObjectInspector(对象检视器) ObjectInspector窗口含有两页:Properties页显示窗体中当前被选择部件的属性信息,并允许改变对象的属性;Events页列出了当前部件可以响应的事件。按动ObjectInspector下端的“Events”页标签,使得Events页可见,这一定的事件后边的空白处,可以定义对象接受到相应事件时执行的动作。首次启动时,ObjectInspector窗口显示的是当前窗体Form1的属性。ObjectInspector根据对象属性的多少,决定是否有滚行显示。移动滚行条,可以查看当前对象的全部属性。 此外,ObjectInspector上还有ObjectSelector(对象选择器),位于ObjectInspector上方的下拉式菜单中。它显示了窗体上所有部件的名称和类型,也包含窗体本身。您可以用ObjectSelector很容易地在窗体的各个部件之间切换,也可以快速地回到窗体本身。当窗体中含有较多的对象时,您会发现这是切换对象尤其是回到窗体的最快捷途径。 想使ObjectInspector一直可见,可将鼠标移到ObjectInspector上,按动右键,以启动ObjectInspector的弹出式菜单,将其设置为StayOnTop。这对初学者常是一个很重要的设置方式。 1.3.3窗体窗口 Forms窗口是开展大部分设计的工作区域。首次启动Delphi2.0时显示的是窗体Form1。可以把部件放在窗体中,通过移动位置、改变尺寸等操作随心所欲地安排它们,以此来开发应用程序的用户界面。您可以把窗体想象成一个可以放置其它部件的容器。窗体上有栅格(Grids),供放置部件时对齐位置用,在程序运行时Grids是不可见的。 一个真正的应用程序可能有不止一个窗口,您可以选用不同的窗体进行设计。其它窗体可以是对话框(DialogBox)、数据录入框等。1.3.4代码窗口 代码窗口一开始处于窗体窗口之下。因为在Delphi中,设计用户界面直接在窗体中进行,运行结果和设计样板完全一致。当部件被放到窗体上时,Delphi会自动生成大部分的用户界面代码。您所应做的只是在它为您生成的框架中加入完成所需功能的程序段而已。点动Form1的状态行使代码窗口可见。 这个窗口中是代码编辑器。可以在其中书写Delphi应用程序的源代码。当程序中含有不止一个窗口时,会有几个库单元的源程序出现在代码编辑器中。代码编辑器的标题条中显示了当前正在编辑的库单元文件名。要查看某一特定程序的源代码,只需用鼠标点动写有该库单元文件名的页标签,就可以对该库单元进行编辑了。1.4 课题背景及意义 小型宾馆客房管理系统是一种以计算机为基础、为支持管理活动和管理功能的信息系统。更具体的定义为:酒店管理系统是由人和计算机结合的管理信息进行收集、存储、维护、加工传递和使用的系统。在社会经济飞速发展的今天,酒店管理的自动化和规范化已经是大势所趋。它是一种集成化的人机系统,能为酒店的作业管理和决策职能提供信息支持。1.4.1小型宾馆客房管理系统的功能:客户入住和退宿处理;数据库的更新和维护;历史记录查询处理;用户与系统的交互作用(用户界面)。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标准的支持还都是不存的(几乎全不是超水平发挥)。第三阶段(90年代)的产品,加强了数据完成性和安全性的性能。完整性的控制在核心层实现,克服了在工具曾的完整性可能存在“旁路”的弊病。ACCESS是关系型数据库系统,用户可利用许多语言编写访问ACCESS 数据库的程序,对于大型应用系统是非常理想的。除了支持标准的ANSI SQL语句,从而能获得相当好的性能。它可以在Windows NT系统上或者在Windows 95/98系统上运行。ACCESS 的执行性能非常高,运行速度非常快,并非常容易使用,是一个非常棒的数据库。 如下1.3图是数据库设计整个过程及步骤如图1.4。图1.3数据可设计过程图 1.4数据库设计步骤1.4.3 软件开发工具软件开发工具包(Software Development Kit, 即 SDK)是一些被软件工程师用于为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件的开发工具的集合。 它或许只是简单的为某个程序设计语言提供应用程序接口的一些文件,但也可能包括能与某种嵌入式系统通讯的复杂的硬件。一般的工具包括用于调试和其他用途的实用工具。SDK 还经常包括示例代码、支持性的技术注解或者其他的为基本参考资料澄清疑点的支持文档。 软件工程师通常从目标系统开发者那里获得软件开发包。为了鼓励开发者使用其系统或者语言,许多 SDK 是免费提供的。SDK 经常可以直接从互联网下载。有时也被作为营销手段。例如,甲产品或许会免费提供 构件SDK 以鼓励人们使用它,从而会吸引更多人由于能免费为其编程而购买其构件。 SDK 可能附带了使其不能在不兼容的许可证下开发软件的许可证。例如一个专有的 SDK 可能与自由软件开发抵触。而GPL能使 SDK 与专有软件开发近乎不兼容。LGPL下的SDK则没有这个问题。 软件开发工具: 指的是很方便地把一种编程语言代码化并编译执行的工具。其中主要的语言开发工具有几大类:java开发工具、。net开发工具、delphi开发工具等。1.4.4数据库的建立和连接这个程序采用的数据库是Microsoft Acccess2003,Delphi作为数据库的前台开发工具,必须与后台数据库进行连接,这样才能控制和进行操作数据库,数据库的连接方式有两种,ODBC和ADO。Access2003 就是关系数据库开发工具,数据库能汇集各种信息以供查询、存储和检索。Access 的优点在于它能使用数据表示图或自定义窗体收集信息。数据表示图提供了一种类似于 Excel 的电子表格,可以使数据库一目了然。另外,Access 允许创建自定义报表用于打印或输出数据库中的信息。Access也提供了数据存储库,可以使用桌面数据库文件把数据库文件置于网络文件服务器,与其他网络用户共享数据库。Access 是一种关系数据库工具,关系数据库是已开发的最通用的数据库之一。如上所述,Access 作为关系数据库开发具备了许多优点,可以在一个数据包中同时拥有桌面数据库的便利和关系数据库的强大功能。微软公司的ADO (ActiveX Data Objects) 是一个用于存取数据源的COM控件。它提供了编程语言和统一数据访问方式OLE DB的一个中间层。允许开发人员编写访问数据的代码而不用关心数据库是如何实现的,而只用关心到数据库的连接。访问数据库的时候,关于SQL的知识不是必要的,但是特定数据库支持的SQL命令仍可以通过ADO中的命令对象来执行。ADO被设计来继承微软早期的数据访问对象层,包括RDO (Remote Data Objects) 和DAO(Data Access Objects)。ADO在1996年冬被发布.ADO控件的使用需要利用支持COM的高级语言,例如ASP中的VBScript或者Visual Basic,甚至Delphi,微软的竞争对手Borland的一个产品,现在也支持使用ADO来访问数据库。 ADO向我们提供了一个熟悉的,高层的对OLE DB的Automation封装接口。对那些熟悉RDO的程序员来说,你可以把OLE DB比作是ODBC驱动程序。如同RDO对象是ODBC驱动程序接口一样,ADO对象是OLE DB的接口;如同不同的数据库系统需要它们自己的ODBC驱动程序一样,不同的数据源要求它们自己的OLE DB提供者(OLE DB provider)。目前,虽然OLE DB提供者比较少,但微软正积极推广该技术,并打算用OLE DB取代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 (ActiveX Data Objects,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 是对当前微软所支持的数据库进行操作的最有效和最简单直接的方法,它是一种功能强大的数据访问编程模式,从而使得大部分数据源可编程的属性得以直接扩展到你的Active Server 页面上。可以使用ADO 去编写紧凑简明的脚本以便连接到 Open Database Connectivity (ODBC) 兼容的数据库和 OLE DB 兼容的数据源,这样 ASP 程序员就可以访问任何与 ODBC 兼容的数据库,包括 MS SQL SERVER、Access、 Oracle 等等。比如,如果网站开发人员需要让用户通过访问网页来获得存在于IBM DB2或者Oracle数据库中的数据,那么就可以在ASP页面中包含ADO程序,用来连接数据库。于是,当用户在网站上浏览网页时,返回的网页将会包含从数据库中获取的数据。而这些数据都是由ADO代码做到的。ADO是一种面向对象的编程接口,微软介绍说,与其同IBM和Oracle提倡的那样,创建一个统一数据库,不如提供一个能够访问不同数据库的统一接口,这样会更加实用一些。为实现这一目标,微软在数据库和微软的OLE DB中提供了一种“桥”程序,这种程序能够提供对数据库的连接。开发人员在使用ADO时,其实就是在使用OLE DB,不过OLE DB更加接近底层。ADO的一项属性?远程数据服务,支持“数据仓库”ActiveX 控件以及高效的客户端缓存。作为ActiveX的一部分,ADO也是COM控件的一部分。ADO是由早期的微软数据接口远程数据对象RDO演化而来的。RDO同微软的ODBC一同连接关系数据库,不过不能连接非关系数据库。第二章 软件需求分析与概念结构设计2.1需求分析开发出真正满足用户需求的软件产品5就必须了解用户的集体需求。需求分析是软件工程的一项重要任务。所谓需求,是指用户对目标软件系统在功能、行为、性能设计约束等方面的要求。在需求分析工作中,系统分析人员对用户的需求进行调查和分析,确定现有环境的特征,正确定义目标软件的特性。因此,需求分析工作是对应用问题及其环境进行理解与分析,为问题涉及的信息、功能及系统行为建立模型,将用户需求精确化。随着信息技术的发展和人们对酒店宾馆的要求越来越高,酒店客房手工操作已不能适应当前社会高速发展的需要。而酒店信息管理系统对酒店加强客房信息管理有着极其重要的作用,就一所客房数量较大的酒店来说,它的设计内容非常复杂而且繁多,比如拥有客房信息管理功能,是要对酒店现有的客房进行基本信息的录入、保存,当日后客房变动,或设施改变时,可以方便的查看和修改。入住信息管理功能,是要求系统登记客人的基本信息,了解客人的需要,以便对客人进行更好的服务。收银管理功能,则是针对酒店的财务管理,可以方便的统计出客人入住所需的费用,以及当天的酒店收支情况,这样可以快速并直观的反映出酒店的财务情况,可以大大方便管理者对酒店的管理。而且设计的模块也很多,例如信息统计模块,通过该模块可以快速的了解酒店的客人入住情况、房间的使用情况、财务的结算情况等等;查询模块则方便了操作者对酒店客人信息的查询以及客房的信息查询等等;结帐模块主要具有可以提醒管理者入住客人的住宿押金使用情况,在押金不足的情况下,需要做出提醒;当结帐时,能够快速准确的统计出客人费用等等功能。该系统主要是为较小型酒店定制开发的,应充分利用信息技术提高酒店客房的管理水平和服务水平。酒店客房管理系统主要具备一下几个基本功能:l 前台操作:包括开房登记、退房结账和房状态查看。l 预定管理:包括预定房间、预定入住和解除预定。l 信息查询:包括在住客人列表、预定客人列表和历史客人列表。l 报表统计:包括开房记录统计、退房结账和预定房间统计表。2.2数据字典 2.2.1数据结构住店管理:客人姓名、证件号、房号、入住日期、应付金额。客人信息:客人姓名、性别、证件类型、证件号码、联系电话。房间信息:房号、房类型、价格、押金、房状态。预定房间:客人姓名、性别、房类型、房号、价格、证件类型、证件号码、联系电话、入住日期。2.2.2数据项数据项表如下:登陆信息表(2)客人信息表(3)客房信息表(4) 消费信息表(5)预定信息表2.2.3数据流程图2.3系统功能模块的划分 结合前面的需求分析的结果进行综合处理,确定了客房管理系统需要完成的功能,主要划分为以下模块:l 前台操作:包括开房登记、退房结账和房状态查看。l 预定管理:包括预定房间、预定入住和解除预定。l 信息查询:包括在住客人列表、预定客人列表和历史客人列表。l 报表统计:包括开房记录统计、退房结账和预定房间统计表。2.4 系统功能模块图 客房管理系统登 录基础设置业务管理客房管理帮 助退出系统客房类型设置客房信息设置预定管理收银退房消费记帐入住管理关于本系统关于我们付款方式设置用户登录权限退房查询客户信息查询房态管理结合实际客房管理、查询和统计信息处理量大查询和统计的方式各不相同的特点,在系统设计进行的优化时采取一些下面的原则:l 统一的各种原始单据的格式,统一的账目和报表的格式。l 删除不必要的管理余,实现管理规范化、科学化l 程序代码标准化,软件统一化,确保软件的可维护性和实用性。l 界面尽量简单化,尽量方便前台服务人员的操作。2.5概念结构设计2.5.1 概念结构E-R图这一设计阶段是在需求分析的基础上,设计出能满足用户需求的各种实体,以及他们之间的关系,为后面的结构设计打下基础。根据上面的设计规划处的实体有客人实体、房间实体、住店管理实体、预定信息实体和消费信息实体。各实体的E-R图及其关系描述如下:客人性别证件号码姓名联系放系证件类型客人E-R图房间房类型房号价格押金状态房间实体E-R图住店管理姓名证件号码房间号码入住日期结账日期应付金额住店管理E-R图消费信息房号总金额酒烟其他消费信息E-R图预定信息房号预定时间预定信息E-R图房间信息客人信息消费信息预定信息客房管理实体之间的联系图第三章 酒店客房管理系统的实现系统的详细设计包括:主程序界面的设计、各个窗体模块的设计等。3.1主程序界面设计在Delphi 7.0中,可通过向导快速创建一个应用程序的结构,在使用向导创建应用程序结构之前,先在磁盘中创建保存项目的文件夹,设计或收集应用程序中使用的图标,图片等素材。本系统由菜单驱动,将菜单设计到主窗体中,用户通过菜单调用各子模块完成相应的功能。建立一个新的工程,添加主窗口,保存为MainForm.pas,并将其设为启动窗体。在此程序中,fmMain是主窗体,主要用来集成各模块的功能,因此,主窗体中的代码主要是菜单事件和工具按钮事件的代码,这些事件代码一般都显示一个窗体,所以要在frmMain上的菜单工具栏中提供各个窗体间的切换。如图3.1所示图3.1系统主程序图代码如下: procedure Tmainfrm.Timer1Timer(Sender: TObject);beginstatusbar1.Panels3.Text:=datetostr(date);statusbar1.Panels5.Text:=timetostr(time);end;procedure Tmainfrm.N14Click(Sender: TObject);beginmessagebeep(0);if messagedlg(,mtwarning,mbyes,mbno,0)=mryes thenclose;end;procedure Tmainfrm.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.Panels1.Text:=;end;procedure Tmainfrm.N12Click(Sender: TObject);beginmessagebeep(0);if messagedlg(,mtwarning,mbyes,mbno,0)=mryes thenbeginN2.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.Panels1.Text:=;mainfrm.denglu.Enabled:=true;mainfrm.N11.Enabled:=true;mainfrm.N12.Enabled:=false;mainfrm.zhuxiao.Enabled:=false;endend;procedure Tmainfrm.N52Click(Sender: TObject);beginourfrm.Visible:=true;end;procedure Tmainfrm.N51Click(Sender: TObject);beginthisfrm.Visible:=true;end;procedure Tmainfrm.N13Click(Sender: TObject);beginshowmessage();end;procedure Tmainfrm.N35Click(Sender: TObject);begintuifangfrm.Visible:=true;end;procedure Tmainfrm.yudingClick(Sender: TObject);beginyudfrm.Visible:=true;end;procedure Tmainfrm.N31Click(Sender: TObject);beginyudfrm.Visible:=true;end;procedure Tmainfrm.kaifangClick(Sender: TObject);beginruzfrm.Visible:=true;end;procedure Tmainfrm.N32Click(Sender: TObject);beginruzfrm.Visible:=true;end;procedure Tmainfrm.N22Click(Sender: TObject);beginkeffrm.Visible:=true;end;procedure Tmainfrm.kehuClick(Sender: TObject);beginkehfrm.Visible:=true;end;procedure Tmainfrm.N36Click(Sender: TObject);beginkehfrm.Visible:=true;end;procedure Tmainfrm.N33Click(Sender: TObject);beginjzfrm.Visible:=true;end;procedure Tmainfrm.N4Click(Sender: TObject);beginfangtfrm.Visible:=true;end;procedure Tmainfrm.jiezhangClick(Sender: TObject);begintffrm.Visible:=true;end;procedure Tmainfrm.N34Click(Sender: TObject);begintffrm.Visible:=true;end;end.3.2部分窗体模块设计3.2.1用户登录窗体1、在Access 2003中通过数据库,打开数据库的登录信息表模板的用户、密码以及group的组成员信息。如下表1所示:表1组成员信息2 、作为系统的启动窗体,用于验证用户是否合法。界面设计好后,进行代码编写,窗体上有二个文本框,用于输入用户编号和密码。输入完用户编号和密码后,系统通过数据库验证,将用户名及权限保存在全局变量中,显示系统主窗体,卸载本窗体。单击取消按钮时结束程序运行。如果不是用户,拒绝进入。用户登录窗体代码如下:procedure Tloginfrm.BitBtn2Click(Sender: TObject);beginclose;end;procedure Tloginfrm.BitBtn1Click(Sender: TObject);beginusername.SetFocus;if username.Text=thenbeginshowmessage(用户名不能为空,请输入用户名!);username.SetFocus;exit;end;if psw.Text=thenbeginshowmessage(登陆密码不能为空,请重新输入!);psw.SetFocus;exit;end; /判断用户名跟密码是否为空,如果是空就提示用户输入!adotable1.Open;if adotable1.Locate(用户名,username.Text,locaseinsensitive)then /判断用户名是否正确。beginif adotable1.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;loginfrm.Close;mainfrm.StatusBar1.Panels1.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、 旅客核对公寓内所有设施,领取房卡及钥匙。酒店入住登记模板图代码如下:procedure Truzfrm.Timer1Timer(Sender: TObject);beginadoquery1.Close;adoquery1.SQL.Clear;adoquery1.SQL.Add(select * from 客房信息表 where 状态=空);adoquery1.Open;dbgrid1.DataSource:=datasource1;statusbar1.Panels1.Text:=datetostr(date)+timetostr(time);end;procedure Truzfrm.Button1Click(Sender: TObject);beginadoquery2.Close;adoquery2.SQL.Clear;adoquery2.SQL.Add(update 消费信息表 set 酒水=0,烟=0,其它=0
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025湖南娄底市教育局直属事业单位公开选调教师(教研员)30人模拟试卷附答案详解(典型题)
- 2025春季陕汽控股校园招聘考前自测高频考点模拟试题及答案详解一套
- 2025广西崇左凭祥市发展和改革局公开招聘1人考前自测高频考点模拟试题完整答案详解
- 2025江苏南京市浦口区中医院招聘42人模拟试卷含答案详解
- 2025年赣南医科大学高层次人才招聘180人考前自测高频考点模拟试题及答案详解一套
- 2025北京市海淀区上地社区卫生服务中心招聘考前自测高频考点模拟试题及答案详解参考
- 2025湖南长沙市开福区招聘教师90人考前自测高频考点模拟试题含答案详解
- 2025江苏南京白下人力资源开发服务有限公司招聘劳务派遣人员2人(二十五)模拟试卷及答案详解(必刷)
- 2025年宁波洪塘街道公开招聘合同制工作人员2人考前自测高频考点模拟试题完整参考答案详解
- 2025贵州贵阳贵安招聘中小学(幼儿园)教师553人模拟试卷有答案详解
- 隧道施工应急预案方案
- 植物鉴赏课件
- 安徽省华师联盟2026届高三上学期9月开学质量检测物理试卷(含答案)
- 2025年中国心血管病报告
- 肿瘤热疗中国专家共识
- 2025年甘肃省药品检查员资格考试(药械化流通)历年参考题库含答案详解(5套)
- 2025年泸州职业技术学院招聘考试笔试试卷【附答案】
- 自来水企业内部管理规范
- 2025新热处理工程师考试试卷及答案
- 硬笔书法全册教案共20课时
- 工会兼职补助管理办法
评论
0/150
提交评论