版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
毕业论文题目: 钻石酒店管理系统设计与实现摘要“一带一路”在中国得提出,世界经济越来越紧密,给服务业和旅游业发展带来了机遇。同时,伴随我国产业结构调整,酒店行业顺着服务业和旅游业的蓬勃发展而不断壮大。钻石酒店作为全国连锁企业,业务不断的增加,如何设计一款效率高且适用的酒店管理系统,是公司面临急需解决的问题。传统的酒店管理大部分采用纸质记录的形式,存在着不易汇总、容易丢失、以及信息传递不及时等问题。所以,本课题针对这些要求制作了基于C#语言的钻石酒店管理系统。该系统可以高效的整理汇总客房信息,及时反馈顾客的意见,能有效的简化管理步骤,减少成本。除此以外,本程序还能更好的响应“绿色办公”的号召,追求企业的无纸化办公。关键词:酒店管理系统;C#;信息目录1绪论 11.1开发背景 11.2国内外研究现状 11.3课题研究的目的和意义 11.4研究的方法和文章框架 22系统分析 32.1可行性分析 32.2需求分析 42.2.1系统主要功能 42.2.2系统的实现目标 42.2.3运行环境 42.3数据需求分析 52.4数字字典 72.5数据流图 93系统设计 113.1系统功能结构设计 113.2数据库的设计 123.2.1数据库的需求分析 123.2.2数据库逻辑设计 133.3系统流程图 164系统详细设计与实现 174.1用户登录 174.2主界面 184.2.1管理员的主界面 184.2.2普通用户的主界面 194.3住房管理 194.3.1房间入住信息管理 204.3.2客户入住信息管理 204.4后台事务管理 204.4.1房间信息管理 204.4.2楼层信息管理 224.4.3房间状态信息管理 244.4.4房间类型信息管理 264.4.5客户类型信息管理 274.4.6用户管理 285系统测试 315.1测试的目标 315.2测试方法 315.3系统测试 325.3.1用户登录测试 325.3.2房间信息管理测试 335.3.3楼层信息管理测试 335.3.4房间状态信息管理测试 345.3.5房间类型管理测试 345.3.6客户类型管理 345.3.7用户管理测试 355.3.8房间入住信息管理 375.3.9客户入住信息管理界面 38结论 39致谢 40参考文献 41附录 42北京理工大学现代远程(继续)教育学院毕业设计(论文)PAGE11绪论1.1开发背景“一带一路”在中国得提出,世界经济越来越紧密,给服务业和旅游业发展带来了机遇。同时,伴随我国产业结构调整,酒店行业顺着服务业和旅游业的蓬勃发展而不断壮大。随着互联网的普及,网络在人们生活中的应用越来越广泛,在线预订房间,和选择服务的便利尤为突出。钻石酒店作为全国连锁企业,业务不断的增加,如何设计一款效率高且适用的酒店管理系统,是公司面临急需解决的问题。同时,为了酒店在竞争中由自己的一席之地,就必须改变自己的经营模式,提高自己的服务质量,减少不必要的开支。在此背景下,钻石酒店管理系统采用VS2013作为开发软件,
C#作为程序设计语言,SQlServer作为后台数据库,界面设计遵循简单、直观、友好的特点,便于操作人员进行操作.在本文中具体介绍了酒店管理系统的设计与实现,通过该系统可以实现的主要功能有:用户的登录、用户管理、用户的添加、用户密码修改与用户删除;客房类型与状态的查询;顾客开房时基本信息的录入与查询;结算信息的查询等.1.2国内外研究现状信息技术的不断发展,为酒店发展提供了一个平台。现在的酒店管理系统基本上基于Windows和Linux操作系统,大多数公司选择Windows操作系统。美国是世界第一个运用计算机管理的酒店的国家,最早的企业是ECI公司,其前台服务采用计算机管理系统,包括房间预订、房间安排、消费账单、住户、餐厅、查找、晚间工作和行业分析。随后高级饭店选择了HIS酒店系统,它是以WindowsNT中的C/S作为其基础的系统,是酒店业资讯系统有限公司开发的。例如北京王府井、中国大酒店、长城以及上海的锦江、华住等都采用该系统。Fidelio酒店系统是德国的FidelioSoftwareGmbH于1987年10月开发的,1995成立香港公司专门开放中国大陆市场。国内共有一千多个企业对酒店电脑管理软件进行研发和销售。相比而言,自主产品的性能不亚于国外的同类产品,不管是系统功能还是技术都可与国外的相竞争,而对于售后维护、本土特色这两个方面还更强于国外的产品。1.3课题研究的目的和意义今年来随着互联网的不断发展,特别是5G时代的到来,网络的覆盖范围不断地增加,为酒店管理系统的发展带来了好时机。良好的网络和系统,才能提高酒店的服务和效益,本次的酒店设计一个重点就是提高酒店的管理效率和水平。对于服务性的行业来说,客户的满意度是直接关系到企业形象和声誉的。而要想提高服务的质量,这就要求酒店的各个部门要有及时的支持和配合,拥有更有效的办事效率。在这其中信息的传递起到了关键性的作用。传统的酒店管理大部分采用纸质记录的形式,存在着不易汇总、容易丢失、以及信息传递不及时等问题。所以,本课题针对这些要求制作了钻石酒店管理系统。该系统可以高效的整理汇总顾客信息,及时反馈顾客的意见,能有效的简化管理步骤,减少成本。除此以外,本程序还能更好的响应“绿色办公”的号召,追求企业的无纸化办公。1.4研究的方法和文章框架
本文采用由极限编程之父KentBeck提出的一种面向对象的开发方法—测试驱动开发(TDD),区别于传统的软件开发模式,测试先行将更重视测试在整个软件开发过程中的作用并促进项目的进行。它要求先完成测试代码,然后编写功能代码,并且功能代码要以通过测试代码为标准,然后对功能代码重构,重构之后再运行测试并要通过测试。本篇论文共分为了5章,分别是绪论、系统分析、系统设计、系统详细设计和系统测试。在前言中分别介绍了开发背景、课题研究的目的和意义、国内外发展动态以及系统开发工具。系统详细设计中主要编写了系统的可行性分析、系统的需求分析以及数据在系统的流动。对于系统中模块的设计和数据库的设计我放在了系统设计中,而系统的详细设计中我对每个功能模块功能详细的设计。第五章是系统的测试,在这章中对系统测试做了相近的介绍。2系统分析2.1可行性分析(1)技术可行性酒店管理系统采用了C/S技术架构,数据库使用的是MicrosoftSQLServer2008数据库,开发工具用VisualStudio2013。C/S技术架构,即客户端和服务器结构。C/S技术架构可以减轻服务器的数据负荷这样有利于提高客户端的处理能力,因为很多的工作在客户端处理完之后再提交给服务器。另外,C/S技术架构的数据存储管理功能较为透明而且响应速度快。(2)经济可行性对于本酒店管理系统,只需要硬件(计算机)和软件环境(VisualStudio2013+SQLServer2008)。系统的主要成本主要集中在管理系统的开发和维护,所以不会对开发人员造成经济负担。开发一个高效的酒店管理系统对每一个酒店来说都是非常合适的,这样不仅节省了酒店的人工费用开支,也可以提高酒店的办事效率,并且对这些酒店来说支付一个酒店管理系统来说不是什么问题。另外,在系统开发完毕投入运行之后,会大大的提高酒店的工作效率。这样可以减少工人成本,这样可以获得更多的利益。所以经济上是可行的。(3)安全可行性在系统投入运行之后,对于用户来说是完全透明的,他不需要知道内部系统的结构和实现方法。这个系统的基本定位是界面友好、操作简单、功能齐全的小型酒店的管理系统。所以用户只需要简单的鼠标操作,即点击链接或按钮就可以。对管理者而言就是用户和客房数据的管理,在数据录入数据库之后只需操作运行相应的后台程序进行处理。(4)操作可行性现在计算机和网络的发展,完全有能力处理一个小型的酒店管理系统的各个级别的操作,能够满足日常工作的需要。只需要有计算机和网络在家就可以进行轻松地操作了。另外,本系统的目标是简洁、友好、高效。因为本系统的综宗旨是简单易操作,所以对于没有丰富电脑操作经验的人来说也是可以操作的,只要经过简单的熟悉之后就可以。(5)法律可行性本酒店管理系统在设计实现的过程中没有做超出法律规定的是,所以不用担心存在任何的法律问题,在法律上是可行的。综上所述,本系统从技术、经济、安全、操作、法律五个方面来说是可行的。2.2需求分析2.2.1系统主要功能此次的设计课题,是以酒店的住房业务为主,系统分为前台管理和后台数据两个大的模块,主要为提高传统酒店管理系统的效率和简化操作步骤以及界面简洁、友好。根据题目的具体要求,系统主要分为五个部分,分别是前台管理、客房管理、客户管理、员工管理、财务管理。(1)普通用户管理:主要包括房间查询、客户入住登记、结账、增加床位、查询消费明细等。(2)客房信息管理:主要包括客房的查询,信息的修改,客房类型的增、删、改、查,客房的增加,客房状态的修改。(3)客户管理:主要包括客户类型的增、删、改、查。(4)员工管理:主要包括用户密码的修改,用户角色的修改,已经用户增加和删除。(5)财务管理:主要包括结账业务,查询消费,消费增加。2.2.2系统的实现目标每一个酒店管理系统都要完成酒店客人信息的记录,还要提供查询功能、打印报表的功能,这些操作能够改变传统的手工操作,减少酒店在人员上的开支,另外酒店管理系统也是酒店管理的方法之一。从酒店管理系统诞生之日起,就不断地向着完善,精简,友好,全面等深度方向发展。一个好的酒店管理系统可以带动企业的运作,为管理和决策提供支持。因此本系统的实现目标主要是操作简单,界面友好,信息安全,性能可靠,减少手工操作的繁琐与误差,从而提高酒店的服务质量,获得更多的利益。具体的目标包括:(1)快速的处理客人的入住、退房操作,尽量事项客人在酒店实现消费自动化。(2)提高客人信息的可靠性,以及客人消费记录的准确性。(3)及时、准确的向客户反映客房的变化。(4)实现员工的高效管理。(5)减少手工操作,解放工作人员。2.2.3运行环境本系统对运行环境有一定的要求,下面对环境进行介绍。硬件环境服务器端在服务器最低配置的情况下,服务器的运行不会很流畅。服务器的最低配置是由组成服务器的硬件决定的。在现在硬件发展很出色的情况下,我们尽量给服务器配置较高性能的硬件。本系统的网络配置情况如下:处理器:InterPentium41.6GHz以及以上版本内存:512MB或以上硬盘空间:160GB或以上光驱:CD-ROM48X或以上显卡:SVAG显示适配器或以上。用户端因为电脑硬件和软件的快速发展,又因为本系统对电脑配置要求很低,所以现在的电脑都能支持酒店管理系统。处理器:InterPentium1.0GHz以及以上版本内存:216MB或以上版本硬盘空间:80GB或以上版本光驱:CD-ROM48X或以上版本显卡:SVAG显示适配器或以上版本。软件环境服务器端操作系统:WindowsXP系统或者更高版本网络协议:TCP/IP数据库:SQLServer2008用户端操作系统:WindowsXP/win7/win8网络协议:TCP/IP客户端软件:酒店管理系统。2.3数据需求分析本酒店管理系统,对前台和后台进行分析调研。本系统主要有客户实体,用户实体,房间实体,房间类型实体,房间类型删除实体,楼层实体,楼层类型实体。下面对各个实体进行详细的介绍。房间实体主要记录房间编号、房间类型、房间价格、房间状态标记、房间备注。房间信息实体如图2-1所示:房间房间房间备注房间编号房间备注房间编号房间状态价格房间类型房间状态价格房间类型图2-1房间信息实体图
客户实体主要是记录客户姓名、身份证号、性别、电话、客户类型、所交押金、住房编号、入住时间、退租时间。客户信息实体如图2-2所示:退租时间客户退租时间客户入住时间客户入住时间客户姓名押金客户类型性别证件号码押金客户类型性别证件号码电话电话住房编号住房编号图2-2客户信息实体图
用户实体主要是用户编号、用户名、密码、角色、电话。用户信息实体如图2-3所示:用户用户编号编号电话电话角色密码用户名角色密码用户名图2-3用户信息实体图房间类型主要是类型编号、类型名字、是否加床、加床价格、床数。房间类型实体信息如图2-4所示:房间类型房间类型床数类型编号床数类型编号类型名字类型名字加床价格是否加床加床价格是否加床图2-4房间类型信息实体图
客户类型主要是类型编号、类型名。客户类型实体的信息如图2-5所示:客户类型客户类型类型名字类型编号类型名字类型编号图2-5客户类型信息实体图总体实体联系图如2-6所示:客房/管理客房/管理员m管理管理用户用户管理管理用户用户管理管理用户用户管理管理用户用户图2-6总体图2.4数字字典
数据字典是用户所有信息的存储,但对用户来数只是一些能够查询的数据表。当用户有什么不理解的数据库的定义或者存储的时候,用户可以参照数据字典来自己理解或者修改数据库的数据。下面是数字卡片的描述。表2-1房间信息数据字典
名字:房间信息别名:描述:用来存储房间信息定义:房间信息=房间编号+房间类型+价格+房间状态+楼层号+描述位置:数据库表2-2入住信息表数据字典名字:入住信息表别名:描述:用来存储客人入住信息定义:入住信息=序号+客人姓名+身份证号码+房间编号+床号+押金+入住时间+退房时间+备注+付款位置:数据库
表2-3房间类型信息数据字典名字:房间类型信息别名:描述:用来存储房间类型信息定义:房间类型信息=房间类型+类型名称+是否加床+加床价格位置:数据库表2-4用户信息数据字典名字:用户信息别名:描述:用来存储用户信息定义:用户信息=用户+用户密码+用户姓名+角色位置:数据库
表2-5用户信息数据字典名字:客户信息别名:描述:用来存储客户信息定义:客户信息=身份证号+名字+性别+电话+客户类型+到达时间+离开时间+房号+押金位置:数据库2.5数据流图作为一种功能模型,数据流图主要是说明系统内的逻辑功能和数据在系统内部的存入取出的流动方向和转化过程。系统的顶层数据流图如下:管理员用户通过用户名和密码登陆酒店管理系统,向数据库中存入或从数据库中读取数据,酒店管理系统向管理员显示数据库数据。前台的普通用户同样通过用户名和密码登陆酒店管理系统,可以进行查询修改等功能,系统把前台用户输入的信息以列表形式返回给用户。列表显示列表显示用户名,密码用户名,密码管理员前台用户酒店类型管理员前台用户酒店类型登陆、查询、修改读取存入显示登陆、查询、修改读取存入显示数据库数据库图2-8系统顶层数据流图
系统的数据流图如下:用户用户用户名,密码用户名,密码登录模块用户数据库信息登录模块用户数据库信息通过类型通过类型入住类型客户信息前台用户管理员入住类型客户信息前台用户管理员结账类型结账类型增删改查通过类型增删改查通过类型追加消费追加消费查询信息查询信息增加床位增加床位用户数据库客户类型数据库房间类型数据库楼层数据库房间数据库住宿明细用户数据库客户类型数据库房间类型数据库楼层数据库房间数据库住宿明细处理处理完的数据数据库数据库处理完的数据处理完的数据图2-9完整系统流程图3系统设计3.1系统功能结构设计本系统目标是操作简单,界面友好,信息安全,性能可靠,减少手工操作的繁琐与误差,从而提高酒店的服务质量,获得更多的利益。采用本系统可以大大减少人工操作,节省公司在人员方面的开支。另外随着信息时代的到来,酒店要想在激烈的市场里获得不败之地就要适应信息化发展需要,必须建设一个基于计算机的酒店管理系统。下面介绍一下钻石酒店管理系统的整体功能设计。钻石酒店管理系统功能结构如图3-1所示。钻石酒店管理系统钻石酒店管理系统管理员登陆前台登陆管理员登陆管理员登陆前台登陆管理员登陆客房信息管理房间类型信息管理房间状态信息管理楼层信息管理用户信息客房信息管理房间类型信息管理房间状态信息管理楼层信息管理用户信息客户入住信息管理房间入住信息管理客户类型信息客户入住信息管理房间入住信息管理客户类型信息修改用户角色修改密码添加用户删除用户修改用户角色修改密码添加用户删除用户客房状态修改增加床位结账客户查询明细客户入住客房查询删除用户客房状态修改增加床位结账客户查询明细客户入住客房查询删除用户删除信息修改信息添加信息删除信息修改信息添加信息 图3-1功能模块图该酒店管理系统共分为了两个大的模块:普通用户和管理员用户管理。管理员用户共分为房间信息管理、楼层信息管理、房间状态信息管理、房间类型信息管理、客户类型信息管理和用户管理等六个部分。普通用户管理只分成了客房入住信息管理和客户入住信息管理两个小的模块。本系统包括以下主要的信息模块:房间信息管理:房间信息的增加、删除、修改。⑵楼层信息管理:楼层信息的增加、删除、修改。放假状态信息管理:房间状态的增加、删除、修改。房间类型信息管理:房间类型的修改、重置,以及房间价格的制定和修改。客户类型信息管理:客户类型的增加、删除、修改。用户管理:主要包括用户修改密码、修改用户角色、添加用户、删除用户。可放入住信息管理:房间查询、房间状态修改以及客户入住等⑻客户入住信息管理:主要包括客户查询、结账、明细、增加消费和增加床位。3.2数据库的设计数据库随着信息技术和市场的发展,成为用户所需要的各种数据管理的方式。在当今的社会追求效率至上,对所有的信息资源的管理也要求充分和有效,应用数据库管理可以很好的达到这一点。3.2.1数据库的需求分析考虑到本次的操作系统和系统大小的问题,还有本次的设计工具是VisualStudio2013,所以本次使用的数据库是SQLServer2008。该酒店管理系统的主要功能共涉及到8个数据库表,即:客房表,房间类型表,客户表,客户类型表,用户表,角色表,楼层表,房间状态表。下面对每张表进行详细的介绍。客房表主要是存储客房的各类信息,主要包括id、房间号、房间类型、楼层号id、价格、备注、房间状态等字段。房间类型表用来存储房间类型信息和创维信息,主要包括id、类型名字、是否加床、加床价格、床数等字段。楼层表主要是存储楼层的信息,包括id和楼层名。房间状态表主要是存储房间状态,包括id和状态。客户表主要是存储客户的信息,包括id、客户名、身份证号、性别、电话、客户类型、到达时间、离开时间、房号、押金等字段。客户类型主要是存储客户的类型名,包括id和类型名。用户表用来存储用户信息,主要包括用户id、用户名、密码、角色等字段。角色表用来存储角色名,有id和角色名。3.2.2数据库逻辑设计下面介绍本次数据库的详细设计和数据库中所用到的表。(1)客房表(Rooms):主要用来记录房间信息,在这张表中roomId是不能为空的。下表3-1为房间信息表(Rooms)详细设计与说明:表3-1房间信息表(Rooms)列名数据类型长度主键否允许空注释roomIdInt4是不允许房间idroomNumnchar10否允许房间号roomtypeVarchar30否允许房间类型floorIdInt4否允许楼层号idpricedecimal(5,2)否允许价格remarknvarchar300否允许备注roomStateIdint4否允许房间状态idisAddBednvarchar1否允许是否加床(2)房间类型表(RoomType):主要用来存储房间类型,包括房间类型、类型名、加床价格和加床数量。房间类型roomType为主键,房间类型为主键可以保证数据库的安全性。下表3-2详细说明了房间类型信息表的设计。表3-2房间类型信息表(roomType)列名数据类型长度主键否允许空注释roomTypeint4是不允许房间类型roomTypeNamenvarchar50否允许类型名addBedPricedecimal(5,2)否允许加床价格bedNumVarchar50否允许加床数量(3)客户信息表(Customers):此表为存储客户信息。客户编号customersId为主键,主键是自动生成的,因为客户编号是主键这样就避免了用户的重复,保证了数据库的正确。下表3-3为客户信息实体详细设计与说明:表3-3客户信息表(Customers)列名数据类型长度主键否允许空注释customerIdInt4是不允许序号idIDCardVarchar50否允许身份证号码nameVarchar50否允许姓名gendernchar1否允许性别telVarchar50否允许电话customerTypeIdint1否允许客户类型arriveTimedatetime7否允许入住时间leaveTimedatetime7否允许退房时间roomIdint4否允许房间号cashPledgemoney(5,2)否允许押金(4)客户类型(CustomerType):此表为了存储客户类型,主键是客户类型id(customerTypeId)。下表3-4为客户类型信息实体详细设计与说明:表3-4客户类型表(CustomersType)列名数据类型长度主键否允许空注释customerTypeIdint4是不允许房间类型idcustomerTypeNamenvarchar50否允许房间类型名(5)用户表(UserInfo):此表用来存储系统用户的个人信息,主要有用户编号、用户名、密码、角色,其中用户编号是主键,而且用户编号是自动生成的,保证了用户的唯一性,避免发生冲突,保证系统的安全和统一性。下表3-5为用户信息实体详细设计与说明:表3-5用户信息表(UserInfo)列名数据类型长度主键否允许空注释userInfoIdint4是不允许用户idusernamevarchar50否允许用户名pwdvarchar50否允许用户密码roleInfoIdint4否允许角色(6)角色表(roleInfo):此表用来存储角色信息,主要有角色编号、角色名,角色编号是主键,避免了角色类型发生冲突,保证了系统的安全性。下表3-6为角色信息表的详细设计:表3-6角色信息表(roleInfo)列名数据类型长度主键否允许空注释roleInfoIdint4是不允许角色idroleInfonamenvarchar50否允许角色名称(7)楼层表(Floor):此表用来存储楼层信息,主键是楼层编号,主要有楼层编号、楼层名。下表3-7为楼层信息表的详细设计:表3-7楼层信息表(Floor)列名数据类型长度主键否允许空注释floorIdint4是不允许楼层idfloorNamenvarchar50否允许楼层名称(8)房间状态表(RoomState):此表用来存储房间状态信息表,主键是房间状态id,主要是房间状态编号、房间状态。下表3-8为房间状态信息表的详细设计:表3-8房间状态信息表(Floor)列名数据类型长度主键否允许空注释roomStateIdint4是不允许状态idroomStatenvarchar50否允许状态名称3.3系统流程图系统程序流程图如图3-3所示:图3-3系统流程图4系统详细设计与实现4.1用户登录本酒店管理系统一开始是登陆界面,用户通过用户名和密码登陆酒店管理系统,如果用户名或密码不正确,系统给出无法登陆的提示,提醒用户是密码还是用户名错误。如果用户名和密码都正确,用户则能成功登录系统。下图4-1为用户登录流程图,图4-2为用户登录界面图,图4-3为用户错误登陆界面图图4-1用户登录流程图图4-2用户登录界面图4-3用户无法登录界面4.2主界面用户登录成功之后,进入系统的主界面。因为用户的类型不同所以主界面的显示是不同的。4.2.1管理员的主界面下面的界面是酒店管理系统的管理员主界面,顶端页面显示系统的菜单栏,中间页面是主界面的操作面,下面是界面用户和时间显示。管理员界面的菜单有房间信息管理、楼层信息管理、房间状态信息管理、房间类型信息管理、客户类型信息管理、用户管理和退出六个菜单键。管理员的权限是最高的,除了不能登记客户入住和退房结账外拥有其他的所有的权利。下图4-4是管理员的主界面:图4-4管理员主界面4.2.2普通用户的主界面普通用户的主界面与管理员的主界面相同,主要有三个部分组成,顶端页面显示系统的名称,中间页面是菜单栏,下面最大的界面是各个操作界面的主界面。普通用户界面的设计风格和管理员的设计基本上是一样的,只是普通用户的菜单只有房间入住信息管理、客户入住信息管理和退出三个菜单键。下图4-5是普通用户的主界面:图4-5普通用户主界面4.3住房管理用户在登陆系统后,进入客房信息管理对客户进行住房登记以及房间状态的修改和查询,通过客户入住信息管理对入住客户进行查询、退房、消费明细的查询、增加床位等操作。下图4-6为客房管理流程图:图4-6客房管理流程图4.3.1房间入住信息管理用户登录系统进入房间入住信息管理的界面,对房间的信息进行查询、修改房间的状态和办理客户入住的各项事宜。房间入住信息管理的界面如下图4-7所示。4.3.2客户入住信息管理用户登录系统进入客户入住信息管理的界面,对客户退房事物进行操作,包括客房的查询、结账退房、增加床位、增加消费、消费明细查询。客户入住信息管理的界面如下图4-8所示。4.4后台事务管理管理员用户在成功登陆之后进行后台事物的处理,具体的事物包括房间信息管理、楼层信息管理、房间状态信息管理、房间类型信息管理、客户类型信息管理和用户管理等操作。下面对各个后台事物进行详细的介绍。4.4.1房间信息管理房间信息管理的界面共有五个功能,包括添加、删除、修改、保存和退出。如下图4-7所示。图4-7房间信息管理界面(1)添加点击‘添加’之后,可以添加房间信息,能添加的信息包括房间号、价格、房间类型、房间状态、楼层、加床和备注。添加完之后点击保存,会把添加的信息保存到后台数据库。点击取消之后会撤销刚才的操作。如下图4-8所示。图4-8添加界面(2)删除选中要删除的房间点击删除,系统会跳出删除提示,询问管理员是否要继续删除。点击‘是’则成功删除,点击‘否’则撤销刚才的操作。如下图4-9所示。图4-9删除界面(3)修改选中要修改的房间点击‘修改’,房间的信息会出现在界面的下面,管理员可以进行房间信息的修改。修改成功之后会用提示,如下图4-10所示。图4-10修改界面(4)退出用户想退出系统时,或者在操作完所有的操作之后点击即可退出,退出房间信息管理系统后界面回到主界面。4.4.2楼层信息管理楼层信息管理的界面共有五个功能,包括添加、删除、修改、保存和退出。如下图4-11所示。图4-11楼层信息管理界面添加点击‘添加’,会出现添加的信息,输入完之后点击保存,就可以把输入的信息保存。如下图4-12所示。图4-12添加界面(2)删除当楼层信息不要是会从数据库中删除,选中删除的楼层点击删除,会出现图4-13的界面。点击‘是’则成功删除,点击‘否’则撤销刚才的操作。如下图4-13所示。图4-13删除界面(3)修改选中要修改的楼层点击‘修改’,楼层的信息会出现在界面的下面,管理员可以进行楼层信息的修改。修改成功之后会用提示,如下图4-14所示。图4-14修改界面(4)退出操作完上述所有的操作之后点击‘退出’之后会关闭楼层信息管理界面,回到管理员操作的主界面。4.4.3房间状态信息管理房间状态管理的界面共有五个功能,包括添加、删除、修改、保存和退出。如下图4-15所示。图4-15房间状态界面添加房间状态的添加,点击添加,输入添加的楼层信息,选择保存即可完成添加操作。如下图4-16所示。图4-16添加界面(2)删除选中要删除的房间状态点击删除,系统会跳出删除提示,询问管理员是否要继续删除。点击‘是’则成功删除,点击‘否’则撤销刚才的操作。如下图4-17所示。图4-17删除界面(3)修改选中要修改的房间状态点击‘修改’,房间状态的信息会出现在界面的下面,管理员可以进行房间状态信息的修改。修改成功之后会用提示,如下图4-18所示图4-18修改界面(4)退出操作完上述所有的操作之后点击‘退出’之后会关闭房间状态管理界面,回到管理员操作的主界面。4.4.4房间类型信息管理房间类型管理包括客房类型的添加和房间类型的修改。操作界面如下图4-19所示。图4-19房间类型信息管理界面(1)客房类型客房类型的添加包括客房类型和加床价格,修改完之后点击‘保存’之后保存修改的信息,点击‘重置’所有的信息归空。(2)房间类型管理房间类型信息修改包括客房类型和加床价格,更新完之后点击‘保存’,则保存更新的信息。4.4.5客户类型信息管理客户类型管理的界面共有五个功能,包括添加、删除、修改、保存和退出。如下图4-20所示。图4-20客户类型管理界面(1)添加点击‘添加’,会出现添加的信息,输入完之后点击保存,就可以把输入的信息保存。如下图4-21所示。图4-21添加界面(2)删除选中要删除的客户类型点击删除,系统会跳出删除提示,询问管理员是否要继续删除。点击‘是’则成功删除,点击‘否’则撤销刚才的操作。如下图4-22所示。图4-22删除界面(3)修改选中要修改的客户类型点击‘修改’,客户类型的信息会出现在界面的下面,管理员可以进行房间状态信息的修改。修改成功之后会用提示,如下图4-23所示。图4-23修改界面(4)退出操作完上述所有的操作之后点击‘退出’之后会关闭客户类型管理界面,回到管理员操作的主界面。4.4.6用户管理客户类型管理的界面共有四个功能,包括修改密码、修改用户角色、添加用户和删除用户。(1)修改密码管理员可以修改自己密码,输入原始密码再输入要修改的密码,再次确认密码,点击‘确认’完成修改。修改界面如下图4-24所示。图4-24修改密码界面(2)修改用户角色选中要修改的用户,更改用户名和用户角色,点击确认完成修改。修改用户角色如下图4-25所示。图4-25用户角色修改界面(3)添加用户添加用户名、密码、确认密码和选择用户角色,添加用户界面如下图4-26所示。图4-26添加用户界面(4)删除用户用户离开公司之后管理员应该删除该用户,选中删除,点击确定,用户会被删除,点击撤销,撤销当前的操作。删除用户界面如下图4-27所示。图4-27删除用户界面5系统测试5.1测试的目标到现在为止系统的开发己经接近尾声,系统测试是不可或缺的一个重要环节。测试是为了发现程序中的错误而执行程序的过程。虽然在开发中我们尽量的避免出现错误,但是难免还是会出现意外。系统测试占用的时间、花费的人力和成本占软件开发的很人比例。在软件测试阶段,测试人员设计出一系列的测试方案,目的却是为了“破坏”己经建立好的软件系统一竭力证明程序中有错误,不能按照预定要求正确工作。暴露问题并不是软件测试的最终目的,发现问题是为了解决问题,测试阶段的根木目标是尽可能多地发现并排除软件发潜藏的错误,最终把一个高质尼的软件系统交给川户使用。但是,仅就测试本身而言,它的口标可能和许多人原来设想的很不相同。5.2测试方法测试任何产品都有两种方法:如果已经知道了产品应该具有的功能,可以通过测试检验是否每个功能都能正常的使用:如果知道产品的内部工作过程,可以通过测试来检验产品内部动作是否按照规格说明书的规定来正常进行。可以用人工测试和计算机测试这样两种不同类型的测试方法,完成单元测试工作。(1)模块测试在这个测试中,主要是分为了两个模块进行的测试,即:前台用户模块测试和后台用户模块测试。在设计得好的软件系统中,每个模块完成一个清晰定义的子功能而且这个子功能和同级其他模块之间没有相互依赖关系。因此,有可能把每个模块作为一个单独的实体来测试,而且通常比较容易设计检验模块正确的测试方案。模块测试的日的是保证每个模块作为一个单位能正确运行,所以模块测试通常义称为单元测试。在这个步骤中所发现的往往是编程和详细设计的错误。(2)平行测试关系重大的软件产品在验收之后往往并不立即投入生产性运动,而是要再经过一段平行运行时间的考验。所谓平行运行就是同时运行新开发出来的系统和将被它取代的旧系统,以便比较新旧两个系统的处理结果。这样的具体目的有如卜几点。(l)可以在准生产环境中运行新系统而又不冒风险。(2)用少”能有一段熟悉新系统的时间。(3)可以验证用户指南和使用手册之类的文档。(4)能够在准生产模式对新系统进行全负荷的测试,可以用测试结果验证性能指标。5.3系统测试比较常见的、典型的系统测试包括恢复测试、安全测试、压力测试。机器测试包括黑盒测试和自盒测试两种。下面对系统测试进行详细的介绍。5.3.1用户登录测试(1)普通用户对于普通用户系统一开始给分配的用户名叫legend,密码是888。如果用户名或密码输入错误系统会给出提示。用户名和密码都正确时会登录到用户界面。登录界面如下图5-1、5-2所示。图5-1密码错误界面图5-2用户名错误界面(2)管理员用户对于管理员用户系统一开始给分配的用户名叫rohn,密码是888。如果用户名或密码输入错误系统会给出提示。用户名和密码都正确时会登录到用户界面。因为错误时的提醒与普通用户相同在这就不做赘述。5.3.2房间信息管理测试在登录成功之后,房间信息的操作包括增、删、改、查四个操作。房间信息管理的测试结果如下图5-3所示。图5-3房间信息管理测试界面5.3.3楼层信息管理测试在登录成功之后,楼层信息的操作包括增、删、改、查四个操作。楼层信息管理的测试结果如下图5-4所示。图5-4楼层信息管理测试界面5.3.4房间状态信息管理测试在登录成功之后,房间状态信息的操作包括增、删、改、查四个操作。房间状态管理的测试结果如下图5-5所示。图5-5房间状态管理测试界面5.3.5房间类型管理测试房间类型测试主要是房间类型的添加和房间类型的修改。房间类型管理的测试如下图5-6所示。图5-6房间类型管理测试界面5.3.6客户类型管理在登录成功之后,客户类型信息的操作包括增、删、改、查四个操作。客户类型管理的测试结果如下图5-7所示。图5-7客户类型管理测试界面5.3.7用户管理测试在这里有用户密码修改的测试、用户角色修改的测试、用户增加的测试和用户删除的测试、下面对各个测试分别详细介绍。(1)用户密码修改测试图5-8用户密码修改测试界面(2)用户角色修改测试图5-9用户角色修改测试界面(3)增加用户测试图5-10增加用户测试界面(4)删除用户测试图5-11删除用户测试界面5.3.8房间入住信息管理在房间入住信息管理界面我们要进行的测试有房间查询测试、客房状态测试和客户办理入住测试,因为开发是将这三个功能做到了一起,所以我们将一起进行三个测试,具体如5-12,5-13,5-14图所示。图5-10房间入住信息管理测试界面 图5-13入住人数选择测试界面图5-14客户入住户测试界面5.3.9客户入住信息管理界面在这里我们主要进行的测试是客户退房的测试,下面如图5-15所示对退房的具体操作做详细介绍和测试。图5-15客户结算测试界面结论木次做的是钻石酒店管理系统,每次的设计都是一次学习的过程,通过做这个酒店管理系统得到了做小型系统的经验,并且对C#语言和SQLServe数据库有了进一步的了解。到现在为止本系统的所有功能都已基本实现,也对每个功能模块做了比较详尽的描述和讲解,力求这个系统达到一开始的要求,达到操作简单,界面友好,信息安个,性能可靠,减少手工操作的繁琐与误差,从而提高酒店的服务质理.赴,获得更多的利益的日标。可能由于一些客观原因的限制,不能对每个方面做到尽善尽美。这次的毕业设计经历了将近两个月的时间,真正的了解了编程,接触了一个系统的设计、实现和实施的侮个步骤。这次也是对软件工程一次实践和验证。这次的设计从一开始需求分析、数据库的设计和系统实现,一直到最后的系统的测试,在以前是没有过的。所以这次的设计是大学里很宝贵的一次实践,在这次的毕业设计中我暴露出了很多的问题,这也让我有了今后学习的明确目标。在一开始的时候什么也不知道,不知道怎么去做。感觉自己不能很好的把我这个系统,和同学们通论过几次,自己卜网查询有关的资料,最后确定选用C/S架构来做这个系统。确定了自己的思路之后,我开始配置软件环境,开始始的时候用的是SQLserve2012和VisualStudio2010,但是版本问题两者是不兼容的,后来我改用sQLServe2008和VisualStudio2010,完美的解决了版本的问题。因为是第一次自己做这种系统,难免的会有疏漏,一开始系统不稳定还有许多的不完善的地方。或许也正是通过这次的毕业设计中让我看到了自己的许多的不足之处。这次也让我对软件工程这门课程有了全新的认识,这时才认识到这门课是十分有用的。这有有了整体的设计之后才能考虑细节的设计,反过来往往会使系统风格不一样,前后发生冲突。纸上得来终觉浅。这次深深的体会了这句话。以前学习的时候总以为自己都学得很好了,真正到了用的时候总是在出错。另外就是设计的再好也会有漏洞,并且设计是不可能一次就做完的,在这次的毕业设中,我前前后后做了很多次的设计修改,程序也是修修改改。这次毕业设计,我能够让我把知识系统的用在具体设计中,使我对本专业更加深入了解。我为在工作中,去解决实际问题有很大帮助。致谢经过一段时间的文献查重和资料的收集,进行论文的写作,经过多次修改和反复文字组织,今天论文写作完成。虽然,整个写作过程是琐碎和枯燥的工作,但我会对每一个细节,每一个措辞去认真揣摩,我本以为很容易写作,却没想到过程是如此难。幸亏有指导老师和学习中心的老师帮忙,我才得以顺利完成,借此机会对我论文写作提供帮助的人,表达我深深的感谢。老师认真负责的态度和严谨细致的作风深深打动了我。在未来,无论生活还是工作中,必须保持积极的心态,以及乐观的态度和永不放弃决心;同时,和中心老师、同学经常沟通,增加友谊和理解。在写作的过程中,我非常感谢所有朋友对我的帮助和关心!参考文献[1]姚晓蕾.酒店管理系统的设计与实现[D].吉林大学.[2]佟焕然.酒店管理系统的设计与实现[D].2005.[3]尹林胜.酒店管理系统设计与实现[J].电子测试,2016,000(011):165-165.[4]魏峥.基于C#的酒店管理系统的实现[J].科协论坛,2009,000(006):59-60.[5]邓佩.使用C#如何实现酒店餐饮业务管理系统的设计[J].中小企业管理与科技(31期):294-295.[6]白雪峰,贺春林.酒店餐饮管理系统的设计与实现[J].电脑知识与技术,2010(06):1281-1282.[7]维埃拉,R.).SQLServer2008高级程序设计[M].清华大学出版社,2010.[8]郭郑州SQLServer2008完全学习手册[M].清华大学出版社,2011.[9]王晟.VisualC#.NET数据库开发经典案例解析[M].清华大学出版社.2005.[10]王小科.C#项目开发案例全程实录(第二版)[M].清华大学出版社.2011.附录数据库操作类SqlComposeusingSystem;usingSystem.Collections;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Web;usingSystem.Data.SqlClient;usingSystem.Data;publicclassSqlCompose{#region构造函数///<summary>///构造函数///</summary>///<paramname="connStr"></param>publicSqlCompose(){this.connStr="Server=localhost;DataBase=yourdatabasename;userid=youruserid;password=yourpassword";}#endregion#region变量//数据库连接对象privateSqlConnection_connection=null;//数据库连接字符串privatestringconnStr=string.Empty;#endregion#region属性///<summary>///数据库连接对象///</summary>privateSqlConnectionConnnection{get{if(this._connection==null||this._connection.State==ConnectionState.Broken||this._connection.State==ConnectionState.Closed){this._connection=newSqlConnection(connStr);}returnthis._connection;}}#endregion#region方法#regionBuildQueryCommand///<summary>///创建Command对象///</summary>///<paramname="sqlOrprocedureName">sql语句或存储过程名称</param>///<paramname="isProcedure">是否是存储过程</param>///<paramname="inParameters">输入参数集合</param>///<paramname="outParameters">输出参数集合</param>///<returns></returns>publicSqlCommandBuildQueryCommand(stringsqlOrprocedureName,boolisProcedure,object[]inParameters,object[]outParameters){SqlCommandcommand=newSqlCommand(sqlOrprocedureName,this.Connnection);command.CommandType=isProcedure?CommandType.StoredProcedure:CommandType.Text;if(isProcedure&&((inParameters!=null&&inParameters.Length>0)||(outParameters!=null&&outParameters.Length>0))){//获取存储过程参数,获取参数顺序为,存储过程执行返回值ReturnValue>输入参数Input>输入输出参数InputOutput>输出参数Output。//其中Output为纯输出参数,不用传参,但sqlserver存储过程里定义的输出参数,在C#中一般为InputOutput类型,除非存储过程中定义的是返回值而非输出参数。command.Connection.Open();SqlCommandBuilder.DeriveParameters(command);command.Connection.Close();try{//存储过程参数赋值for(inti=1;i<command.Parameters.Count;i++){if(inParameters!=null&&inParameters.Length>0&&i<=inParameters.Length){command.Parameters[i].Value=inParameters[i-1];}elseif(outParameters!=null&&outParameters.Length>0){command.Parameters[i].Value=outParameters[i-(inParameters==null?0:inParameters.Length)-1];}}}catch{thrownewException("传入的存储过程参数个数与存储过程实际参数个数不符");}}returncommand;}#endregion#regionExecuteSqlQuery///<summary>///执行SQL查询///</summary>///<paramname="sql">sql语句</param>///<returns></returns>publicDataSetExecuteSqlQuery(stringsql){SqlDataAdapteroladpt=newSqlDataAdapter(this.BuildQueryCommand(sql,false,null,null));DataSetdsData=newDataSet();oladpt.Fill(dsData);returndsData;}#endregion#regionExecuteSqlNonQuery///<summary>///执行无返回的SQL语句,如插入、更新///</summary>///<paramname="sql">sql语句</param>///<returns></returns>publicboolExecuteSqlNonQuery(stringsql){SqlCommandcommand=this.BuildQueryCommand(sql,false,null,null);command.Connection.Open();using(SqlTransactiontrans=command.Connection.BeginTransaction()){try{command.Transaction=trans;intresult=command.ExecuteNonQuery();trans.Commit();returnresult>0?true:false;}catch(Exceptionex){trans.Rollback();throwex;}finally{command.Connection.Close();}}}#endregion#regionExecuteSqlNonQuery///<summary>///执行无返回的SQL语句,如插入、更新///</summary>///<paramname="strSqlList">sql语句列表</param>///<returns></returns>publicboolExecuteSqlNonQuery(ArrayListstrSqlList){SqlCommandcommand=this.BuildQueryCommand(null,false,null,null);command.Connection.Open();using(SqlTransactiontrans=command.Connection.BeginTransaction()){try{command.Transaction=trans;for(inti=0;i<strSqlList.Count;i++){command.CommandText=strSqlList[i].ToString();command.ExecuteNonQuery();}trans.Commit();returntrue;}catch(Exceptionex){trans.Rollback();throwex;}finally{command.Connection.Close();}}}#endregion#regionExecuteSqlScalar///<summary>///返回SQL的首行数据///</summary>///<paramname="sql">sql语句</param>///<returns></returns>publicstringExecuteSqlScalar(stringsql){SqlCommandcommand=this.BuildQueryCommand(sql,false,null,null);command.Connection.Open();using(SqlTransactiontrans=command.Connection.BeginTransaction()){try{command.Transaction=trans;stringresult=command.ExecuteScalar().ToString();trans.Commit();returnresult;}catch(Exceptionex){trans.Rollback();throwex;}finally{command.Connection.Close();}}}#endregion#regionExecuteProcedureQuery///<summary>///执行有返回结果集的存储过程///</summary>///<paramname="procedureName">存储过程名</param>///<paramname="inPutParameters">输入参数集合</param>///<returns></returns>publicDataSetExecuteProcedureQuery(stringprocedureName,object[]inPutParameters){SqlDataAdapteroladpt=newSqlDataAdapter(this.BuildQueryCommand(procedureName,true,inPutParameters,null));DataSetresult=newDataSet();oladpt.Fill(result);returnresult;}#endregion#regionExecuteProcedureQuery///<summary>///执行有返回结果集的存储过程///</summary>///<paramname="procedureName">存储过程名</param>///<returns></returns>publicDataSetExecuteProcedureQuery(stringprocedureName){returnthis.ExecuteProcedureQuery(procedureName,null);}#endregion#regionExecuteProcedureNonQuery///<summary>///执行无返回结果集的存储过程///</summary>///<paramname="procedureName">存储过程名称</param>///<paramname="inPutParameters">输入参数集合</param>///<returns></returns>publicboolExecuteProcedureNonQuery(stringprocedureName,object[]inPutParameters){SqlCommandcommand=this.BuildQueryCommand(procedureName,true,inPutParameters,null);command.Connection.Open();using(SqlTransactiontrans=command.Connection.BeginTransaction()){try{command.Transaction=trans;command.ExecuteNonQuery();trans.Commit();returntrue;}catch(Exceptionex){trans.Rollback();throwex;}finally{command.Connection.Close();}}}#endregion#regionExecuteProcedureNonQuery///<summary>///执行无返回结果集的存储过程///</summary>///<paramname="procedureName">存储过程名</param>///<returns></returns>publicboolExecuteProcedureNonQuery(stringprocedureName){returnthis.ExecuteProcedureNonQuery(procedureName,null);}#endregion#regionExecuteProcedureScalar///<summary>///执行存储过程返回首行数据///</summary>///<paramname="procedureName">存储过程名</param>///<paramname="inPutParameters">输入参数集合</param>///<returns></returns>publicstringExecuteProcedureScalar(stringprocedureName,object[]inPutParameters){SqlCommandcommand=this.BuildQueryCommand(procedureName,true,inPutParameters,null);command.Connection.Open();using(SqlTransactiontrans=command.Connection.BeginTransaction()){try{command.Transaction=trans;stringresult=command.ExecuteScalar().ToString();trans.Commit();returnresult;}catch(Exceptionex){trans.Rollback();throwex;}finally{command.Connection.Close();}}}#endregion#regionExecuteProcedureScalar///<summary>///执行存储过程返回首行数据///</summary>///<paramname="procedureName">存储过程名</param>///<returns></returns>publicstringExecuteProcedureScalar(stringprocedureName){returnthis.ExecuteProcedureScalar(procedureName,null);}#endregion#regionExecuteProcedureOutPut///<summary>///执行存储过程返回输出参数///</summary>///<paramname="procedureName">存储过程名称</param>///<paramname="inPutParameters">输入参数集合</param>///<paramname="outPutParameters">输出参数集合</param>///<returns></returns>publicboolExecuteProcedureOutPut(stringprocedureName,object[]inPutParameters,refobject[]outPutParameters){SqlCommandcommand=this.BuildQueryCommand(procedureName,true,inPutParameters,outPutParameters);command.Connection.Open();using(SqlTransactiontrans=command.Connection.BeginTransaction()){try{command.Transaction=trans;command.ExecuteNonQuery();trans.Commit();if(outPutParame
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 楼房门窗、百叶制作安装工程技术标
- 定位与测量放线施工方案
- III-IV度会阴裂伤管理指南
- 防范金融风险专题宣传活动方案
- 反违章知识竞赛试题及答案(100题)
- 发展数字+餐饮实施方案
- 个人财务规划案例
- 遗嘱扶养合同协议书模板
- 新华人寿附加华丰 A 款意外伤害团体医疗保险条款
- 试论建筑工程管理的影响因素与对策
- 2026中国商用飞机公司招聘面试题库
- 4.1《致敬劳动者》课件 统编版道德与法治三年级下册
- 中考总复习数学100道基础题三大专题
- OpenClaw专题学习培训
- 融媒体新闻学课件
- 西安地产项目产品定位报告
- 杭州桐庐足球训练基地给排水工程监理细则
- DB13T 5448.11-2021 工业取水定额第11部分:食品行业
- 危大巡视检查记录表(深基坑)
- 材料调差自动计算表EXCEL
- 第五章---挤出成型
评论
0/150
提交评论