酒店信息管理系统的设计与实现_第1页
酒店信息管理系统的设计与实现_第2页
酒店信息管理系统的设计与实现_第3页
酒店信息管理系统的设计与实现_第4页
酒店信息管理系统的设计与实现_第5页
已阅读5页,还剩64页未读 继续免费阅读

下载本文档

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

文档简介

题酒店信息管理系统的设计与实现摘要随着近年来酒店业的发展,电子化的酒店管理信息系统在提高酒店日常的工作效率等方面也逐渐发挥起重要的作用。本文基于酒店经营中存在的相关基本业务需求,设计并实现了一个具有入住登记、退房结算、预订管理、房间管理、顾客管理、系统用户管理等功能的适用于中小型酒店内部管理的管理信息系统,目的是为了方便酒店管理者对酒店的相关数据进行更加系统、规范的管理,提高酒店管理效率。本文依照软件开发的流程进行论述,即划分为需求分析、系统设计、系统实现和系统测试四个部分。需求分析阶段,主要结合酒店的日常经营中的业务需求分析系统应具备的功能。系统设计阶段,主要阐述本系统的总体结构、数据库设计和主要系统界面的设计。系统实现阶段,主要阐述系统实现所使用的开发工具、系统主要功能模块的实现逻辑和流程。系统测试阶段,主要阐述在本系统编程后的调试过程中所采用的测试用例以及产生的问题和解决方法。结合上述各阶段的成果,最终实现一个可以满足中小型酒店基本管理需求的管理信息系统。关键词:酒店管理信息系统;C/S架构;管理系统

目录264091、引言 1176922、需求分析 2235992.1用户需求分析 2320982.2系统功能需求分析 3150982.3功能需求框架 错误!未定义书签。249102.4可行性分析 5186663.系统设计 6231673.1系统总体结构设计 610183.1.1系统整体架构模型 716723.1.2系统的逻辑架构 8299033.2数据库设计 9121223.2.1数据库概念模型设计 9312403.2.2数据库具体设计 10193903.3用户的权限设计 1480153.4系统界面设计 14288483.5类的设计 错误!未定义书签。260494系统实现 2088714.1开发环境的搭建 20206304.2系统登录功能的实现 20117914.3房间管理模块的实现 22246454.3.1添加房间功能的实现 22103544.3.2删除房间信息功能的实现 24141884.3.3查询房间信息功能的实现 2620964.3.4修改房间信息功能的实现 错误!未定义书签。164464.4入住登记功能的实现 27283414.5退房结算功能的实现 3077694.6预订管理模块的实现 32249664.6.1添加预订功能的实现 32225594.6.2取消预订功能的实现 34206464.6.3办理入住功能 36153734.7系统用户管理模块的实现 38320234.7.1添加系统用户功能的实现 38270504.7.2修改用户信息功能的实现 39103814.7.3查询用户信息功能的实现 41253424.8顾客信息管理模块的实现 42326514.8.1修改顾客信息功能的实现 43293654.8.2查询顾客信息功能的实现 45310974.8.3删除顾客信息功能的实现 47215874.9系统运行界面展示 4816664.9.1用户登录界面展示 48141254.9.2系统主界面展示 49248824.9.3入住登记界面展示 50148494.9.4退房结算界面展示 51189874.9.5预订管理功能模块界面展示 52113554.9.6房间管理功能模块界面展示 54262244.9.7顾客管理模块界面展示 5631244.9.8用户管理模块界面展示 57320194.9.9系统设置界面 58105985.系统测试 60305386.总结 6226096参考文献 6324122致谢 641引言随着经济的快速发展和人们生活水平的提高,旅游业和酒店业也迎来了蓬勃发展的黄金时期。在这个大背景下,酒店业的竞争也愈发激烈。为了提高酒店的服务质量和管理效率,降低运营成本,酒店信息管理系统应运而生。本文将详细介绍酒店信息管理系统的设计与实现。酒店信息管理系统是一种以提高酒店管理效率、减少运营成本、提高服务质量为目的的信息化解决方案。它通过计算机技术和网络技术,对酒店的前台接待、客房管理、餐饮管理、财务管理、客户关系管理等方面进行全面的整合和优化,从而实现酒店管理的自动化、智能化。在实现酒店信息管理系统时,我们可以采用当前流行的软件开发技术和工具,如Java、.NET、PHP等编程语言,以及MySQL、Oracle等数据库技术。同时,我们还需要考虑系统的部署和运维,确保系统的高效稳定运行。总之,酒店信息管理系统的设计与实现对于提高酒店的管理效率和服务质量具有重要意义。在未来的发展中,随着技术的不断进步和酒店业务需求的不断变化,酒店信息管理系统也将不断优化和升级,为酒店业的发展提供更有力的支持。

2需求分析在进行系统开发之前,必须要进行需求分析,这对之后的开发方向有非常重要的引导作用。针对用户的使用需求、系统的功能需要等方面进行分析,能更好地确定下一步该如何进行系统的设计。2.1用户需求分析酒店管理信息系统的使用者主要是酒店内部的工作人员,因此,从系统用户的角度来进行需求分析,应包含以下几个方面:(1)系统界面直观简洁相比起页面排布杂乱无序,功能按钮混乱无逻辑的系统来说,一个使用页面设计更美观悦目,不同功能区域在界面占比规划上更符合大众使用习惯的管理系统更能方便用户去使用。同时系统界面的友好性也体现在将系统主要的功能按钮集中,有逻辑地进行排列规划,方便用户能直接快速地找到要使用的功能,节省用户的时间,提高系统的执行效率。(2)操作简单本系统的使用者知识水平层次不一,可能会存在一些用户对计算机技术了解较少,而且用户不了解这一管理系统的底层开发逻辑,只能通过功能说明书等资料来学习使用系统的功能。所以在开发管理信息系统时应当站到用户的角度去考虑,将用户使用系统各个功能时的操作步骤尽量精简,保证操作的准确性和有效性,不要有一些冗余的步骤。这样就使系统的操作简单易懂易上手,满足易操作的原则,方便用户使用。(3)功能符合日常工作需要用户使用本系统的目的是为了提高日常工作效率,使得酒店的管理工作系统化、规范化,因此系统功能应当要符合酒店日常业务流程的需要,使得用户能够流畅地进行相关业务操作。2.2系统功能用例分析(1)用户登录功能该系统的使用者可以按照自己的帐号、密码登陆,并进行相应的操作。将系统用户划分为一般管理和超管理两类。一般的管理员可以完成客户入住登记、退房结算、预订管理、房间管理、客户管理等工作,而超级管理员除了能执行一般的管理员以外,还能对系统用户进行管理,并将系统数据库导出为备份。(2)入住登记功能当顾客在前台登记时,管理员会记录顾客的相关信息。首先,将客人的资料填入,包括姓名、身份证号码、手机号码等,若客人已经入住,请键入身份证号码,然后系统会向您展示所登记的相关资料;接着,对顾客所需的客房种类以及预定的结账时间进行筛选,在所显示的空闲客房信息中进行挑选,并填写好了房间信息,最终,由系统按照客房的价格以及顾客所待的时间来计算出房费,系统使用者可以按照酒店的特定规则来输入押金数额,最终算出顾客所需付款的总额。最终,该系统将按照客房的价格以及客人停留的时间来进行收费,系统使用者可以按照酒店的特定规则来输入保证金,最终算出客人所需付款的总额。填妥以上资料后,交表即为客人办理入住手续。(3)退房结算功能当顾客进行退房时,用户可以根据其入住的房间号办理退房手续,在数据库中读取并显示顾客入住时登记的信息,并且计算顾客退房的时间是否超时,如果超出酒店退房的规定时间,系统可以计算超时的房费以及押金抵扣、返还或者追加收款的金额,方便系统用户快速为顾客办理退房手续。(4)预订管理功能通过电话或其他方式接收到顾客的预订订单后,系统用户可以添加预订订单的信息,输入顾客的姓名和手机号码,然后根据顾客具体的入住需求选择房间类型,预订入住的时间和离开时间分配房间,然后添加进预订的记录当中。如果预订信息已经失效,则系统用户可以选择取消预订将失效的预订记录进行删除。当已经进行预订的客人入住时可以根据之前登记的预订信息为其办理入住。(5)房间管理功能系统用户可以添加、修改、删除房间的信息,也可以根据房间的编号、所在楼层、类型、房间状态这些条件来查询房间的信息,还可以根据房间类型设置房间的价格。用例图如图3.1所示。图2.1系统用例图2.3可行性分析为了避免项目的延期以及后续的开发工作的困难,在开发过程中必须对其进行可行性分析。为了达到经济上的可行性,本文提出了利用SQLServer进行系统数据的存储,并利用VisualStudio进行了系统网页的设计和后台程序的编写。利用VisualStudio进行系统网页的设计与背景程序的编写,CSkin接口库的功能则是对网页进行美化。上述三个工具均为免费提供,降低了开发费用,具有较高的经济性。从技术可行性来看,采用C#语言与VisualStudio相结合的方式来开发MIS,是一种十分成熟的技术,并且可以从有关的技术书籍以及网上的资料中了解到,所以该系统具有一定的可行性。

3系统设计3.1系统总体结构设计系统设计应当先总后分,先是总体上对系统的结构进行分析设计,做好顶层设计,然后再分步骤对系统各个部分进行细致地设计和规划。本系统的主要功能可分为用户登录、入住登记、退房结算、预订管理、房间管理、客户管理、员工管理、系统设置这几个模块。系统整体框架图如图3.1。图3.1系统功能框架图系统数据流图如图3.2所示。图3.2系统数据流图3.1.1系统整体架构模型本系统使用C#语言进行开发,采用C/S结构来进行设计,包含客户端和服务器端。客户端主要负责实现系统与用户的交互,即根据用户的操作向服务器端发出相应的数据请求,将数据存入服务器端的数据库中或者读取服务器端数据库中的数据并呈现给用户。而服务器端主要包含系统使用的数据库,本系统数据库采用的是SQLServer数据库,对数据库的操作使用的是ADO.NET。系统整体架构图如图3.2所示。图3.2系统整体架构图3.1.2系统的逻辑架构该系统的逻辑结构提出了一种基于用户接口、服务逻辑和数据存取三个层次的方法。人机接口层的功能是给使用者提供一个直观的接口,并对使用者所做的动作进行反馈,以方便使用者与使用者进行互动及资讯交流。其中,业务逻辑层是通过对系统各功能模块的封装而形成的,当用户在各个页面上进行操作时,可以对其进行调用。在得到相关数据之后,通过在数据存取层中调用DBHelp来实现对数据库的访问,完成相关的数据处理,并将结果反馈回来。图3.3显示了该系统的逻辑结构。图3.3系统逻辑架构图3.2数据库设计3.2.1数据库概念模型设计在系统设计过程中,数据库设计是必不可少的一个部分。在数据库设计中,首先需要进行数据库概念模型的设计,采用E-R图的方式来对这一部分的设计进行描述,分析实体和实体间的关系。其中管理员和员工、会员、房间、入住信息、预订信息之间都是多对多的关系。而顾客和会员之间是1对1的关系,顾客和房间之间是1对多的关系。数据库实体联系图如图3.3所示。图3.3实体联系图3.2.2数据库具体设计系统的数据库采用的是SQLServer数据库。其中一共有8张表,包括系统用户表、房间信息表、房间类型表、入住信息表、预订单表、顾客信息表、商品信息表和商品销售表。数据表具体内容如下:表3.1系统用户表字段类型描述UserIDchar(10)用户账户(主键)UserPwdchar(12)用户密码UserNamenchar(10)用户姓名IDCardchar(18)身份证号Phonechar(11)手机号码UserRolenchar(8)用户权限系统用户中,权限又分为管理员和超级管理员。超级管理员具有最大的权限。用户账户作为用户信息表中的主键,是系统用户的唯一标识。同时它也是入住信息表、预订单表和商品销售表所关联的外键。表3.2房间表字段类型描述RoomIDchar(6)房间号(主键)RoomFloornchar(5)所在楼层RoomSizeFloat房间面积RoomStatenchar(10)房间状态RoomTypeIDInt房间类型ID(外键)房间表中,房间状态值在空净、空脏、占用和停用这几种状态之中。系统运行时房间的状态就在这五种状态中转换。而房间号在房间信息表中作为主键,同时在入住信息表、预订单表和商品销售表中则作为外键存在,体现了房间与顾客和销售的商品之间的联系。房间类型表中,房间类型分为单人间、大床间、标准间和三人间四种,不同的房间类型房间价格不同。不同的房间类型也对应着不同的床位数。房间类型ID作为房间类型表的主键,它同时也是房间信息表的外键。这样,房间信息表和房间类型表两张表就被关联了起来。表3.3房间类型表字段类型描述RoomTypeIDInt房间类型ID(主键)RoomTypeNamenvarchar(15)房间类型名BedCountInt床位数Pricedecimal(8,2)房间价格表3.4入住信息表字段类型描述CheckInIDchar(32)入住单号(主键)CheckInTimeDatetime入住时间LeaveTimeDatetime预计离开时间Rentdecimal(8,2)房费Depositdecimal(8,2)押金CheckOutTimeDatetime退房时间OvertimeRentdecimal(8,2)超时房费CommodityConsumptiondecimal(8,2)商品消费ReturnMoneydecimal(8,2)返还押金AddtionPaymentdecimal(8,2)追加收款CustomerID1Int主客编号(外键)CustomerID2Int随客1编号(外键)CustomerID3Int随客2编号(外键)RoomIDchar(6)房间编号(外键)CheckInUserIDchar(10)入住办理人账户(外键)CheckOutUserIDchar(10)退房办理人账户(外键)BillStatusInt订单状态从酒店的经营收益上来说,一个房间不能允许无限制的住许多人,所以在入住信息表中有一个房间编号作为外键和三个顾客的编号作为外键,这样将入住的顾客信息与入住的房间信息关联起来。而入住和退房都是在对入住信息表里的数据进行操作,办理入住和退房时都离不开系统用户,故设置两个用户账户作为外键,一个为入住办理人的账户,一个为退房办理人的账户。表3.5预订信息表字段类型描述ReservationIDchar(32)预订单号(主键)CustomerNamenchar(10)入住顾客姓名CustomerPhonechar(11)入住顾客手机号RCheckInTimeDate预订入住日期RCheckOutTimeDate预订离开日期RoomIDchar(6)房间编号(外键)UserIDchar(10)办理人账户(外键)表3.6顾客表字段类型描述CustomerIDInt顾客编号CustomerNamenchar(10)顾客姓名IDCardchar(18)身份证号Sexchar(2)性别BirthDayDate生日Phonechar(11)手机号码CustomerLevelInt顾客等级Discountdecimal(3,2)享受折扣表3.7商品表字段类型描述CommodityIDInt商品编号(主键)CommodityNamenchar(16)商品名称CommodityTypenchar(8)商品类型CommodityUnitnchar(4)商品单位Pricedecimal(8,2)商品价格表3.8商品销售表字段类型描述OrderIDchar(32)订单编号CommodityCountInt商品数量SaleTimeDatetime销售时间UserIDchar(10)办理人账户(外键)CommodityIDInt商品编号(外键)RoomIDchar(6)房间编号(外键)3.3用户的权限设计本系统的用户分为两个角色:管理员和超级管理员。不同的角色具有不同的系统功能权限。管理员和超级管理员都可以进行系统的登录、入住登记、退房结算、预订管理、房间管理和顾客管理的操作。除此之外超级管理员还可以进行员工管理和系统设置操作。3.4系统界面设计在进行系统开发之前,需要先设计好系统的可视化界面,结合系统的相关功能需求和数据表结构对系统界面进行设计,为之后数据的输入保存和输出加载提供便利。本小节介绍系统的一些主要界面的设计。运行系统时,首先出现的是系统登录界面,登录界面设计草图如图3.5所示。主要的功能控件就是两个TextBox控件,一个负责输入登录的账户,一个负责输入登录的密码,还有一个Button按钮控件控制登录事件。在输入登录信息完毕后,点击登录按钮,系统会将输入的账户密码与数据库的User表中保存数据进行核验,如果验证成功,则表示登录成功,可以跳转到系统主页面,主页面设计草图如图3.6所示。图3.5系统登录界面设计草图系统主页面主要分为五大部分,顶部标题下是一个工具栏,里面的正方形和下面的文字是一个Button控件,它的表现形式是图片加文字,正方形表示图片部分,对于这些功能按钮,设置一个直观的图标来表示它的使用意义是比较符合图形界面设计的。下面的文字就是对该按钮的一个说明,点击不同的按钮可以打开不同的界面进行相关的操作,例如入住登记、预订管理等。再往下最左边的入住信息部分,其实是一个GroupBox控件,其中有若干Label控件来显示包括顾客姓名、性别、联系方式、房间号、房费和押金等在内的入住信息。中间的大正方形是房态图,用ListView控件来实现的,房态图能直观展现房间当前状态,正方形代表的房间状态图标和下面的房间号共同组成一个ListViewItem项。房态图上方写着房间类型的是Button控件,点击不同的Button控件,房态图里面就会加载代表着相应类型房间的ListViewItem项。图3.6系统主界面设计草图主界面界面最右边有两个上下区域,两个区域里面和入住信息区域一样分别由若干Label控件来显示当天不同类型的房间价格信息、当前处于各个房间状态的房间数量等信息。点击主页面工具栏中的不同按钮可以打开不同功能的界面。其中入住登记界面设计草图如图3.7所示。图3.7入住登记界面设计草图入住登记界面主要完成对入住信息的输入,其中包括顾客的信息,选择的房间信息和最后生成的入住单信息。顾客信息区域主要是三个Button按钮控件,点击后会弹出相应的顾客信息登记页面进行顾客信息输入,然后客房信息区域主要有ComboBox控件负责选择房间类型,两个DateTimePicker控件负责确定顾客办理入住的时间和预计离开的时间。根据客房信息区域选择的信息,可选房间区域的ListView控件会加载可供选择的客房信息,每个ListViewItem项中包含房间号、房间类型和房间价格三个信息。选择好的房间信息会添加到已选房间的ListView控件中。入住单信息区域主要是Label控件和TextBox控件的组合,提示根据上述选择后生成的房费信息,在用户输入押金,点击计算按钮,如果主客有折扣,系统就会计算打折后的房费填充到相应的TextBox控件中。登记按钮负责的事件是将入住登记界面中的信息都存入数据库中。除了对顾客入住时进行入住登记,在顾客退房时还有退房结算的界面,主要负责计算是否有超时的房费以及退还的押金或者追加的收款等,退房结算界面设计草图如图3.8所示。图3.8退房结算界面设计草图退房结算界面中,入住信息区域主要是Label控件和TextBox控件,系统退房结算时通过房态图获取与该房间相关的入住信息,然后加载在TextBox控件中,入住单中的编号、费用信息就加载在结算信息区域的TextBox控件中,点击计算按钮,系统就会计算出要返还的押金和追加收款信息加载在结算信息区域相应的TextBox控件中。最后点击退房按钮,就可以将入住信息表中的数据进行修改并改变入住信息的状态为已结算的状态,完成退房操作。除了顾客直接前来酒店进行登记入住,顾客还可以通过电话等方式提前向酒店预订房间。所以需要有一个添加顾客预订的界面,该界面设计草图如图3.9所示。图3.9添加预订界面设计草图添加预订界面中,主要有三个区域:预订信息区域主要包含自动加载预订订单编号的TextBox控件,接收用户输入预订顾客的姓名和手机号码的TextBox控件,然后是选择房间类型的ComboBox控件,还有选择预住时间以及预离时间的DateTimePicker控件。而可预订房间区域主要有一个ListView控件加载可供预订的房间信息,其中的每一个ListViewItem项包含房间编号、房间类型和房间价格这三个房间信息。已选定房间区域也是有一个ListView控件用来接收从可选预订房间区域中选中的房间信息。界面最下方是两个Button按钮控件,确认按钮负责将预订信息保存至数据库的预订信息表中,取消按钮可以停止当前操作,关闭窗口。

4系统实现4.1开发环境的搭建工具:(1)系统页面:Windows窗体页面结合CSkin界面库(2)数据库:SQLServer数据库(3)开发工具:VisualStudio2019系统开发主要使用到的工具如上描述,系统页面是windows窗体页面,同时结合免费的CSkin界面库组件进行美化,通过在网络上寻找CSkin界面库的文件,然后将其dll文件引入到项目中,就可以使用该界面库的控件进行界面设计,同时还可以通过将窗体类继承CSkin界面库中不同窗体风格的类来实现对windows窗体风格的改造。使用到的数据库是SQLServer数据库,主要用途是将系统数据保存在服务器端。而用户通过系统界面的操作对数据库进行访问则使用到了ADO.net技术。4.2系统登录功能的实现系统的登录功能是系统的最基本功能,也是系统运行的开始。系统使用者要在登录页面输入账户和密码进行登录,然后系统将用户输入的登录信息与数据库中保存的系统用户数据进行比对,账户密码核验正确后,返回系统用户的权限和姓名等信息表示登录成功,然后才能打开系统主页面使用系统的其他功能,如果核验失败,则在登录界面上弹出消息提示框提示用户登录失败。该功能伪代码描述如下:BeginBeginInputusernameandpassword;Iflogininformationislegal{Verifythelogininformation;Ifverifysuccessfully{returntheinformationoftheuserOpenthemainpageofsystem;}ElseOutputloginfailed;}ElseOutputtipsontheloginpageofsystemElseOutputtipsontheloginpageofsystem;End图4.1登录功能流程图4.3房间管理模块的实现房间管理这一功能模块,包含了对房间信息的增加、删除、修改和查询操作。4.3.1添加房间功能的实现对房间信息进行添加,步骤是先输入添加的房间信息,保存到数据库之前系统会对输入的数据进行合规性检验,检查数据是否为空或者数据类型是否与数据库中保存的数据字段类型不符以及房间号是否与数据库中已经保存的房间号重复等。如果没有通过检验,说明数据的格式不合规,系统就会输出相应的提示信息,提示系统用户修改不合规的数据值。通过合规性检验,满足规定的格式,系统再将房间信息保存到数据库中。保存成功的话返回保存成功的提示信息,保存不成功的话,也返回相应的报错信息。该功能伪代码描述如下:BeginBeginInputtheinformationoftheroom;Ifroominformationislegal{Saveinformationoftheroomindatabase;Ifsavesuccessfully{Outputsavesuccessfully;Refreshrooms’informationontheroommanagementpage;}ElseOutputsavefailedanderrormessage;}ElseOutputtipsonthepageofsystem;End添加房间功能的流程图如图4.2所示。图4.2添加房间功能流程图4.3.2删除房间信息功能的实现在房间管理模块中,对不需要的房间信息可以进行删除操作。首先要在房间管理页面的DataGridView控件的房间表中选择要删除的房间信息,然后系统根据该房间的房间号,判断该房间是否正在被使用或者被预订。如果被使用或被预订,就输出相应的提示信息,取消删除操作,而如果没有被使用且没有被预订,就依照房间号对数据库的房间表、入住信息表、商品销售表中的数据记录进行级联删除操作,并返回结果。如果删除成功,就返回删除成功的信息,并且刷新DataGridView中的数据表项。如果删除失败,则返回报错信息,最后结束操作,该功能伪代码如下:BeginBeginChoosetheroomtodelete;Judgethestateoftheroom;IftheroomisbeingusedorreservedOutputtipsthattheroomcan’tbedeleted;Else{DeleteinformationoftheroomindatabasebyroomID;IfdeletesuccessfullyIfdeletesuccessfully{Output“deletesuccessfully”;Refreshrooms’informationontheroommanagementpage;}ElseOutputerrormessage;}End图4.3删除房间信息功能流程图4.3.3查询房间信息功能的实现对房间信息进行查询,可以通过房间号、房间类型等字段作为条件进行查询。首先,选择要查询的条件。然后,输入查询的值进行查询。系统根据用户选择的条件和输入的相应的值在数据库中进行查询,返回查询的结果。如果查询结果为空的话在界面输出提示语句。该功能伪代码描述如下:BeginBeginChoosetheconditiontoselectroominformation;Inputthevaluetoselectroominformation;Returntheresultofselectingfromdatabase;IftheresultisnullOutputtipsthat“Theinformationcan’tbefound”;End查询房间信息功能的流程图如下:图4.4查询房间信息功能流程图4.4入住登记功能的实现系统用户为顾客办理入住登记时,首先要输入顾客信息,将顾客信息添加到顾客信息表,然后根据顾客的需求选择房间类型以及离开时间,入住时间在进行入住登记办理时自动生成,然后再分配具体房间号。在这一过程中,选定房间类型和预计离开时间后,系统会根据这些信息在数据库的房间信息表和预订表中进行查询,在入住登记页面中保存房间信息的ListView控件里加载出该时间段内没有被使用也没有被预订的房间供系统用户进行选择分配,完成房间信息的填写。最后输入押金,点击计算,系统会自动根据房间价格和预计入住时间计算出收款总额。在入住信息填写完后,点击登记按钮,系统会进行数据的合规性检验。检验通过,则系统向数据库提交顾客入住登记事务。由于入住登记功能涉及到将入住信息插入到入住信息表、修改房间信息表中的房间状态。一次登记操作涉及到数据库中多张数据表的修改,这些数据操作要么全部执行,要么就都不执行,是不可分割的整体。而事务具有原子性、一致性、隔离性和持久性则四个特点,可以满足数据操作要么全部执行,要么都不执行的要求。所以在登记入住的操作中使用了事务对数据库进行操作,即SqlTransaction对象。通过设计入住登记功能的事务,将入住登记过程中使用到的一系列sql语句操作都用事务进行提交。向数据库提交事务后,如果提交成功,则入住登记涉及到的数据表修改操作都得到执行,如果提交失败,可以回滚事务,返回到提交事务前的状态,保证数据库的数据一致性。当事务提交成功,数据库中的相应数据会发生改变,同时在主页面上也应该有相应直观的体现,这就使用到了房间状态图。房间状态图中用不同颜色的图标表明当前房间的状态,在入住事务提交成功后,就会刷新主页面上对应房间的图标,将其从空净状态改变为占用状态。使得系统用户能快速掌握当前的房间分配状态。该功能的伪代码描述如下:BeginBeginInputthepersonalinformationofthecustomer;Chooseroomanddeparturetime;Inputdepositandcalculatetotalpayment;Ifallinformationislegal{Commitcheckintransactiontodatabase;IfcommitsuccessfullyRefreshthegraphofroomstatusonmainpage;ElseRollbackthetransaction;}ElseOutputtipstoremindtheusers;End入住登记功能的流程图如图4.6所示。图4.6入住登记功能流程图4.5退房结算功能的实现与入住登记相对应,酒店经营中最常见的需求就是退房结算功能。入住的客人准备离开时,应当到前台办理退房,系统操作者就可以根据房间号在房间状态图中找到相应的房间图标,然后进行退房结算操作。在打开的结算页面中,系统会加载出相应的超时房费以及该房间在使用时间内的商品消费信息,用户在检查相关信息后,可以点击计算通过系统核算返还金额或者追加收款,最后向数据库提交退房结算事务。和入住登记功能一样,退房结算功能涉及到对房间表中房间状态以及入住单表中订单状态、超时房费和商品消费等字段的更新操作,所以在这一功能中同样也设计一个退房结算的事务,将上述这些操作涉及的sql语句囊括其中,保证数据的一致性。提交事务成功,则输出成功提示信息并更新主页面的房间状态图对应房间的图标。提交失败则输出报错信息。该功能伪代码描述如下:BeginBeginChoosetheroomtocheckout;Calculateovertimeroomrateandcommodityconsumption;Commitcheckouttransactiontodatabase;Ifcommitsuccessfully{Outputcheckoutsuccessfully;Refreshthegraphofroomstatusonmainpage;}Else{Rollbackthetransaction;Outputtipsthatcheckoutunsuccessfully;}End图4.7退房结算功能流程图4.6预订管理模块的实现预订管理模块主要包含的功能是添加预订、取消预订和办理入住功能4.6.1添加预订功能的实现添加预订的流程与入住登记的流程大致相似,但是在添加预订时只需要记录顾客提供的入住人的姓名和手机号,然后根据需求选择好房间类型以及预计入住的时间和预计离开的时间。同样地,系统会自动根据预计入住的时间段和房间类型在ListView控件中加载该时间段没有预订的空净房间以供选择。在选择好房间之后,即可将预订订单信息保存到数据库中。系统会对预订单信息进行合规性检查,然后再保存至数据库。添加预订功能伪代码如下:BeginBeginInputthenameandphonenumberofcustomer;Choosetheroomtoreserve;IFreservationinformationislegal{Savetheinformationindatabase;Ifsavesuccessfully{Outputreservesuccessfully;Refreshthereservationinformationonreservationmanagementpage;}Refreshthereservationinformationonreservationmanagementpage;}ElseOutputreserveunsuccessfully;}ElseOutputtipsonthepage;End图4.8添加预订功能流程图4.6.2取消预订功能的实现预订订单的管理模块中同样设计了取消预订的功能,在客人超过一定时间没有入住,或者主动告知酒店取消入住的情况下,系统用户可以对预订的订单进行取消。具体功能实现:在找到要取消的预订订单后,选择取消订单时,系统会在DataGridView控件中获取所选择的行中预订单编号字段的值。然后根据该值在数据库中删除相应的预订记录,如果删除成功,则输出取消预订成功的信息,如果删除失败,则输出相关的报错信息。该功能伪代码如下:BeginBeginChoosethereservationtocancel;Ifdeletetheinformationsuccessfully{Outputcancelthereservationsuccessfully;Refreshreservationmanagementpage;}ElseOutputerrormessage;End取消预订功能流程图如图4.9所示。图4.9取消预订功能流程图4.6.3办理入住功能当预订顾客来办理入住时,可以在预订管理界面显示预订信息的DataGridView控件中查找到之前顾客登记过的预订信息,然后选择办理入住操作后,系统会对该行的数据进行读取,将相关的数据传到入住登记界面,然后就进入登记入住的流程,完善顾客信息,之后的流程就和登记入住的流程一致。而预订订单办理入住进行登记时,执行的是办理入住的事务,该事务与入住登记事务相同之处时它们都执行将入住信息插入入住信息表,然后改变房间表中的房间状态为占用。但是办理入住事务还多一项操作就是删除预订信息表中办理入住的预订记录。最终以上操作同时全部执行后即完成预订顾客办理入住。办理入住功能伪代码如下:BeginBeginSendthereservationinformationtocheckinpage;Inputtherestofthecustomer’sinformation;Inputdepositandcalculatetotalpayment;Ifallinformationislegal{CommitreservationCheckIntransactiontodatabase;IfcommitsuccessfullyRefreshtheReservationManagementpage;ElseRollbackthetransaction;}ElsElseOutputtipstoremindtheusers;End办理入住功能流程图如图4.10所示。图4.10办理入住功能流程图4.7系统用户管理模块的实现系统用户管理主要是权限为超级管理员的系统用户才能进行操作,功能包括添加系统用户、修改系统用户信息和按照条件对系统用户信息进行查询。4.7.1添加系统用户功能的实现其次,根据装配基准、装配顺序等装配过程,构建装配误差分析模型,以航空产品功能、装配性、外观等为主要控制指标,利用极值法、均值根法、蒙特卡罗仿真等技术,实现装配过程的容差累计计算。当组装误差累计到临界尺寸不满足要求时,对累积容差构成回路的尺寸定义进行修正,并对其进行再建模与计算。同时,若分析与计算结果符合要求,则可考虑对某一类零件的容差进行相应的调整,以减少制造成本。如果关键的控制尺寸及费用因子都符合规定,则终止重复过程,产生最后的容差分配BeginBeginInputthenewuser’sinformation;Iftheinformationislegal{Savetheinformationofthenewuserindatabase;IfsavesuccessfullyOutputsavesuccessfully;ElseOutputsaveerrormessage;}ElseOutputtipsonthepageofsystem;End添加系统用户信息功能流程图如图4.11所示。图4.11添加系统用户信息功能流程图4.7.2修改用户信息功能的实现超级管理员可对系统使用者的资料进行修改,如使用者的身份证号码、手机号码、姓名等,亦可对使用者的权利进行更改,若使用者的权利设定成"无",使用者将不能登入该系统。在系统用户管理界面的DataGridView控件中,选取要进行更改的用户,将被选中的用户信息从其中提取出来,并将其显示在修改界面上。超级管理员可以对其进行修改,并将其存入数据库。在储存之前,系统会执行符合性检查。如果没有通过,则会有一个提示提示,提示用户再次输入。如果成功,则修改后的资料会储存在资料库的使用者资料表中。如果成功,则修改后的资料会储存在资料库的使用者资料表中。若已成功储存,则会显示成功资讯。若无法储存,则会传回一个错误资讯。修改系统用户信息功能伪代码如下:BeginBeginChoosetheusertoreviseitsinformation;Revisetheuser’sinformation;Iftheinformationislegal{Savetherevisedinformationinthedatabase;Ifsavesuccessfully{Output“Savesuccessfully”;Refreshusers’informationontheusermanagementpage;}Refreshusers’informationontheusermanagementpage;}ElseOutputerrormessage;}Else{Outputtipsonthepageofsystem;}End图4.12修改系统用户信息功能流程图4.7.3查询用户信息功能的实现当一个超级管理员对用户进行管理的时候,它可以根据用户的帐号、权限和ID号码等域来检索用户的信息。该方法是在用户管理界面中使用ConditionComboBox来获得由超级管理员选定的查找标准,然后通过验证框或验证框来获得所输入的搜索值。接着,该系统按照该超级管理员所选取的标准以及所输入的对应数值对该资料库进行查询,并将该查询的结果传回,若该结果为空白,该系统将在该接口中输出一条提示语句。该功能伪代码如下:BeginBeginChoosethecondition;Inputthevaluetoselectuser’sinformation;Returntheresultofselectingfromdatabase;IftheresultisnullOutputtipsthat“Theinformationcan’tbefound”;End查询用户信息功能流程图如下:图4.13查询用户信息功能流程图4.8顾客信息管理模块的实现顾客的信息在进行入住登记时由系统用户进行输入,入住登记完成后顾客信息就会添加保存在系统数据库的顾客信息表中。因此,系统用户可以在系统中对保存的顾客信息进行管理,包括修改顾客信息,查询顾客信息,删除顾客信息。4.8.1修改顾客信息功能的实现对已登记的顾客信息进行修改,可以在顾客管理页面的DataGridView控件中选出要进行更改的顾客,将顾客信息显示在更改信息界面上,供系统使用者进行修改后提交保存,也可以对已登记的顾客信息进行修改,对已登记的顾客信息进行修改。第二种是当签到没有完成或者没有提交签到信息的时候,当登记的顾客信息有错误或者没有提交保存的时候,可以重新单击签到界面中的“登记顾客信息”按钮,然后开启顾客信息登记页面,这个时候,注册系统就会自动载入已经登记的顾客信息,可以对信息进行更改,然后再提交保存,就可以完成注册登记。无论是哪一种,在存储用户资料之前,首先要核对修改过的资料的格式,若有错误,就会输出一条提示信息。若验证通过,将顾客资料存入资料库,若储存成功,则会传回成功资讯,若储存不成功,将会传回正确的错误资讯。BeginBeginChoosethecustomertoreviseitsinformation;Revisethecustomer’sinformation;Iftheinformationislegal{Savetherevisedinformationinthedatabase;Ifsavesuccessfully{Output“Savesuccessfully”;Refreshcustomers’informationonthemembermanagementpage;}ElseOutputerrormessage;}Else{Else{Outputtipsonthepage;}End图4.14修改顾客信息功能流程图4.8.2查询顾客信息功能的实现系统用户在浏览顾客信息时,可以通过客户的姓名、身份证号、手机号码等条件对顾客信息进行查询,在ComboBox控件中选择需要的查找条件,然后输入相应的数据值进行查找,系统根据上述条件和值从数据库中进行查询并返回查询结果,如果查询结果为空,则输出相应的提示语句。该功能伪代码描述如下:BeginBeginChoosetheconditiontoselectcustomer’sinformation;Inputthevaluetoselectcustomer’sinformation;Returntheresultofselectingfromdatabase;IftheresultisnullOutputtipsthat“Theinformationcan’tbefound”;ElseFilltheresultintheDataGridViewinthecustomermanagementpage;End图4.15查询顾客信息功能流程图4.8.3删除顾客信息功能的实现在系统使用者想要删除顾客资料时,可选取顾客资料并进行移除。当用户不在签到时,系统将根据用户号从数据库中删除该用户的信息。因为在登记信息表中存在着客户号码作为外部关键字,所以在删除顾客信息时,也要考虑到外部关键字的限制,使用串联删除的方法,也就是说,当用户信息被删除时,也要将该用户的签到信息从数据库中清除掉,如果该用户被删除了,就会输出一个成功的提示消息,并且在顾客管理接口的DataGridView控件中进行更新。如果没有进行删除操作,将会出现一个错误消息。下面是对这个函数进行的假代码的说明:BeginBeginChoosethecustomertodelete;Ifthecustomerdoesn’tcheckinnow{Deletetherelevantinformationofthecustomerindatabasebycustomer’sID;Ifdeletesuccessfully{Refreshcustomers’informationonthecustomermanagementpage;Output“deletesuccessfully”;}ElseOutputerrormessage;}ElseOutputmessagethatthecustomercan’tbedeleted;End删除顾客信息功能流程图如图4.16所示。图4.16删除顾客信息功能流程图4.9系统运行界面展示在经过上述开发过程后,系统已经趋于成熟,本节通过截图进行系统主要的运行界面展示。4.9.1用户登录界面展示在开启系统的第一步就是登录。在系统登陆页面上,将自己的帐号和密码输入进去,再点击“登陆”,系统根据所输入的帐号和密码,在数据库的用户资料表中进行查询,若有查询,说明登陆成功,将此帐号的使用者权利及使用者名称等资讯从资料库中传回,并跳跃至系统的主介面。如果没有得到任何的结果,那么登入将会失败,并且会有一个提示信息,显示您的登入失败。图4.19显示了登录接口。图4.19系统登录界面4.9.2系统主界面展示在该系统的主界面中,设置了一条带有对应功能按键的菜单,通过该菜单可以到达对应的功能界面。与此同时,在系统的中心位置,也出现了一张用大屏幕显示的房间图,这张图是通过ListView控件建立的,这个视图包括一个显示房间状况的图标,以及一行显示房间号码的文本,并把它们放在表中。此外,在首页中还可以看到入住信息,点击对应的房间图标,就可以看到此房间的入住情况,也可以在“房间地图”上面的“房间种类”按钮上按一下,就可以看到“房间”图标所对应的房间种类。同时,还能看到房价和客房情况。图4.20显示了系统的主要界面。图4.20系统主界面4.9.3入住登记界面展示入住登记是对顾客进行登记操作的接口,其上的资料以顾客资料为主,按一下按键就可开启顾客资料界面,输入顾客资料;房间信息,在界面中的列表视图控件会载入使用者所选的房间资讯,单击列表视图项会向列表VIew控制项中加入所选取的房间信息;并计算房间租金,并输入保证金,产生房间编号,并由系统自动产生房间编号。按一下列表视图项,在列表Vew控件中为所选的房间增加一个房间的相关信息;并计算出房间的房间数,输入房间的押金,并产生房间编号,由系统自动产生房间号。点击"保存"以保存您的住宿信息,然后改变您的客房状态为“已使用”。在图4.21中显示了顾客信息接口,在图4.22中显示了进入接口。4.21顾客信息界面图图4.22入住登记界面4.9.4退房结算界面展示退房结算界面主要办理客人退房的业务,通过在房态图选择退房的房间然后右键单击在快捷菜单中选择退房结算即可打开退房结算界面。此界面的功能主要是获取顾客的入住信息,然后计算是否有超时的房间费用,以及退还押金的金额和是否要追加收款的金额。退房结算界面展示如图4.23所示。图4.23退房结算界面4.9.5预订管理功能模块界面展示在系统中,预订管理功能包括对预订订单的添加、取消预订和办理入住等功能。这一模块主要包括预定管理界面、添加预订订单界面,办理入住界面和登记入住是一个界面,不再过多赘述。点击主界面中的预订管理功能即可打开预订管理界面。预订管理界面主要展示预订管理信息,大体由两个groupbox控件组成,一个groupbox中是查找条件和查找值以及查询按钮,而另一个groupbox主要负责预订订单信息的展示,包含一个DataGridView控件。具体如图4.24所示。图4.24预订管理界面点击预订管理界面的添加预订选项即可打开添加预订的界面,该界面主要是进行预订订单的添加,系统用户可以在该界面中输入预定订单的相关信息。添加预订订单的界面如图4.25所示。图4.25添加预订界面4.9.6房间管理功能模块界面展示房间管理包含对房间信息的添加、修改、删除和查询,以及对不同类型房间价格的修改。房间管理界面和预订管理界面设计相似。主要也是展现房间信息以及方便通过条件进行查询。房间管理界面如图4.26所示。图4.26房间管理界面添加房间界面主要是输入一些房间信息然后进行添加,修改房间信息的界面和添加时的界面相同。如图4.27所示图4.27添加、修改房间界面修改房间价格界面主要是根据房间类型,修改一个类型的房间价格,界面如图4.28。图4.28修改价格界面4.9.7顾客管理模块界面展示顾客管理模块主要包含修改顾客信息、查询顾客信息和删除顾客信息的功能。界面风格与房间管理模块界面风格类似。顾客管理界面如图4.29所示。图4.29顾客管理界面修改顾客信息界面如图4.30所示。图4.30修改顾客信息界面4.9.8用户管理模块界面展示用户管理模块包括系统用户信息的添加、修改、查询。用户管理界面如图4.31所示。图4.31用户管理界面添加用户信息界面与修改用户信息界面相同,如图4.32所示。图4.32添加、修改用户信息界面4.9.9系统设置界面系统设置主要是拥有超级管理员权限的系统用户使用,主要就是将系统数据库进行导出备份,由用户自主选择保存的地址,然后将数据库的数据备份导出。系统设置界面如图4.33所示。图4.33系统设置界面

5.系统测试在系统设计完成之后,还需要对其进行相关的功能测试,将未检测到的问题及时纠正,避免在以后的使用过程中产生错误,从而影响用户的使用体验。这里有几个关于系统测试的问题和解决办法:(1)当对房间管理模块进行测试时,在删除已有房间信息时,将状态为已有房间的房间

温馨提示

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

评论

0/150

提交评论