《姚氏酒店管理系统的开发与实现软件工程毕业论文设计.doc》由会员分享,可在线阅读,更多相关《姚氏酒店管理系统的开发与实现软件工程毕业论文设计.doc(48页珍藏版)》请在三一办公上搜索。
1、姚氏酒店管理系统的开发与实现hotel management system development and Realization of Yao目 录1序言. 12系统的调查和可行性分析.33系统分析53.1系统业务流程图53.2数据流程图73.3数据字典94系统设计144.1系统总体设计(模块结构图)144.2编码设计144.3数据库设计,包括E-R图、数据库逻辑设计164.4输入输出设计194.5系统安全性设计,包括用户权限设计和数据库备份和还原224.6系统软硬件配置设计,包括计算机硬件、操作系统、数据库系统的设计255系统实施.255.1系统采用的开发环境及开发工具255.2主要功能模
2、块的编程实现266系统维护及评价.447心得体会.458致谢.46参考文献.47姚氏酒店管理系统的开发与设计摘要:随着中国第三产业的高速发展,酒店行业越来越多,它们在满足人们日益增长的物质需要的同时,也凭借优质的服务获得越来越大的社会效益。但是与此同时,这些企业对信息化的需求也越来越渴求。本系统就是一个用delphi7.0设计的酒店企业现场管理系统,它具有较强的可操作性及方便性,可以对酒店内发生的业务关系进行实时、有效的调配和管理,提供了一定的辅助决策者决策的能力。下面我们来探讨系统的开发过程,着重分析了酒店行业各个功能的开发。关键词:酒店 信息管理 SQLSERVER DELPHI7Hote
3、l management system development and Realization of YaoAbstract:With the rapid development of the tertiary industry in China, the hotel industry more and more, they satisfy the material that people grows increasingly needs, with high quality service to obtain greater social benefit. But at the same t
4、ime, these enterprises on the information needs of the growing hunger for.This is a system designed by Delphi7.0 hotel enterprise site management system, it has strong operability and convenience, can occur within the restaurant business relationship in real time, effective deployment and management
5、, provides certain auxiliary decision making ability.Keywords: Hotel information management SQLSERVER DELPHI7 千万不要删除行尾的分节符,此行不会被打印。在目录上点右键“更新域”,然后“更新整个目录”。打印前,不要忘记把上面“Abstract”这一行后加一空行第一章 绪论1.1开发背景和意义近30年来,随着中国社会经济进步与发展的历程,我国酒店业也走过了具有跨越性、历史性与巨变性的进程,无论是行业规模、企业水平,还是在社会地位影响和作用以及经济拉动等方面都发生了深刻的变化。按照中国酒店协
6、会发布的统计数据,我国酒店行业的年增长率高达20.53%,呈现出欣欣向荣的景象,成为推动我国经济发展的一支生力军。这些企业的经营管理,已经从单纯的一个人、一个帐本上升到了现代化的经营模式,管理人员迫切需要一种能满足自己全面需求的管理工具,来辅助自己作出正确的决策,提升点菜、制作等方面的速度与正确度,减少无效的人员消耗。随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入到人类社会的各个领域并发挥着越来越重要的作用。现在,各种软件技术已经在计算机开发领域得到充分广泛的应用。使用其来对酒店进行管理具有现实的可能。所以,本系统提出并实现了使用计算机来进行酒店现场管理的方
7、式,并提供了一套原型系统。互联网络技术手段的发展普及和广泛应用将促进网络预订行业发生革命性变化。在未来10年互联网络技术设备终端 电脑会得到十分广泛普及和应用,电脑不仅出现在办公室、家庭,而且行驶的汽车里、火车上、轮船上随处可见,而且在几乎的任何公共场所都可以看到,就像今天的彩电、电话一样普及和到处都有一样。也就是说未来的彩电、手机本身就是一台电脑,这在今天就已初露端倪。这是上网变得非常简单容易,尤其无线上网的普及,更使上网变得随心所欲。相信未来,上互联网络是人们获取信息的主要手段,也是最快捷方便的手段。同时,世界上几乎任何一个组织都是互联网络世界的一个结点。在此网络技术手段支持背景下,人们预
8、订酒店就会真正做到随时随地,而且不需要任何人I服务就能完成,将来的酒店预订就像今天手机拨打电话发送固定短信那样方便,操作几个数字键就完全可以搞定。当然未来支持网络酒店预订业务要素的还有重要一方面。那就是在线的资金流转,要想做到适时的无障碍预订,互联网络上划转资金将变得安全可靠、方便快捷,从预订操作到划转资金在短短的十几秒钟内就可以完成、这大大降低了交易成本,给客户以方便的同时,也将给客户以实惠。1.2国内研究现状及发展趋势 我国酒店业很早就利用计算机管理系统来加强管理、提高服务水平。我国酒店IT的发展阶段主要是以电脑系统的运用为标志的,电话通讯系统实际上也是 从程控交换技术出现才获得质的飞跃。
9、7与其他行业相比,IT在酒店业应用的起步晚了十多年。从70年代初期开始,到80年代中整个模式己经基本定型、功能成 熟,但真正成为酒店经营战略的一部分大规模应用要到90年代。酒店的电脑系统从NCR的主机/终端形式,到90年代代表性的H丁TS基于AS400和 DB2的小型机解决方案及Fedelio基于Clipper的微机数据库解决方案,直到最近的数据库/应用服务器/客户方式;从单一的前后台PMS,演变 成为覆盖酒店各部门各环节并对酒店外部辐射的复杂系统;从财务/业务为核心过渡到以顾客服务为核心,总体发展速度呈上升势头。虽然酒店管理系统的应用至今 己有20多年的历史,但起步发展较晚,只是一些浅层次应
10、用,大多数还停留于七拼八凑的MIS系统水平,与国际酒店业先进信息化应用的差距非常突出。信息化 程度不高导致企业决策失误、市场反应速度缓慢等,已经成为制约我国酒店业进一步发展的重要瓶颈。1 国内酒店IT现状:在80年代初发展起来的国内的酒店管理系统,充分吸收了国外管理系统的精华,再结合国内的实际情况,逐步发展成熟,到90年 代初期已形成了几个较成熟的软件系统,同时,产生了几家专职从事酒店管理系的公司。3到了90年代中后期,随着计算机在酒店中的普及应用,计算机技术的不断 发展,酒店管理系统的发展到了一个新的时期,新的系统平台、新的系统点及发展方向不断涌现,主要体现在系统基本转到客户机/服务器模式下
11、的Windows 版,功能更加细致完善,系统更加稳定可靠。6对软件开发商来说,小的软件慢淘汰。对用户来说,国内大的系统慢慢进入五星级酒店市场,比如携城、E龙等大的预 订系统,而以前基本被国外系统所垄断。酒店企业现代化的管理理念认为:计算机信息系统是酒店这种商业形态得以快速复制,快速连锁的有力支柱。1.2.1国内研究现状及发展趋势 1、信息化是人类社会进步发展到一定阶段所产生的一个新阶段。信息化是建立在计算机技术、数字化技术和生物工程技术等先进技术基础上产生的。信息化能使管理者以更快更便捷的方式获得并传递各个商品的信息;它将提供给管理者非常有效的管理手段。2、信息化的特点完全符合酒店管理的需求。
12、信息化具有以下几个明显的特征:即智能化、电子化、全球化、非群体化。智能化能使各类商品信息的汇总、查询更为方便;电子化能使数据有序存放;全球化能使用数据在更大范围内进行共享传导,使得掌握信息更加容易;非群体化能突破群体限制,使得数据更容易交换。1.2.2酒店管理信息化能更好地体现酒店的综合素质1、使用计算机系统能让酒店管理体现出正规化、专业化。2、能为顾客提供更加快速的服务。快速的商品信息体现,使得收银更加快捷,计算机的自动汇总与计算功能,让交易速度大大加快,交易纠纷大大减少。1.2.3酒店管理信息化系统的实现不再困难。1、数据库的发展使得大量数据的科学管理成为现实。数据库已经发展到了大型的数据
13、库阶段,比如oracle、sybase、db2等大型数据库,已经达到TB级存储容量,并具有良好的开发辅助工具。从文件型的管理发展到了关系型管理的数据模型,未来还将实现数据库的完全面向以象化。2、软件开发的理论成熟为系统实现提供了强大的基础。从上世纪60年代爆发“软件危机”以后,科学家们逐步发展出软件开发的科学过程,1968年秋季,NATO(北约)的科技委员会召集了近50名一流的编程人员、计算机科学家和工业界巨头,讨论和制定摆脱“软件危机”的对策。在那次会议上第一次提出了软件工程(Software Engineering)这个概念。而且随着发展,软件工程已经发展到了面向对象、软件复用、基于组件的
14、开发等新方法与领域。3、 当前,各类开发工具的发展也使得开发变得简单快速。现在,随着软件工程方法的进步,按照软件工程提出的方式提供开发工具的厂商也经有很多,比较著名的有微软公司、SYBASE公司、BORLAND公司等,它们分别在自己的领域提供了不同集设计、开发、调试、编译为一体的开发集成环境,为我们进行数据库系统开发提供了很多的条件。4、其它管理系统的发展使得酒店管理系统已经有相当多的参考。当前,各行各业已经存在无数的信息化管理系统,这些系统采用了各种方式实现,无论成功与失败,都可以为本系统的提供参考,从而推动本系统的实现与完成。13研究成果及不足研究成果本课题紧密围绕酒店管理者对酒店管理最核
15、心的需求,采用了先进的管理技术为基础,通过对各类信息的及时采集,持久化进入系统,能立即反应出各个房间的动态情况。通过本课题的开发过程,了解了软件开发的一般性过程,掌握了系统设计的全部方法及步骤,完成了DELPHI中业务与逻辑相分离的设计原则。 存在不足由于系统定位于初步实现酒店管理的一些基本技术,主要是针对核心功能进行设计,比如开房、预订、结账等进行了有效的管理,实现了数据的录入、查询以及分析汇总的功能,对于酒店的其它经营活动的管理没有涉及,今后有必要可以继续丰富原型,使之功能更加丰富。第二章 系统需求分析2.1相关技术介绍Delphi7是Borland公司在WINDOWS32位系统平台上推出
16、的一套软件开发环境,属于4GL编程工具,它集成了程序设计、开发、调试、编译、发布等过程中常用的功能。是在Windows环境下编程的良好工具。DELPHI7具有的组件拖拉技术使得对各个窗体的布局变得相当的容易,对于常用的WINDOWS API封装及扩展,使得我们能进行更加快速的开发。DELPHI7提供了近百个常用的组件,设计者不再须要了解这些组件的实现,只须将其拖放在表单上,即可使用,符合现代软件开发领域中“组件式开发”的理论。在DELPHI7中,还具有数十个常用功能的模板,比如窗体、DLL向导等,它可以用于WIN32的一般程序开发 ,也可以方便地进行网络程序、服务程序、控制台下程序、Activ
17、eX、WebServices等程序的开发。它具有为人称道的最快的编译速度,并且能够优化所设计的程序。它使用的语言是作为教学标准的Pasic语言,这种语言具有严谨的规范,是当前世界上应用广泛的语言之一。2.1.1SQLSERVER2000Microsoft SQL Server 2000(以下简称mssql2000),是微软公司在SQLSERVER7的基础上开发出来的一套数据库管理系统。它是一种大型的关系型的数据库, 扩展了 Microsoft SQL Server 7.0 版的性能、可靠性、质量和易用性。mssql2000 增加了几种新的功能,由此成为大规模联机事务处理 (OLTP)、数据仓库
18、和电子商务应用程序的优秀数据库平台。对于SQLSERVER2000来说,它的特点非常明显:1真正的客户机/服务器体系结构。 2图形化用户界面,使系统管理和数据库管理更加直观、简单。 3丰富的编程接口工具,为用户进行程序设计提供了更大的选择余地。 4SQL Server与Windows NT完全集成,利用了NT的许多功能,如发送和接受消息,管理登录安全性等。SQL Server也可以很好地与Microsoft BackOffice产品集成。 5具有很好的伸缩性,可跨越从运行Windows 95/98的膝上型电脑到运行Windows 2000的大型多处理器等多种平台使用。 6对Web技术的支持,使
19、用户能够很容易地将数据库中的数据发布到Web页面上。 7SQL Server提供数据仓库功能,这个功能只在Oracle和其他更昂贵的DBMS中才有。 SQL Server 2000与以前版本相比较,又具有以下新特性 :1支持XML(Extensive Markup Language,扩展标记语言) 2强大的基于Web的分析 3支持OLE DB和多种查询 4支持分布式的分区视图。2.1.2C/S架构面向对象 面向对象的基础概念:概念:面向对象的程序设计(Object-Oriented Programming,简记为OOP)立意于创建软件重用代码,具备更好地模拟现实世界环境的能力,这使它被公认为是
20、自上而下编程的优胜者。它通过给程序中加入扩展语句,把函数“封装”进编程所必需的“对象”中。面向对象的编程语言使得复杂的工作条理清晰、编写容易。说它是一场革命,不是对对象本身而言,而是对它们处理工作的能力而言。对象并不与传统程序设计和编程方法兼容,只是部分面向对象反而会使情形更糟。除非整个开发环境都是面向对象的,否则对象产生的好处还没有带来的麻烦多。随着项目越来越大,使用面向对象编程可能会有帮助,面向对象编程代码很容易维护,容易理解和重复使用,这些就是软件工程的基础。 对象(Object)是问题域或实现域中某些事物的一个抽象,它反映此事物在系统中需要保存的信息和发挥的作用;它是一组属性和有权对这
21、些属性进行操作的一组服务的封装体。 关于对象要从两方面理解:一方面指系统所要处理的现实世界中的对象;另一方面对象是计算机不直接处理的对象,而是处理相应的计算机表示,这种计算机表示也称为对象。简单的来说,一个人就是一个对象,一个尺子也可以说是个对象。当这些对象可以用数据直接表示时,我们就称他为属性,尺子的度量单位可以是厘米,公尺或英尺,这个度量单位就是尺子的属性。 面向对象编程的几个特性:封装:封装是面向对象的特征之一,是对象和类概念的主要特性。封装,也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。继承:继承是指这样一种能力:它可以使
22、用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展。通过继承创建的新类称为“子类”或“派生类”。被继承的类称为“基类”、“父类”或“超类”。继承的过程,就是从一般到特殊的过程。要实现继承,可以通过“继承”(Inheritance)和“组合”(Composition)来实现。在某些 OOP 语言中,一个子类可以继承多个基类。但是一般情况下,一个子类只能有一个基类,要实现多重继承,可以通过多级继承来实现。继承概念的实现方式有三类:实现继承、接口继承和可视继承。(1)、 实现继承是指使用基类的属性和方法而无需额外编码的能力;(2)、 接口继承是指仅使用属性和方法的名称、但是子类必
23、须提供实现的能力;(3)、 可视继承是指子窗体(类)使用基窗体(类)的外观和实现代码的能力。在考虑使用继承时,有一点需要注意,那就是两个类之间的关系应该是“属于”关系。例如,Employee 是一个人,Manager 也是一个人,因此这两个类都可以继承 Person 类。但是 Leg 类却不能继承 Person 类,因为腿并不是一个人。抽象类仅定义将由子类创建的一般属性和方法,创建抽象类时,请使用关键字 Interface 而不是 Class。OO开发范式大致为:划分对象抽象类将类组织成为层次化结构(继承和合成) 用类与实例进行设计和实现几个阶段。多态性:多态性(polymorphisn)是允
24、许你将父对象设置成为和一个或更多的他的子对象相等的技术,赋值之后,父对象就可以根据当前赋值给它的子对象的特性以不同的方式运作。简单的说,就是一句话:允许将子类类型的指针赋值给父类类型的指针。实现多态,有二种方式,覆盖,重载。覆盖,是指子类重新定义父类的虚函数的做法。重载,是指允许存在多个同名函数,而这些函数的参数表不同(或许参数个数不同,或许参数类型不同,或许两者都不同)。其实,重载的概念并不属于“面向对象编程”,重载的实现是:编译器根据函数不同的参数表,对同名函数的名称做修饰,然后这些同名函数就成了不同的函数(至少对于编译器来说是这样的)。如,有两个同名函数:function func(p:
25、integer):integer;和function func(p:string):integer;。那么编译器做过修饰后的函数名称可能是这样的:int_func、str_func。对于这两个函数的调用,在编译器间就已经确定了,是静态的(记住:是静态)。也就是说,它们的地址在编译期就绑定了(早绑定),因此,重载和多态无关!真正和多态相关的是“覆盖”。 当子类重新定义了父类的虚函数后,父类指针根据赋给它的不同的子类指针,动态(记住:是动态!)的调用属于子类的该函数,这样的函数调用在编译期间是无法 确定的(调用的子类的虚函数的地址无法给出)。因此,这样的函数地址是在运行期绑定的(晚邦定)。结论就是
26、:重载只是一种语言特性,与多态无关,与面向对 象也无关!引用一句Bruce Eckel的话:“不要犯傻,如果它不是晚邦定,它就不是多态。”那么,多态的作用是什么呢?我们知道,封装可以隐藏实现细节,使得代码模块化;继承可以扩展已存在的代码模块(类);它们的目的都是为了代码重用。而多态则是为了实现另一个目的接口重用!多态的作用,就是为了类在继承和派生的时候,保证使用“家谱”中任一类的实例的某一属性时的正确调用。2.1.3DELPHI中面向对象设计的特点:DELPHI是一个支持面向对象程序设计的语言,它提供了组件式开发的方式、用户可以自行设计自定义的类,在运行是进行类的实例化。.,一个DELPHI应
27、用是实现相关处理的一组对象或窗口。在DELPHI中,需要注意应用与应用对象的区别,应用对象是组成应用的一部分,是由应用所创建的某个特定应用,并由一个应用名及应用象标所确定,是说明实现相关作业的窗口和控制的记录项。作为窗口数据库应用系统, DELPHI对象的GUI表示便是窗口。因此,窗口是用户与应用之间的主界面,可以显示信息,向用户请求信息,响应用户的鼠标和键盘操作。窗口的定义,可由带有默认值的属性和事件组成,也可由控制组成。属性定义窗口的风格(外观)及行为,事件定义窗口中所发生的操作。DELPHI有5种窗口类型:主窗口、子窗口、弹出式窗口、对话框窗口、多文档(MDI)框架式窗口。作为对象级窗口
28、,数据窗口是窗口的一个特例,即数据窗口对象可作为一个数据窗口控制安放在窗口中。DELPHI事件与对象或控制相关联,每个对象或控制都响应特定的事件。当用户选择一个对象或控制,或在一个对象和控制中输入、修改信息时,一个事件便发生;与此同时,该对象和控制的程序便起流程控制作用。这就是DELPHI事件驱动方式的基本含义。事件也可由程序进程中的语句直接引发。DELPHI的常用事件如打开、关闭、显示、激活等窗口事件,一次揿击和二次揿击等控制事件,以及获得聚焦、失去聚焦、修改、选择改变等事件。按照面向对象原理,属性用于描述隐蔽在对象内部的信息,标识对象的特征行为,是描述对象或分类结构实例的数据单元,可实现数
29、据抽象和信息隐藏。在DELPHI中,属性定义了对象和控制的风格与行为。在定义每个属性时, DELPHI预先赋有一个默认值。当建立一个窗口或在用户对象中设置控制时,可以修改默认值。在窗口属性中,定义窗口风格的属性如标题条、菜单、控制菜单、最小/最大化框、边框、水平/垂直滚条、窗口颜色(前景色/背景色);定义窗口行为的属性如窗口大小的可变性,窗口形状的可见性,窗口的可用性。控制属性如位置坐标、宽度和高度、可见性、标识等。其它如字体、字号、显示格式和校验规则等,都是窗口和控制的属性。DELPHI应用程序文本称作单元,是用DELPHI原本语言Pasic来编写的。Pasic是一种很简洁且功能很强的4GL
30、。1.应用设计思想首先,需要搞清DELPHI应用构成的概念模式,搞清一组面向对象概念的基本内涵,认识DELPHI应用是面向对象应用与可视化窗口应用的组合,并认清面向对象的应用构成与面向过程的应用构成之间的实质性区别,从而明确DELPHI应用开发的基本任务。其次,需要理解DELPHI应用的生成过程,即把一个应用设计分成用户界面设计和应用程序设计两部分,并且两者之间只能通过事件驱动的方式才能产生联系。与传统的程序设计过程连续的面向过程方法相比,这是一种过程离散化的应用开发方法,它从根本上改变了软件工程方法及人们的设计思想。所以,在DELPHI应用开发过程中,需要真正掌握面向对象的设计技术,贯穿数据
31、抽象、属性继承、事件驱动、应用封装这一主线。首要的是通过数据抽象来解决如何定义数据类型和对象操作的问题;其次是考虑是否有必要继承某一对象的属性和服务,再侧重实现事件驱动方式的消息通讯;最后考虑将每个程序的数据和对象隐藏或封装在单一模块中以构成一个应用。第三,需要注意DELPHI是C/S系统的前端应用开发工具,因此要处理好客户端的界面交互、数据操作和事务处理与服务器端的数据处理、网络通讯和系统管理之间的关系,充分利用服务器端DBMS核心所提供的先进技术,开发出真正符合C/S计算模式的应用系统。2.动态连接与应用分割在DELPHI应用开发过程中,如果一个应用较大(如.EXE文件超过1.2M),就应
32、该使用动态库(DLL)来分割一个大的应用,这与Windows环境中使用动态连接库(DLL)来分割应用一样。DELPHI自身也提供了一个可以进行对象参数传递的类似DLL功能的BPL,但它只能用于DELPHI写的主程序本身,不能被其它程序使用。分割一个大的应用,一方面是在开发初期就将组成一个应用的所有对象按一定规则分类存放在对象库中,另一方面就是采用动态连接库的方法。经过上述处理,执行文件会小得多,并且在一个应用执行过程中,不致将所有对象一次调入内存,而是动态地调用所需对象,从而大大节省了相器资源,大大提高了应用运行效率。4.应用运行方式在DELPHI应用中,开发环境和运行环境是分开的。因此,对象
33、库中每个对象都以两种形式存放,一种是源对象,一种是编译对象。源对象在开发环境中供使用;编译对象被拷贝到动态库或执行文件中,形成运行环境。执行文件也由两部分组成,一部分是Windows启动代码,另一部分是编译对象集。对于含有动态库的执行文件,启动代码和编译对象集是分开存放的;不含动态库的执行文件则把两者放在一起。可见,由DELPHI生成的执行文件可以脱离DELPHI环境,而在Windows环境下单独运行。2.2业务逻辑与界面的分离在DELPHI面向对象的设计中,我们需要针对商业对象进行完全的理解。封装了商业规则的类是真正面向对象编程的基础。现今大部分DELPHI写的程序都不是真正面向对象的。只是
34、语言中有对象的模型并使用了原有的或新的类,这并不意味者程序是真正的面向对象。代码的重用随着第三方控件被拖到窗口上而结束,窗口和单元之间的相互依赖却在迅速扩散。如果将来要改变程序的基础(如切换不同数据库或从两层结构变成三层结构)会严重受阻或花费昂贵。如果是真正按面向对象的方式写的程序则会很方便而不是受限制,特别是对大型的程序,代码清晰并真正面向对象的程序会比传统方式写的同样程序需要更少的维护资源。面向对象的程序更高的可靠性来自于数据和操作被封装在明确定义的类中。编译器通过强大的类型检查促使代码中正确的类、方法和属性,对未来一个改动会影响整个程序的代码不应让人有误解代码意图的可能。正确使用类会是类
35、之间的关系是自明的,并且大部分的代码真正关注程序的关键部分(meat),而不是考虑像数据如何持久存储这样的细节问题。贯串代码的简单性和一致性将使程序的维护性显著提高。正如我们将看到的一样,广泛使用类继承增加了生产力和可靠性,并且增强了一致性。这些一致性体现在所展示的代码中,包括类的行为、数据如何存储和用户界面如何呈现数据。由于大部分功能在基类中提供,可以通过快速改变他们的行为来从根本上改变程序。(如用户交互界面从窗口驱动形式改为以html为基础)这些基类可以设计为与程序无关,这样第二个类似的程序将在生产力上立即得到推动。对一个中等的程序一组优秀的基类可以提供高达%50的显著提升,从时间,开支到
36、可靠性。首先要强调的是切换到真正的面向对象开发并非琐碎小事,第一次应保证有丰富经验的协助,或者程序较小且没有紧急的交付期限;还要说明的是一个面向对象(OO)的解决方案并不是规定在程序中哪些类该用哪些类不该用。设计任何面向对象程序的第一步是考虑哪些必须的类。这是绝对基本的一步,要有其他各种开发的技术保证,因为早期阶段的错误要改正将花费昂贵。在设计我们的类时我们一般努力实现低耦合高内聚类与类之间尽量地独立,但又可以通过某种强大地方式复合。实现这一目标地一个方式是把类按照在它们程序中所扮演地不同角色来划分成不同地类别。对这些角色的正确选择将会形成一组内聚的类。在对类的角色设计中有一个贯串始终的基本原
37、则:把类的责任分为表现、应用和持久化存储数据(典型地在数据库中)。虽然这和三层数据库程序地划分是一样的,要提示的是这种划分的概念可以在多种环境中实现:从单片机程序到分布式多层程序。组成应用逻辑的这一组类负责最为困难的工作,例如响应用户操作和处理数据的请求。这一层类中有一部分类表现了真实世界的实体,并被系统所模型化。这些类常被称为“商业类”或“问题域类”。它们构成任何面向对象程序至关重要的部分,因为其它的类将通过某种方式支持这些类,它们成为所有开发者关注的焦点。面向对象与传统技术如SSADM相比的优点贯串于整个分析设计和维持实体的过程:可以通过面向对象分析(OOA)、面向对象设计(OOD)和面向
38、对象编程(OOP)来表现每个商业对象。我们会在后面探寻识别合适的商业对象的部分技巧。业务逻辑与界面分离是现代程序设计的先进技术,它是建立在面向对象设计的基础上的发展。在程序中使用这一规则,将使我们的复杂的业务规则代码与界面分开,使程序为容易维护,程序随着业务流程作为变动,当业务流程改变时,无须更改数据库或界面,只要更改类的属性或者是方法。对系统的维护将变的十分简单 。2.2.1关系型数据库关系型数据库(Relation Database)是若干个依照关系模型设计的数据表的集合。也就是说,关系数据库是由若干张完成关系模型设计的二维表组成的。关系数据库由于以具有与数学方法相一致的关系模型设计的数据
39、表为基本文件,不但每个数据表之间具有独立性,而且若干个数据表之间又具有相关性,这一特点使其具有极大的优越性,并能得以迅速普及。关系数据库有以下特点:(1)、以面向系统的观点组织数据,使数据具有最小的冗余度,支持复杂的数据结构;(2)、具有高度的数据和程序的独立性,用户的应用程序与数据的逻辑结构,以及数据的物理存储方式无关;(3)、由于数据具有共享性,使数据库中的数据能为多个用户服务;(4)、关系数据库允许多个用户同时访问,同时提供了各种控制功能,保证数据的安全性、完整性和并发性控制。安全性控制可防止未经允许的用户存取数据;完整性控制可保证数据的正确性、有效性和相容性;并发性控制可防止多用户并发
40、访问数据时由于相干扰而产生的数据不一致。 2.3总体方案设计与选择论证2.3.1总体方案设计 本系统主要完成以下功能:系统登录控制只有使用正确的用户名与密码登录后,才能使用系统提供的各项功能,为新用户设置的密码为111,新用户登录系统后能使用更改密码功能更改密码。系统对每项功能都进行了有效的权限管理,需要设置相应的权限才能使用相应的功能,新用户没有任何功能,防止未经许可的使用,对系统业务进行损坏。部门信息管理酒店中各部门信息,可以新增、修改、删除部门信息。 员工资料设置员工的资料信息,可以新增、修改、删除这些资料信息。房间资料设置酒店房间的名称、几人房、价格信息。预订资料设置客户预计的一些基本
41、参数。销售资料设置客户入住的销售信息,包含价格等销售房间资料记录销售房间的资料。入住客户资料记录入住客户的资料预退订房信息查询查询预订房、退订房的相关信息。结帐信息查询查询指定日期内结帐房间的相关信息顾客结帐提供用户结帐功能预订转开房预订客人到店后转入开房更改密码登陆者可以更改自己的密码。保证密码的安全。退出退出程序。2.3.2选择论证 选择开发工具,必须充分考虑到对软件需求分析的结果。必须意识到用户的需求是否充分得到考虑,设计是否与分析不符,而且必须选用与系统功能相适应的开发工具。 DELPHI7是著名的数据库应用开发工具生产厂商BORLAND公司推出的产品它完全按照客户机/服务器体系结构研
42、制设计,在客户机/服务器结构中,它使用在客户机中,作为数据库应用程序的开发工具而存在。由于DELPHI7采用了面向对象和可视化技术,提供可视化的应用开发环境,使得我们利用DELPHI7,可以方便快捷地开发出利用后台服务器中的数据和数据库管理系统的数据库应用程序。DELPHI7提供了对目前流行的大多数关系数据库管理系统的支持,由于在DELPHI7的应用程序中对数据库访问的部分一般采用国际化标准数据库查询语言SQL,使得用DELPHI7开发的应用程序可以不做修改或者只做少量的修改就可以在不同的后台数据库管理系统上使用。也就是说用DELPHI7开发的应用程序是独立于服务器上的数据库管理系统的。和大多
43、数的WINDOWS应用程序一样,DELPHI7也是事件驱动工作方式。在这种工作方式中,程序的运行没有固定的流程,程序中的代码也是为各种可能发生的事件编写的,当程序开始运行之后,它就可以接受来自系统,用户或者其它应用程序触发的事件,然后执行相应的事件代码。事件驱动的工作方式与面向对象技术是紧密相关的,在DELPHI7应用程序中,接受发生的事件的往往就是程序界面中的各种可视化对象。DELPHI7是一种面向对象的开发工具,各种WINDOWS应用程序中常见的窗口、菜单、控件等在DELPHI7中都是一个个的对象。在DELPHI7中我们还可以创建自己的用户对象。特别要指出的是DELPHI7提供了对面向对象
44、方法中的各种技术的全面支持,我们可以利用面向对象方法中的对象的封装性、继承性、多态性等特点使得我们开发的应用程序具有极大的可重用性和可扩展性,而这一点正是软件工程中对应用程序所提出的重要目标。本系统是基于数据库系统的开发,基于以上特点,可以看出DELPHI正是在数据库应用系统开发领域的一个优秀的工具。2.3.3需求分析(1) 数据流程图P5.2房间管理D1 房间信息帐号、密码前台P5.1登录合法身份P5.3顾客入住管理管理D4 顾客信息D5 顾客预订信息P5.4顾客预订管理D6 顾客结账信息P5.4顾客结账管理图表2-1P5.2部门信息管理D1 部门信息帐号、密码管理员P5.1登录合法身份P5
45、.3员工信息管理D4 员工信息D5 房间信息P5.4房间信息管理P5.5房间预退订查询P5.6结账情况查询图标2-2酒店管理系统顾客后台管理员 酒店 系统信息资料、评论信息 信息管理及维护 房间信息 订单信息房间资源图表2-3(2) 业务流程图注册管理员用户登陆失败会员表登陆失败登陆登陆管理员表会员表 登陆成功 登陆成功结账情况查询房间预退订查询员工信息管理房间信息管理部门信息管理顾客结账顾客预订顾客入住房间信息备份还原房间信息表员工表部门表本月结账情况查询表房间预退订定查询表顾客预订信息顾客结账信息顾客信息空房信息生成订单酒店管理系统数据库图表2-4第三章 系统分析3.1系统设计3.1.1设计思想为保证信息系统的健壮性,对用户进行验证是必须的,只有合法的用户才能登录并按其权限使用管理系统。用户长期使用同一密码登录系统将可能导致密码泄露,这样不利于系统安全,因此,系统需要提供更改用户密码功能。在酒店中,人员都归属于某个具体的部门下,因此,需要对部门进行设置。 酒店管理系统要管理的直接对象就是各个具体的入住事件,因此,需要对房间进行逐一设置。入住事件中,直接作用的就是各个房间等,所以,需要对房间进行设置。每个房间的价格变化,具有钟点价格、普通价格、会员价、执行价不同价格的显示。在消费者入住 活动中,发生一切变动行为,都应有相应的记录:当消费者预定房间时,应记录在预定表中。