还剩42页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
目录TOC\o1-3\h\z\u1第一章前言
11.1项目背景
11.2项目研究意义及必要性1第二章系统开发工具和关键技术
22.1开发工具介绍
22.
1.1VB.NET简介
22.
1.2SQLServer2000简介
32.2ADO.NET数据库访问技术
32.3ADO.NET对象的使用
32.
3.1Connection对象
32.
3.2Command对象
42.
3.3DataSet对象4第三章系统可行性分析
43.1技术可行性
43.2经济可行性
43.3操作可行性5第四章系统需求分析
54.1系统功能需求
54.2用户界面需求
64.3安全和可靠性需求
64.4系统数据和计算规则
64.
4.1数据精确度要求
64.
4.2时间特性要求
74.
4.3客房宿费的计算方法
74.
4.4更换房间规则
74.
4.5单据编号设定规则8第五章系统总体设计
85.1系统功能结构
85.
1.1客房预订模块
95.
1.2登记入住模块
105.
1.3更换客房模块
105.
1.4信息查询模块
105.
1.5消费记账模块
105.
1.6退房结账模块
105.
1.7营业情况统计模块
105.
1.8客房信息设置模块
115.
1.9商品信息设置模块
115.
1.10房态管理模块
115.
1.11用户管理模块
115.
1.12数据库维护模块
115.
1.13系统日志模块
115.2系统流程图12第六章数据库设计
136.1数据库需求分析
136.2概念结构设计
146.3逻辑结构设计
176.4创建触发器21第七章系统详细设计与实现
217.1公共数据模块设计
217.2系统窗体构架
237.3系统界面设计
247.
3.1登录窗体设计
247.
3.2系统主界面设计
267.
3.3登记入住窗体设计
287.
3.4退房结账窗体设计
307.
3.5数据库维护窗体设计33第八章系统测试与使用说明
358.1系统测试与运行
358.
1.1对于登记入住模块的测试
358.
1.2对于消费记账模块的测试
378.
1.3对于客房信息设置模块的测试
378.2系统运行平台
388.3系统使用说明38结束语39致谢39参考文献40小型酒店管理系统摘要本毕业设计是一个针对中小型酒店业务经营和管理的特点开发的管理信息系统,全称小型酒店管理系统系统的设计目标是实现酒店经营管理的信息化和自动化,解决小型酒店客人入住登记、客房预订、顾客消费、退房结账等酒店日常业务中的主要问题本文简要介绍了项目背景和意义,着重阐述了系统开发实现过程,对系统需求分析、功能结构及数据库设计等方面都进行了详尽的分析和描述关键词小型酒店管理系统;VB.NET;SQLServer2000;ADO.NET第一章前言
1.1项目背景随着计算机和信息技术的飞速发展,传统的工作模式逐渐被信息化、网络化的现代工作模式所代替,在酒店管理业务方面亦是如此传统的酒店管理往往令管理者花大量的人力和物力以满足各种繁琐的经营活动的需要,例如冗长的登记和结账手续、手工记录所有客房状态、列表统计顾客消费情况等这种工作模式不但效率低下,且极易出现错误和遗漏,有时甚至会导致严重的经济损失,给酒店的经营带来负面影响正是在这样一种背景下,新的酒店管理模式应运而生,即采用先进的计算机和软件技术来实现酒店业务的信息化管理从客房的营销即客人的预订登记开始,到入住之后的各种消费直至最后退房结账,整个过程以顾客为中心,利用计算机简化各种复杂操作,在最合理最短时间内完成酒店业务的规范操作,这样才能令顾客得到优质的服务,增加顾客的回头率虽然信息化并不是酒店走向成功的关键元素,但它可以帮助那些真正影响成败的要素发挥更大的效用因此,采用全新的计算机管理系统,将成为提高酒店的管理效率,改善服务水准的重要手段之一
1.2项目研究意义及必要性酒店作为高层次的服务行业之一,最重要的就是要做到优质服务服务的安排、调度是否周到,客人的要求是否能迅速地得到满足,都直接影响到酒店的形象和声誉借助计算机技术来进行信息管理,并配合现代化的酒店管理经验和模式,可以极大地提高酒店的服务质量,获得更好的经济效益酒店信息化管理已成为酒店现代科学管理的重要内容,是酒店经营中必不可缺少的现代科学工具由此可见,一个好的酒店管理系统应该达到以下几个目标
1.提高工作效率,减轻劳动强度在酒店的日常工作中,每天都要完成对营业信息进行更新统计,提供查询服务,结算账单等大量的业务,用手工方式进行的话,不仅速度慢,需要的人手多,且出错的概率也大,而计算机管理则可以大大提高业务运作的速度和准确性,实现营业管理自动化
2.提高了酒店经济效益,增加营业收入完善的客房管理功能可防止有房不能出租或房间重订的情况出现,随时提供准确和最新的房态信息,从而可提高工作效率和客房出租率客人费用的一次性结账,不仅减少了票据传送,而且避免了管理上的混乱,更主要的是有效地防止逃帐的发生
3.提高了服务质量,可以为客人提供快捷、细致、周到的服务操作人员只需敲击键盘,就可以办理客人入住、查询信息、结账等各项手续,并准确无误地记录客人的每笔消费记录,大大缩短客人办理手续时的等候时间,提高了服务质量
4.信息透明,酒店营业情况一目了然,提高了经营者的决策水平经营者可以通过对酒店经营状况及历史数据的分析,做出相关的经营决策,并加强对饭店运营的内部控制,为酒店未来的发展提供理论依据第二章系统开发工具和关键技术
2.1开发工具介绍当今流行的系统开发工具有VisualBasic、VisualC++、Delphi、PowerBuilder和最新的基于.NET平台的VisualStudio.NET等综合权衡自己对于各种工具的熟练程度以及它们的优缺点后,决定采用VisualStudio2005集成开发环境中的VisualBasic.NET语言开发本系统,后台数据库则采用SQLServer2000开发下面就针对VisualBasic.NET和SQLServer2000做一些简要介绍
2.
1.1VB.NET简介VisualBasic.NET是集成在VisualStudio中的一个强大的开发工具,它以.NET为框架对VisualBasic进行了非常大的改进VB.NET继承了VB
6.0简单、易学、易用的特点,同时增加了新的组件、修改了以前的集成开发环境界面,给开发人员带来更多的新鲜、有用的东西,它本身自带的各种函数和方法可以帮助我们快速和有效的实现系统功能的开发,从而大大减轻工作负担如果有VB和VC的基础,将极大地加快VB.NET上手的速度,而且理解其中一些较深层次的内容也更容易
2.
1.2SQLServer2000简介MicrosoftSQLServer2000建立于WindowsNT的可伸缩性和可管理性之上,提供了功能强大的客户服务器平台它可以在许多环境,包括两级或多级客户/服务器数据库系统中有效的工作服务器端负责创建和维护表和索引等数据库对象,维护数据的完整性和安全性,确保在出现某种错误时能够恢复操作用户可以很好的使用客户端系统从服务器检索信息并进行本地操作,服务器关注数据库进程,而用户则关注信息的表示
2.2ADO.NET数据库访问技术ADO.NET是对MicrosoftActiveXDataObjectsADO一个跨时代的改进,它提供了平台互用性和可伸缩的数据访问ADO.NET是新的数据存储对象结构,它是.NET框架中的数据库访问模型,主要涉及到System.Data、System.Data.SqlClient和System.Data.OleDb三个命名空间的类ADO.NET体系结构中的对象可以分为两组包含在.NET数据提供程序(DataProvider)中的组件和属于ADO.NET断开连接体系结构的对象,如图2-1所示图2-1ADO.NET体系结构从图中可以看出,ADO.NET的一个组成部分是左边的.NET数据提供程序,其组件的设计目的是为了实现对数据的快速的、只向前的和只读的访问
2.3ADO.NET对象的使用
2.
3.1Connection对象ADO.NET控件若要在数据存储区和应用程序之间传递数据,必须首先建立到该数据存储区的连接在ADO.NET中,可以使用以下方式创建连接DimmyConnAsSqlConnection=NewSqlConnection“Server=localhost;Database=HMIS;userID=sa;Password=;”
2.
3.2Command对象Command对象可以执行SQL命令、传递系统参数以及取得数据结果等,ADO.NET的Command对象分为DataSetCommand和CommandDataSetCommand的主要目的是产生DataSet,它的结构相对来说比较复杂,如果用户需要将数据批次写回数据库,可以使用DataSetCommand提供的Update方法
2.
3.3DataSet对象DataSet是一种新的对象模型,是一个容器类,是ADO.NET断开式结构的核心控件,它将数据库中的数据检索到内存中,代表一个或者多个数据库表中的数据的非连接视图建立好DataSet对象后,可以调用数据适配器的Fill方法从数据库中将数据读入到数据集中方法如下DataAdapter对象.Fill(DataSet)或使用如下形式DataAdapter对象.FillDataSetTableName以上语句用于用给定的表中的记录填充DataSet,TableName是指从源表映射到DataSet中表的名字第三章系统可行性分析
3.1技术可行性开发一个小型的酒店管理系统,所涉及到的技术问题不会太多,主要用到的工具就是数据库管理系统和一门可视化开发的编程语言MicrosoftSQLServer2000在安全性、准确性、运行速度方面有绝对的优势,并且处理数据库量大,效率高;而本系统采用的前台开发工具VisualStudio2005集成开发环境中的VB.NET语言自身所提供的各种控件、函数及方法完全可以帮助我们完成系统的开发在实际的开发过程和应用中,数据库和应用程序均在同一计算机上运行数据库中储存了所需要被处理的数据,并由SQLServer2000数据库管理系统对其进行集中管理,应用程序由VisualStudio2005集成开发环境中的VB.NET编程语言进行开发只要先启动服务器,系统即可运行,这为系统的调试工作带来了便利
3.2经济可行性小型酒店管理系统从开发、使用到维护所需要的费用都十分的低廉,且在软硬件方面的要求都不是很高,而收益去非常的巨大,对于小型的酒店宾馆来说,不但不会增加营业成本,反而能够提高自身的管理效率,创造更多的经济利益
3.3操作可行性本系统采用界面化设计,简单易用,各项数据都用表格形式显示出来,酒店营业情况一目了然并且提供了大量的操作提示以及出错信息,大大的方便用户的使用,同时也减少了出错的可能,确保了数据的正确性、完整性和一致性第四章系统需求分析
4.1系统功能需求本系统的总目标是利用计算机强大的数据处理和存储能力,为用户提供快捷、高效的服务,减免手工处理的繁琐与误差,及时、准确地反映酒店的工作和经营情况,从而提高酒店的服务质量,获得更好的经济效益众所周知,客房业务是中小型酒店日常业务中的核心部分,而商品消费也是酒店利润的重要来源只有将这两者完美的融入到计算机管理系统中去,才能说是实现了酒店业务的信息化管理如图4-1所示,从顾客入店登记开始,到顾客在店期间的商品消费和住宿费用的计算,最后到收银结账办理离店手续,它展示了酒店经营活动的一次完整的业务流程这也就是一个小型酒店管理系统应该具备的基本功能因此,本系统的功能需求应包括
1.实现客房预订、登记入住,更换房间以及退房结账等客房营销功能;
2.实现房态信息的实时查询、更新;
3.准确记录顾客在店期间的消费情况;
4.实现住宿费用和商品消费的一次性结账处理功能;
5.实现快速准确的顾客信息查询功能;
6.实现酒店经营状况的统计;
7.实现系统数据库维护功能,能够对数据库进行备份和还原操作;
8.实现账号验证功能,只有拥有合法账号的用户才能进入并使用本系统图4-1一般酒店业务流程图
4.2用户界面需求本系统的用户一般为酒店的管理和销售人员,除了从功能上满足他们的需求外,还应考虑到系统界面设计、功能设置等方面是否适应他们的习惯和工作方式系统界面应采用Windows窗体风格和命令按钮化设计,按用户的习惯制定操作提示和出错信息,使得操作人员不需要经过专门的培训就能够快速的掌握操作方法
4.3安全和可靠性需求作为直接参与经营管理的软件,数据的安全性尤为重要本系统必须采取一系列的措施,加强数据的安全保密性,如建立账号验证制度,实现用户身份的多重验证功能同时还应对合法用户的权限进行严格的控制,一般的酒店服务人员(普通用户)只能进行一般性的营业功能操作,而那些重要的营业及系统数据只有酒店管理人员(超级用户)才能查看和更新更重要的是,它还应具备数据库的备份和还原功能,以便系统出现故障或数据遭到破坏时能够及时恢复,把损失降到最低另外,本系统应能够在酒店营业时间里连续运行,且在负荷较大的情况下仍能高效的完成任务对于所输入的信息应具备一定的识别和检查能力,不会因信息输入错误和不完整造成系统的故障
4.4系统数据和计算规则
4.
4.1数据精确度要求由于本系统只应用于一般性的营业操作,对数据精确度的要求不是太高,主要涉及的还是营业中各种费用的计算,对于金额、价格、总额这些涉及货币的数据要求精确到小数点后两位即可
4.
4.2时间特性要求在时间特性方面,要求在登记入住、客房预订、收银结账等功能上要有便捷的操作方式,应尽量缩短顾客的等待时间日期数据应记录年、月、日、时、分、秒在某些信息查询功能中对于相关时间的查询只需要指定到某一天即可
4.
4.3客房宿费的计算方法在宿费的计算方法上,根据实际情况,设置为如下方法如果是“钟点房”,计算时间差以小时为单位否则,计算时间差以天数为单位,计算公式如下钟点房费用=房价×小时数;住宿费用=房价×天数如果客人退房时间在住宿当天,可以按如下算法退房结账时间早于18:00,那么住宿天数为
0.5天;退房结账时间超过18:00,那么住宿天数为1天如图4-2所示图4-2住宿费用计算方法图另外,在退房结账模块内,还存在如下费用计算方法应收金额=住宿费用+消费金额;实收金额=应收金额-预收押金
4.
4.4更换房间规则由于客人的住宿习惯不一样,有些客人会在住宿过程中要求更换客房,例如客人要求换一间光线较好的客房或者空调房等等,这就要求本系统应该具备换房功能换房时应该注意的问题是为减少住宿费用计算的麻烦,顾客只能更换同类房间,且房价不变换房之后,应该对原客房、目标客房的状态进行调整
4.
4.5单据编号设定规则在本系统中,入住单号、预订单号及结账单号的生成方法如下单据编号=“单据名称首字母组合”+“当天日期”+“当天入住顾客人数+1”例如在2007-4-13,某客户是这一天第三个登记入住,则入住单号为RZ20070413003第五章系统总体设计
5.1系统功能结构通过系统需求分析可知,本系统可以分为以下若干个功能模块登记入住、客房预订、更换房间、退房结账、信息查询、消费记账、营业情况统计、商品信息设置、客房信息设置、用户管理、数据库维护和系统日志如图5-1所示图5-1系统功能模块结构图
5.
1.1客房预订模块客房预订模块可使顾客在抵店之前就登记好房间,待到达之后即可办理入住手续该模块需要完成的功能主要有
(1)输入预订信息主要包括预订单号、顾客姓名、顾客类型、顾客来源、公司名称、联系电话、预订房数、预订日期等;
(2)取消预订取消预订单,删除数据库中相应的记录;
(3)预订入住为已预订客房的顾客办理登记入住,同时删除相关的预订信息
(4)更新客房状态将顾客所预订客房的状态由“空闲”改为“预订”
5.
1.2登记入住模块登记入住模块实现顾客登记入住功能可快速完成顾客信息输入、选择房间(一次可选择多个房间)、收取押金等顾客入住手续该模块的功能主要有
(1)登记入住输入顾客开单信息,主要包括入住单号、主客姓名、证件类型、证件号码、性别、公司名称、联系电话、预收押金等;
(2)更新客房状态将顾客所入住客房的状态由“空闲”改为“入住”
5.
1.3更换房间模块用户可根据顾客的要求更换房间,但只能更换同类房间,且房价不变
5.
1.4信息查询模块在该模块中按设定条件查询店内相关信息,包括入住客人信息、历史客人信息、预订单信息以及顾客账单信息等,主要功能有
(1)查询客人信息包括入住客人信息、预订单信息和入住历史信息;
(2)查询结账单信息包括所有已结账顾客的账单信息
5.
1.5消费记账模块该模块记录顾客在店内的消费信息,包括餐饮、娱乐及零售商品的消费情况该模块需要完成的功能主要有
(1)添加顾客消费记录主要包括入住单号、商品名称、商品类型、购买价格、数量和消费金额;
(2)消费转单将消费记录由一个账单转到另一个账单上;
(3)消费退单即删除消费记录,取消商品交易
5.
1.6退房结账模块该模块实现顾客离店时的费用结算功能可以对顾客在店期间的住宿费用及商品消费一次性结账主要包含以下功能
(1)收银结账输入结账单信息,主要包括结账单号、入住单号、主客房间、顾客姓名、公司名称、住宿费用等同时将入住单相关记录转入入住历史中;
(2)可对特殊顾客进行免单操作,“免费”账单所有费用清零,结算状态标记为“免费”;
(3)更新客房状态将顾客结账客房的状态由“入住”改为“空闲”
5.
1.7营业状况统计模块该模块可查询指定时间段内的营业情况,包括客房收入、各种商品销售数量、总销售金额等,可为酒店管理人员的经营决策提供参考依据
5.
1.8客房信息设置模块该模块实现对酒店客房信息进行管理,设置客房名称、类型、数量等信息系统需要完成的功能主要有
(1)客房类型的输入、更新和删除,包括类型名称、客房价格和备注;
(2)客房信息的输入、更新和删除,包括客房编号、类型名称、客房位置、室内电话、客房状态、客房描述、单据编号、备注信息
5.
1.9商品信息设置模块该模块实现对商品信息的管理,设置商品类别和库存信息该模块的功能主要有
(1)商品类型的输入、更新和删除,包括类型编号、商品类型和是否需要服务生服务;
(2)商品信息的输入、更新和删除,包括商品编号、商品名称、商品类别、商品价格和商品库存数量
5.
1.10房态管理模块一般系统可自动管理客房状态,而在该模块中可查询或手动修改客房状态系统需要完成的功能主要有
(1)查看客房状态一般的客房状态包括空闲、预订、入住、自用、维修等;
(2)客房状态修改可手动将客房状态从一个状态转变为另一个状态
5.
1.11用户管理模块该模块实现用户信息管理,系统将用户分为超级用户和普通用户两级权限只有超级用户才能使用该模块,普通用户无此权限该模块主要完成添加、修改和删除用户信息的功能,包括用户名称、密码、用户权限和当前状态
5.
1.12数据库维护模块数据库的维护对于本系统至关重要,通过对于数据库的清理、备份和还原,既可使系统的维护工作更加简单易用,又可使系统能够更加安全可靠的运行其主要功能如下
(1)清除指定时间段内或所有营业数据,包括单据信息、消费记录和入住历史信息等;
(2)清空所有数据库表,即删除所有数据,包括客房信息;
(3)备份和还原数据库,将数据库备份到用户指定的路径或从指定的路径还原数据库
5.
1.13系统日志模块系统日志记录用户对于系统数据的添加、修改和删除操作,如客房信息设置、商品信息设置和房态设置等,而不记录用户一般性的营业操作,如登记入住、客房预订等
5.2系统流程图通过对系统功能的分析,可得到用户操作的一般流程,如图5-2所示用户登录系统时,系统将根据用户权限对其进行相应的功能限制一般普通用户可拥有前台登记、收银结账以及对商品和客房信息进行查询和设置的权限;而超级用户除拥有普通用户的所有权限外,还可进行系统用户设置、数据库维护和查看系统日志图5-2系统流程图第六章数据库设计
6.1数据库需求分析酒店管理系统需要提供信息的查询、添加、修改以及删除等功能这就要求数据库能充分满足各种信息的输出和输入通过对上述系统功能的分析,根据酒店管理系统的需求,总结出如下的需求信息
1.每个客房都有唯一的客房编号;
2.每个客房只属于一种已存在的客房类型,否则为空;
3.每种客房类型下可有多个房间;
4.如果一个客房类型下存在客房,则该类型不可删除;
5.每条入住单下可以有多个客房;
6.每条入住单下可以有多条消费记录;
7.每条消费记录只属于一条入住单;
8.每条入住单只生成一条结账单;
9.每条入住单只生成一条入住历史记录;
10.每个商品只属于一种已存在的商品类别,否则为空;
11.每种商品类别下可有多个商品;
12.如果一个商品类别下存在商品,则该类别不可删除;
13.一个商品可产生多条消费记录;
14.一条消费记录只对应一个商品经过对上述系统功能的分析和需求总结,设计如下数据项
1.客房信息客房编号、类型名称、客房位置、室内电话、客房状态、客房描述、据编号、备注信息
2.客房类型类型名称、客房价格、备注
3.商品信息商品编号、商品名称、商品类别、商品价格、库存数量、进货标记
4.商品类别类别编号、商品类别、是否需要服务生服务
5.消费记录记录编号、入住单号、商品名称、商品类别、购买价格、购买数量、消费金额、购买日期
6.入住单入住单号、顾客姓名、顾客类型、顾客来源、证件类型、证件号码、性别、公司名称、联系电话、顾客人数、主房编号、类型名称、客房价格、入住价格、折扣比例、预收金额、抵店时间、预住天数、备注
7.预订单预订单号、顾客姓名、顾客类型、顾客来源、公司名称、联系电话、预订房数、预订日期、预抵时间、保留时间、备注
8.结账单结账单号、入住单号、顾客姓名、公司名称、客房编号、抵店时间、离店时间、住宿费用、消费金额、应收金额、预收金额、实收金额、结算状态、是否开票、备注信息
9.入住历史入住单号、顾客姓名、性别、顾客类型、顾客来源、顾客人数、证件类型、证件号码、公司名称、联系电话、主房编号、类型名称、客房价格、入住价格、折扣比例、预收金额、抵店时间、备注信息、离店时间
6.2概念结构设计概念设计用于信息世界的建模,是现实世界到信息世界的第一层抽象一般采用实体-联系方法即E-R图根据数据库需求分析规划出的实体有客房类型实体、客房信息实体、商品信息类别实体、商品实体、消费记录实体、入住单实体、预订单实体、结账单实体和入住历史实体等各个实体具体的实体属性图如下图6-1客房类型实体属性图图6-2客房信息实体属性图图6-3商品类别实体属性图图6-4商品信息实体属性图图6-5消费记录实体属性图图6-6入住单实体属性图在入住单实体中主要包括以下属性入住单号、顾客姓名、顾客类型、顾客来源、证件类型、证件号码、性别、公司名称、联系电话、顾客人数、主房编号、类型名称、客房价格、入住价格、折扣比例、预收金额、抵店时间、预住天数、备注等图6-7预订单实体属性图在预订单实体中主要包括以下属性预订单号、顾客姓名、顾客类型、顾客来源、公司名称、联系电话、预订房数、预订日期、预抵时间、保留时间、备注等图6-8结账单实体属性图在结账单实体中主要包括以下属性结账单号、入住单号、顾客姓名、公司名称、客房编号、抵店时间、离店时间、住宿费用、消费金额、应收金额、预收金额、实收金额、结算状态、是否开票、备注信息等图6-9入住历史实体属性图在入住历史实体中主要包括以下属性记录编号、入住单号、顾客姓名、顾客类型、顾客来源、证件类型、证件号码、性别、公司名称、联系电话、顾客人数、主房编号、类型名称、客房价格、入住价格、折扣比例、预收金额、抵店时间、离店时间、备注信息等通过对各个实体及其属性的描述,我们进一步得到各实体之间的E-R图,如图6-10所示图6-10实体E-R图
6.3逻辑结构设计根据数据库概念结构设计,将数据库概念结构转化为SQLServer2000所支持的实际数据模型,即数据库的逻辑结构其各个数据库表的设计结果如下表6-1客房类型表列名数据类型可否为空是否主键说明类型名称Varchar
(20)NOTNULL是客房类型名称客房价格Money8NULL不同类型客房单价备注Varchar80NULL不同类型客房单价表6-2客房信息表列名数据类型可否为空是否主键说明客房编号Varchar12NOTNULL是客房编号类型名称Varchar
(20)NOTNULL客房类型名称客房位置Varchar
(20)NULL客房所在位置室内电话Numeric
(9)NULL客房电话客房状态Varchar
(10)NULL客房状态客房描述Varchar
(100)NULL客房环境描述单据编号Varchar
(20)NULL单据标记备注信息Varchar
(120)NULL客房备注信息表6-3入住单表列名数据类型可否为空是否主键说明入住单号Varchar
(20)NOTNULL是入住单编号主客姓名Varchar
(30)NULL顾客姓名顾客类型Varchar
(10)NULL顾客类型顾客来源Varchar
(20)NULL区分顾客性质证件类型Varchar
(10)NULL证件类型证件号码Varchar
(30)NULL身份证件编号性别Varchar
(4)NULL顾客性别公司名称Varchar
(50)NULL顾客所在公司名称联系电话Numeric9NULL顾客联系电话顾客人数Int4NULL顾客入住人数主房编号Varchar
(12)NULL主客的房间编号类型名称Varchar20NULL主客房间的类型客房价格Money8NULL客房预定价格入住价格Money8NULL顾客实际入住价格折扣比例Decimal42NULL客房预定价格的折扣预收金额Money8NULL押金抵店时间Datetime
(8)NULL顾客到达时间预住天数Int4NULL顾客预定入住天数备注Varchar80NULL备注信息表6-4预订单表列名数据类型可否为空是否主键说明预订单号Varchar
(20)NOTNULL是预订单编号顾客姓名Varchar
(30)NULL顾客姓名顾客类型Varchar
(10)NULL顾客类型顾客来源Varchar
(20)NULL区分顾客性质公司名称Varchar
(50)NULL顾客所在公司名称联系电话Numeric9NULL顾客联系电话预订房数Int4NULL预订房间数量预订日期Datetime8NULL预订客房的日期预抵时间Datetime8NULL预定抵达时间保留时间Datetime8NULL客房保留的最后时间备注Varchar
(80)NULL备注信息表6-5结账单表列名数据类型可否为空是否主键说明结账单号Varchar
(20)NOTNULL是结帐单编号入住单号Varchar
(20)NOTNULL入住单编号顾客姓名Varchar
(30)NULL顾客姓名公司名称Varchar
(50)NULL顾客所在公司名称客房编号Varchar
(12)NULL主客的房间编号抵店时间Datetime
(8)NULL顾客到达时间离店时间Datetime
(8)NULL顾客退房离店时间住宿费用Money8NULL住宿费用消费金额Money8NULL顾客在店内的消费金额应收金额Money8NULL应收金额预收金额Money8NULL已收押金实收金额Money8NULL实收金额结算状态Varchar
(10)NULL结算状态是否开票Bit8NULL是否打印单据备注信息Varchar
(100)NULL备注信息表6-6商品信息表列名数据类型可否为空是否主键说明商品编号Varchar
(10)NOTNULL是商品编号商品名称Varchar
(30)NOTNULL商品名称商品类别Varchar
(20)NULL商品类别商品价格Money8NULL商品预设价格库存数量Int4NULL商品库存数量表6-7入住历史列名数据类型可否为空是否主键说明记录编号Int4NOTNULL是入住历史记录编号入住单号Varchar
(20)NOTNULL入住单编号顾客姓名Varchar
(30)NULL顾客姓名顾客类型Varchar
(10)NULL顾客类型顾客来源Varchar
(20)NULL顾客来源证件类型Varchar
(10)NULL证件类型证件号码Varchar
(30)NULL身份证件编号性别Varchar
(4)NULL顾客性别公司名称Varchar
(50)NULL顾客所在公司名称联系电话Numeric9NULL顾客联系电话顾客人数Int4NULL顾客入住人数主房编号Varchar
(12)NULL主客的房间编号类型名称Varchar20NULL主客房间的类型客房价格Money8NULL客房预定价格入住价格Money8NULL顾客实际入住价格折扣比例Decimal42NULL客房预定价格的折扣预收金额Money8NULL押金抵店时间Datetime
(8)NULL顾客到达时间离店时间Datetime
(8)NULL顾客退房离店时间备注Varchar80NULL备注信息表6-8商品类别表列名数据类型可否为空是否主键说 明类别编号Varchar
(20)NOTNULL商品类别编号商品类别Varchar
(20)NOTNULL是商品类别名称是否需要服务生Varchar
(10)NULL是否需要服务生服务表6-9消费记录表列名数据类型可否为空是否主键说 明记录编号Int4NOTNULL是消费记录编号入住单号Varchar
(20)NOTNULL入住单编号商品名称Varchar
(30)NULL商品名称商品类别Varchar
(20)NULL商品类别购买价格Money
(8)NULL商品购买价格购买数量Int4NULL商品购买数量消费金额Money
(8)NULL消费金额购买日期Datetime
(8)NULL顾客消费时间表6-10用户信息表列名数据类型可否为空是否主键说 明用户名称Varchar
(30)NOTNULL是系统用户名称用户密码Varchar
(20)NULL系统用户密码用户权限Varchar
(10)NOTNULL用户权限级别当前状态Varchar
(10)NOTNULL用户状态表6-11系统日志列名数据类型可否为空是否主键说 明操作时间Datetime
(8)NOTNULL是系统用户操作时间用户名称Varchar
(30)NULL系统用户名称内容摘要Varchar
(20)NULL操作内容摘要操作内容Varchar
(80)NULL系统用户操作情况
6.4创建触发器本系统在入住单表中使用了一个触发器,实现的功能是进行入住单表记录删除操作的同时,将要删除的信息添加到入住历史中去创建触发器如下CREATEtriggerRZD_RZLSon入住单表fordeleteasbegininsertinto入住历史入住单号顾客姓名性别顾客类型顾客来源顾客人数证件类型证件号码公司名称联系电话主房编号类型名称客房价格入住价格折扣比例预收金额抵店时间备注信息离店时间select入住单号顾客姓名性别顾客类型顾客来源顾客人数证件类型证件号码公司名称联系电话主房编号类型名称客房价格入住价格折扣比例预收金额抵店时间备注离店时间=getdatefromdeletedend第七章系统详细设计与实现
7.1公共数据模块设计用公共模块来存放整个系统中公用的函数、全局变量等,使系统中的任何窗体模块都可以调用其中的函数、变量,可极大地提高系统开发的效率和代码重复利用率在本系统中就创建了几个这样的模块例如模块DataUpdate.vb,它可实现对数据库的连接,并可对数据库表中的数据进行更新操作其具体代码如下ImportsSystem.Data.SqlClient命名空间,声明包含对SqlServer数据库的连接ModuleDataUpdatePublicUserNameAsString用户名DimcomstrAsStringDimsqlconAsSqlConnection=NewSqlConnectionserver=localhost;database=HMIS;uid=sa;pwd=;建立连接命令PublicFunctionXTRZByValNRZYAsStringByValCZNRAsStringAsIntegersqlcon.Open打开连接comstr=insertinto系统日志操作时间用户名称内容摘要操作内容VALUESNowDataUpdate.UserNameNRZYCZNRDimsqlcomAsNewSqlCommandcomstrsqlconsqlcom.ExecuteNonQuery执行sql语句sqlcon.Close关闭连接EndFunctionPublicFunctionDelDataByValstr1AsStringByValstr2AsStringAsIntegersqlcon.OpenIfstr2=Thencomstr=deletefromstr1Elsecomstr=deletefromstr1wherestr2EndIfDimsqlcomAsNewSqlCommandcomstrsqlconsqlcom.ExecuteNonQuerysqlcon.CloseEndFunctionPublicFunctionUpdateDataByValstr1AsStringByValstr2AsStringByValstr3AsStringAsIntegersqlcon.OpenIfstr3=Thencomstr=updatestr1setstr2Elsecomstr=updatestr1setstr2wherestr3EndIfDimsqlcomAsNewSqlCommandcomstrsqlconsqlcom.ExecuteNonQuerysqlcon.CloseEndFunctionEndModule
7.2系统窗体构架系统登录界面系统主界面登记入住窗体客房预订窗体信息查询窗体更换房间窗体信息查询窗体消费记帐窗体结帐退房窗体营业统计窗体客房信息设置窗体商品信息设置窗体客房状态设置窗体用户管理窗体数据库维护窗体系统日志窗体图7-1系统窗体总构架图客房信息设置窗体添加/修改客房窗体添加/修改客房类型窗体图7-2客房信息设置窗体构架图商品信息设置窗体添加/修改商品窗体添加/修改商品类别窗体图7-3商品信息设置窗体构架图
7.3系统界面设计
7.
3.1登录窗体设计
(1)窗体功能描述本窗体是系统的启动窗体,实现对于用户身份的多重验证功能具体描述如下
①用户合法性验证首先判断用户输入的用户名和密码是否正确,若正确,就进入用户状态判定,若错误;系统便发出警告信息系统限定用户只有三次输入机会,三次之后本窗体自动关闭
②用户当前状态判定系统将用户的状态分为“可用”和“停用”当用户的合法性得到验证时,则对用户的当前状态进行判定若为“可用”,便进行用户权限判定;若为“停用”,系统发出警告信息,禁止用户登录
③用户权限判定即对于拥有登录权限的合法用户进行权限判定如果是超级用户,将拥有系统的全部功能权限;如果是普通用户,则“用户设置”,“数据库维护”和“系统日志”三个窗体将被禁用,其相应的菜单栏标题也将变为灰色
(2)窗体设计创建一个名为“LoginForm.vb”的窗体,将Text属性改为“登录窗体”并按图7-4进行界面设计图7-4系统登录窗体登录窗体上所用的控件包括窗体(Form),图像(PictureBox),组合框(ComboBox),文本框TextBox,标签(Label)和按钮(Button)控件各控件的属性设置从图7-4中即可看出,这里不做陈述
(3)代码设计
①登录窗体载入时,利用SqlDataAdapter控件连接数据库,取出用户信息到数据集中并将所有的用户名称添加到Comobox控件中代码如下PrivateSubLoginForm_LoadByValsenderAsObjectByValeAsSystem.EventArgsHandlesMe.LoadSqlDataAdapter
1.FillDataSetUserInf1DimiAsIntegerFori=0ToDataSetUserInf
1.用户信息表.Rows.Count-1cbxUserName.Items.AddDataSetUserInf
1.用户信息表.Rowsi.Item用户名称NextEndSub
②输入用户名和密码,点击确定按钮即可实现对用户身份的多重验证,代码如下DimTimesAsInteger=3PrivateSubOK_ClickByValsenderAsSystem.ObjectByValeAsSystem.EventArgsHandlesOK.ClickDimiAsIntegerFori=0ToDataSetUserInf
1.用户信息表.Rows.Count-1IfcbxUserName.Text=DataSetUserInf
1.用户信息表.Rowsi.Item用户名称AndtxtPassword.Text=DataSetUserInf
1.用户信息表.Rowsi.Item用户密码ThenIfDataSetUserInf
1.用户信息表.Rowsi.Item当前状态=不可用ThenMsgBox该用户已被停用,请与管理员联系!系统警告ExitSubEndIfIfDataSetUserInf
1.用户信息表.Rowsi.Item用户权限=普通用户ThenMainForm.用户设置UToolStripMenuItem.Enabled=FalseMainForm.数据库维护WToolStripMenuItem.Enabled=FalseMainForm.系统日志ToolStripMenuItem.Enabled=FalseEndIfDataUpdate.UserName=DataSetUserInf
1.用户信息表.Rowsi.Item用户名称DataUpdate.XTRZ登录系统MainForm.ShowMe.CloseExitSubEndIfNextTimes=Times-1IfTimes1ThenMsgBox登陆失败,请重新启动程序!操作失败Me.CloseElseMsgBox密码错误,你还有Times.ToString次输入机会!操作失败EndIfEndSub
7.
3.2系统主界面设计
(1)窗体功能描述本系统主界面设计美观实用,采用图形化按钮和特定风格的数据表格,酒店中客房经营情况一目了然,使用户能够及时、准确的掌握客房营销情况,为顾客提供咨询服务
(2)窗体设计新建一个窗体并命名为“MainForm.vb”,并把Text属性改为“小型酒店管理系统”打开窗体的界面设计,在工具箱分别选择相应的控件把窗体设计成如图7-5所示图7-5系统主界面主界面主要包括以下控件标签(Label),文本框(TextBox),按钮(Button),菜单栏(MenuStrip),工具栏(ToolBar),图象列表(ImageList),SqldataAdapter控件和DataGrid控件组成其中菜单栏控件设计成如图7-6所示图7-6系统菜单栏
(3)代码设计
①主界面载入时,将数据库中的客房信息显示到DataGrid表格中,并显示酒店客房营业的总体情况代码如下PrivateSubMainForm_LoadByValsenderAsSystem.ObjectByValeAsSystem.EventArgsHandlesMyBase.LoadSqlDataAdapter
1.FillDataSetRoom1向数据集中添加记录SqlDataAdapter
2.FillDataSetYDD1SqlDataAdapter
3.FillDataSetRZD1DimDQRZDQYDDQKGDQZYJRDDJRLDAsIntegerDimZRZLAsDoublelblZFJS.Text=DataSetRoom
1.客房信息表.Rows.Count.ToString间DimiAsIntegerFori=0ToDataSetRoom
1.客房信息表.Rows.Count-1SelectCaseDataSetRoom
1.客房信息表.Rowsi.Item4Case入住DQRZ=DQRZ+1Case预订DQYD=DQYD+1Case空闲DQKG+=1Case维修DQZY+=1Case自用DQZY+=1EndSelectNextlblDQRZ.Text=DQRZ.ToString间lblDQYD.Text=DQYD.ToString间lblDQKG.Text=DQKG.ToString间lblDQZY.Text=DQZY.ToString间ZRZL=DQRZ/DataSetRoom
1.客房信息表.Rows.CountlblZRZL.Text=ZRZL*
100.ToString.##%Fori=0ToDataSetYDD
1.预订单表.Rows.Count-1IfMicrosoft.VisualBasic.DateDiffDateInterval.DayDataSetYDD
1.预订单表.Rowsi.Item预抵时间Now=0ThenJRDD+=1EndIfNextlblJRDD.Text=JRDD.ToString位…………………………………………………lblJRLD.Text=JRLD.ToString位EndSub
②单击菜单中某个选项时,就弹出相应的窗体,代码如下PrivateSub登记入住IToolStripMenuItem_ClickByValsenderAsObjectByValeAsSystem.EventArgsHandles登记入住IToolStripMenuItem.ClickRentRoomForm.ShowEndSubPrivateSub客房预订BToolStripMenuItem_ClickByValsenderAsSystem.ObjectByValeAsSystem.EventArgsHandles客房预订BToolStripMenuItem.ClickBookRoomForm.ShowEndSub………………………………………………PrivateSub用户设置UToolStripMenuItem_ClickByValsenderAsSystem.ObjectByValeAsSystem.EventArgsHandles用户设置UToolStripMenuItem.ClickUserInfSetForm.ShowEndSub
③当点击ToolBar控件上的图象按钮时,将激活相应的功能窗体代码如下PrivateSubToolBar1_ButtonClickByValsenderAsObjectByValeAsSystem.Windows.Forms.ToolBarButtonClickEventArgsHandlesToolBar
1.ButtonClickSelectCaseToolBar
1.Buttons.IndexOfe.ButtonCase0RentRoomForm.ShowCase1BookRoomForm.Show………………………………Case7EndEndSelectEndSub
7.
3.3登记入住窗体设计
(1)窗体功能描述顾客进入酒店后,需先到前台办理入住手续操作员输入客人的相关信息,并根据顾客的要求选择相应的客房,操作员可手动设定折扣比例,系统会自动计算客房价格,收取一定的入住押金,最后点击确定按钮即完成入住手续的办理当顾客因故中途取消办理入住时,为方便操作,节省时间,可点击重置按钮,则所有输入框中的信息自动清空最后点击取消按钮即可退出登记入住窗体
(2)窗体设计新建一个名“RentRoomForm.vb”的窗体并利用相关控件设计成如图7-7所示图7-7登记入住窗体登记入住窗体包括以下控件窗体(Form),标签(Label),组合框(Combobox),文本框(TextBox),按钮(Button),框架(Panel),GroupBox控件DataGirdview控件和SqlDataAdapter控件等
(3)代码设计
①由于存在费用计算的问题,需要设定几个全局变量,在各事件过程中进行相关的运算操作DimYSJGSJJGAsDecimal预设价格和实际价格
②窗体载入时,先将客房信息填充入数据集DataSetEmptyRoom1,并将全部记录添加到客房信息表中PrivateSubRentRoomForm_LoadByValsenderAsObjectByValeAsSystem.EventArgsHandlesMe.LoadSqlDataAdapter
1.FillDataSetEmptyRoom1显示空净房信息DimiAsIntegerFori=0ToDataSetEmptyRoom
1.客房信息表.Rows.Count-1DataGridView
1.Rows.Insert0DataSetEmptyRoom
1.Tables客房信息表.Rowsi.Item0DataSetEmptyRoom
1.Tables客房信息表.Rowsi.Item1DataSetEmptyRoom
1.Tables客房信息表.Rowsi.Item2NextMe.BindingContextDataSetRZD1入住单表.AddNew为入住单表添加新行lblInNum.Text=RZDJBH.RZD显示入住单号EndSub
③输入开单信息之后,点击确定即添加入住单信息代码如下PrivateSubbtnRentRoomConfirm_ClickByValsenderAsObjectByValeAsSystem.EventArgsHandlesbtnRentRoomConfirm.ClicklblReachDate.Text=Now抵店时间Me.BindingContextDataSetRZD1入住单表.EndCurrentEdit将数据返回数据集SqlDataAdapter
2.UpdateDataSetRZD1入住单表更新数据并返回数据源DimiAsIntegerFori=0ToDataGridView
2.Rows.Count-1DataUpdate.UpdateData客房信息表客房状态=入住单据编号=lblInNum.Text客房编号=DataGridView
2.Rowsi.Cells
0.ValueNextMe.CloseEndSub
④下面的代码实现要选择的空闲房间添加到DataGridview2中PrivateSubbtnAddRoom_ClickByValsenderAsSystem.ObjectByValeAsSystem.EventArgsHandlesbtnAddRoom.ClickDataGridView
2.Rows.Insert0DataGridView
1.RowsDataGridView
1.CurrentCell.RowIndex.Cells
0.ValueDataGridView
1.RowsDataGridView
1.CurrentCell.RowIndex.Cells
1.ValueDataGridView
1.RowsDataGridView
1.CurrentCell.RowIndex.Cells
2.ValueDataGridView
1.Rows.RemoveAtDataGridView
1.CurrentRow.Index删除选中行的记录EndSub
7.
3.4退房结账模块设计
(1)窗体功能描述当顾客要办理退房结账时,操作员进入退房结账窗体系统自动生成结账单号在入住宾客信息表选中要离店顾客的入住单记录,顾客在店内的消费记录便出现在消费记录表之中,且系统会自动计算住宿费用和消费金额,显示出应收金额和实收金额填入顾客支付金额后,系统会自动计算出需要找还的金额数最后点击结账按钮便完成了退房结账手续如果要免除某个顾客的所有费用,只要选中“免费”选项框,则实收金额清零,且结账单中的“结算状态”标记为“免费”
(2)界面设计新建窗体并命名为QuitRoomForm将此窗体设计成如图7-8所示图7-8退房结账窗体退房结账窗体包括以下控件窗体(Form),标签(Label),组合框(ComboBox),文本框(TextBox),按钮(Button),框架(Panel),选项框(CheckBox),DataGird控件和SqlDataAdapter控件等
(3)代码设计
①添加全局数据公共模块和全局变量,方便事件过程间的费用计算代码如下DimZSFYXFJEYSJEYSYJSSJEGKZFZLAsDecimalPrivateFunctionTimeJudgeByValjAsDecimal时间判断函数Ifj1ThenIfNow.Hour18Thenj=
0.5Elsej=1EndIfElseIfNow.Hour12Thenj+=
0.5Elsej+=1EndIfEndIfReturnjEndFunctionPrivateSubAccount计算住宿费用DataSetRoomInf
1.客房信息表.ClearSqlDataAdapter
5.SelectCommand.CommandText=SELECT客房信息表.客房编号客房类型表.类型名称客房类型表.客房价格客房信息表.单据编号FROM客房信息表INNERJOIN客房类型表ON客房信息表.类型名称=客房类型表.类型名称where单据编号=DataGrid
1.ItemDataGrid
1.CurrentRowIndex0SqlDataAdapter
5.FillDataSetRoomInf1DimiAsIntegerDimfeeAsDecimal=0DimintervalAsDecimal=0Fori=0ToDataSetRoomInf
1.客房信息表.Rows.Count-1IfDataSetRoomInf
1.客房信息表.Rowsi.Item1=钟点房Theninterval=Microsoft.VisualBasic.DateDiffDateInterval.HourDataSetRZD
11.入住单表.RowsDataGrid
1.CurrentRowIndex.Item抵店时间Nowinterval=TimeJudgeintervalfee+=interval*DataSetRoomInf
1.客房信息表.Rowsi.Item客房价格Elseinterval=Microsoft.VisualBasic.DateDiffDateInterval.DayDataSetRZD
11.入住单表.RowsDataGrid
1.CurrentRowIndex.Item抵店时间Nowinterval=TimeJudgeintervalfee+=interval*DataSetRoomInf
1.客房信息表.Rowsi.Item客房价格EndIfNextZSFY=DataSetRZD
11.Tables入住单表.RowsDataGrid
1.CurrentRowIndex.Item折扣比例*feeEndSub
②根据选择的入住单计算住宿费用和消费金额代码如下PrivateSubDataGrid1_MouseClickByValsenderAsObjectByValeAsSystem.Windows.Forms.MouseEventArgsHandlesDataGrid
1.MouseClickZSFY=0住宿费用XFJE=0消费金额YSJE=0应收金额YSYJ=0已收押金SSJE=0实收金额ZL=0找零lblRZDH.Text=DataSetRZD
11.入住单表.RowsDataGrid
1.CurrentRowIndex.Item0……………………………………………………txtRemarkInf.Text=DataSetRZD
11.入住单表.RowsDataGrid
1.CurrentRowIndex.Item9Account调用计算金额过程DataSetXFJL
1.消费记录表.ClearSqlDataAdapter
2.SelectCommand.CommandText=select*from消费记录表where入住单号=lblRZDH.TextSqlDataAdapter
2.FillDataSetXFJL1DimiAsIntegerFori=0ToDataGrid
2.VisibleRowCount-1累计宾客的消费总额XFJE+=DataSetXFJL
1.Tables消费记录表.Rowsi.Item6NextYSJE=ZSFY+XFJE应收金额=住宿费用+消费金额SSJE=YSJE-YSYJ实收金额=应收金额-已收押金ZL=GKZF-SSJE找零=顾客支付-实收金额lblZL.Text=ZL.ToStringcEndSub
③点击结帐按钮,添加结账单信息,删除入住单信息代码如下PrivateSubbtnJZ_ClickByValsenderAsSystem.ObjectByValeAsSystem.EventArgsHandlesbtnJZ.ClickMe.BindingContextDataSetJZD1结帐单表.EndCurrentEditSqlDataAdapter
3.UpdateDataSetJZD1结帐单表DataUpdate.UpdateData客房信息表客房状态=空闲单据编号=单据编号=DataSetRZD
11.入住单表.RowsDataGrid
1.CurrentRowIndex.Item0DataUpdate.DelData消费记录表入住单号=DataSetRZD
11.入住单表.RowsDataGrid
1.CurrentRowIndex.Item0DataUpdate.DelData入住单表入住单号=DataSetRZD
11.入住单表.RowsDataGrid
1.CurrentRowIndex.Item0DataSetRZD
11.入住单表.RowsDataGrid
1.CurrentRowIndex.DeleteSqlDataAdapter
2.UpdateDataSetXFJL1消费记录表MsgBox结帐成功操作成功Me.CloseEndSub
7.
3.5数据库维护窗体设计
(1)窗体功能描述本窗体的功能是实现对于系统数据库的维护功能,可以有效的提高系统内数据的安全性和可靠性,是本系统中最重要的功能模块之一用户(这里指超级用户)可以进行如下操作
①删除营业数据可删除指定时间内或所有的营业记录,包括入住单信息、预订单信息、入住历史、结帐单信息和消费记录等
②清空商品信息删除商品信息表中的所有商品信息
③清空所有数据库表即对系统数据库进行全面初始化操作,删除数据库内的所有数据
④手动备份和还原数据库的功能在进行备份操作时,用户可自由指定数据库备份文件的路径和名称,点击备份按钮即可在指定路径生成一个数据库备份文件而还原操作时,用户也可根据需要选择某个数据库备份文件进行还原,表现出了较强的灵活性
(2)界面设计创建一个名为DataBaseForm.vb的窗体,并将此窗体设计成如图7-9所示图7-9数据库维护窗体该窗体所用到的控件主要包括窗体(Form),标签(Label),文本框(TextBox),按钮(Button),框架(Panel),选项框(CheckBox)和GroupBox控件等
(3)代码设计
①点击确定按钮,按用户选定的条件对数据库进行清理,代码如下PrivateSubbtnConfirm_ClickByValsenderAsSystem.ObjectByValeAsSystem.EventArgsHandlesbtnConfirm.ClickIfchkZDYYSJ.Checked=TrueThenDataUpdate.UpdateData客房信息表客房状态=空闲单据编号=单据编号inselect预订单号from预订单表where预订日期between+dtpStartTime.Value+and+dtpEndTime.Value+DataUpdate.DelData预订单表预订日期between+dtpStartTime.Value+and+dtpEndTime.Value+…………………………………………………IfchkAllYYSJ.Checked=TrueThenDataUpdate.UpdateData客房信息表客房状态=空闲单据编号=单据编号inselect预订单号from预订单表DataUpdate.UpdateData客房信息表客房状态=空闲单据编号=单据编号inselect入住单号from入住单表DataUpdate.DelData消费记录表DataUpdate.DelData预订单表…………………………………………………EndIfIfchkAllData.Checked=TrueThenDataUpdate.DelData客房信息表DataUpdate.DelData客房类型表…………………………………………………EndIfMsgBox数据清理完毕!操作成功EndSub
②点击备份按钮,对数据库进行备份,代码如下DimstrsqlAsString声明公共变量DimconAsSqlConnectionDimcomAsSqlCommandcon=NewSqlConnectionserver=localhost;database=HMIS;uid=sa;pwd=;PrivateSubbtnBackup_ClickByValsenderAsSystem.ObjectByValeAsSystem.EventArgsHandlesbtnBackup.Clickstrsql=backupdatabaseHMIStodisk=txtBackupPath.Textcom=NewSqlCommandstrsqlconcon.Opencom.ExecuteNonQuerycon.CloseMsgBox数据库备份成功!操作成功EndSub
③点击还原按钮,系统进行数据库的还原操作代码如下PrivateSubbtnRestore_ClickByValsenderAsSystem.ObjectByValeAsSystem.EventArgsHandlesbtnRestore.Clickstrsql=restoredatabaseHMISfromdisk=txtRestorePath.Texcom=NewSqlCommandstrsqlconcon.OpenSqlConnection.ClearAllPools清空连接池com.ExecuteNonQuerycon.CloseMsgBox数据库还原成功!操作成功EndSub第八章系统测试与使用说明
8.1系统测试与运行为了能对系统进行全面的测试和性能分析,应按照系统中各个模块性能和功能要求的不同,采用不同的测试用例,从而尽可能多地发现本软件中的错误,提高软件的可靠性和安全性下面对系统中几个比较重要的功能模块进行一些针对性的测试
8.
1.1对于登记入住模块的测试本模块要输入的信息有入住单号、主客姓名、证件类型、证件号码、顾客来源、顾客类型、性别、公司名称等要求其中的某些关键信息必须要完整、准确的输入,如顾客姓名,联系电话等,以防止因数据遗漏而给系统的使用造成障碍为了检验本模块是否可达到这一要求,在本模块中当输入的信息中,故意漏掉“联系电话”这一字段,系统便发出警告信息,提示“联系电话不能为空”,如图8-1所示而当填入“联系电话”后,点击确定按钮,系统提示“登记成功”,如图8-2所示由此可知,本模块能够实现信息完整、准确的输入图8-1登记入住模块测试结果1图8-2登记入住模块测试结果
28.
1.2对于消费记账模块的测试该模块实现记录顾客在店期间的消费记录的功能不仅要求能够清晰、准确的记录和计算顾客的消费金额,而且必须保证商品销售和库存之间保持正确的关系,不会出现商品库存不足时,却仍然可以销售此商品的情况进行如表8-1所示的分组测试,其测试结果分别如图8-
3、图8-4所示由此可知,本模块满足上述要求,测试成功表8-1消费记账模块测试分组测试分组商品编号消费房间消费数量第一组002BD207100第二组003BD20710图8-3消费记账模块的测试结果1图8-4消费记账模块的测试结果
28.
1.3对于客房信息设置模块的测试在该模块中,要求客房信息按照编号和类型严格区分,严禁系统中出现两个编号相同的房间或两种类型名称相同的客房,否则会导致数据二义性,破坏系统的稳定性和安全性进行如图8-5所示的测试,当试图添加一个数据库表中已存在的客房时,系统发出操作错误的提示信息由此可见,本模块满足了这一要求图8-5客房信息设置模块测试结果
8.2系统运行平台
1.硬件要求CPU奔腾IV
1.3GHz以上,内存256Mb以上,硬盘10G以上
2.软件要求操作系统Windows2000/XP/2003;数据库管理系统SQLServer2000或后续版本;环境配置Microsoft.NetFramework
2.
08.3系统使用说明由于本系统是基于.NET平台开发的,需要安装Microsoft.NetFramework
2.0才能使用系统默认的超级用户名为“admin”,默认密码为“321”另外,系统在运行之前必须要先运行SQLSever2000如果是首次运行系统,还必须向服务器中附加数据库文件(HMIS_Data.MDF)和数据库日志文件(HMIS_Log.LDF),否则系统将无法启动执行附加数据库操作的一般步骤是打开“企业管理器”,在控制台根目录中选择本地服务器下的“数据库”目录,点击鼠标右键,在弹出的菜单中选择“所有任务”,在弹出的二级菜单中单击“附加数据库”命令最后按系统提示操作即可完成本系统数据库的附加操作结束语通过设计开发本系统,学习到了如何运用VisualBasic.NET和MicrosoftSQLServer2000开发出具有实用价值的管理信息系统在开发的过程中,通过参考一些管理信息系统开发的相关书籍,并研究了一些开发实例,从中借鉴了很多开发思路和技巧,使自己进一步培养了系统开发的设计思维,对于系统操作流程、数据结构的分析和改造有了进一步的认识和体会虽然系统实现了设计之初的大部分功能,基本实现了酒店经营管理所必须的各种功能,在实际工作中减少了人力、物力的耗费但由于一开始欠缺系统开发经验,没有较好的从总体把握好系统结构的设计,导致在开发过程中走了一些弯路,部分工作需要返工此外,还有几个重要的功能未能实现,如电话计费、员工管理、财务管理等其它一些辅助性、完善性的功能也未能在毕业设计所限定的时间内实现因为系统还在不断地加入新功能以及修改现有问题,所以在系统的测试部分并没有详尽的测试报告,而本文中的内容也并未能完全表达整个系统的功能发展状态本次毕业设计,从系统的分析、设计、编码、测试,自己都动脑、动手去解决从而对软件开发过程有一个更深的认识,同时也熟悉了基础知识的运用,受益良多同时也出现一些问题,需要通过以后的进一步实践和学习去解决致谢在本次毕业设计中,曾遇到过不少问题,如果单靠我个人的努力,很难按时完成毕业设计,在此,我感谢老师的指导和帮助因为有了老师们细心的指导和帮助,才使我的论理水平和动手能力都得到了很大提高,积累了更多的软件开发方面的经验同时,我还要感谢CSDN技术社区(http://www.csdn.net)的编程高手们在编程技巧和方法方面对于我的帮助,在论坛里我的每一个疑问总能得到满意的答复,为本系统的开发和完善提供了极大的支持参考文献
[1]邓良松刘海岩等.软件工程[M].西安:西安电子科技大学出版社
2006.
[2]萨师煊王珊.数据库系统概论[M].北京:高等教育出版社
2005.
[3]王改梅闫宏伟等.VB.NET可视化程序设计[M].北京:机械工业出版社
2006.
[4]廖望钟永生等.VB.NET程序设计案例教程[M].北京:高等教育出版社
2004.
[5]李存斌.数据库应用技术SQLServer2000简明教程[M].北京:中国水利水电出版社
2001.
[6]朱如龙刘焰.SQLServer数据库应用系统开发实验指导[M].北京:机械工业出版社
2004.
[7]美威利斯WillisT.闫英等.VB.NET数据库入门经典[M].北京:清华大学出版社
2006.
11.
[8]美F.ScottBarker邱仲潘等.VB.NET与ADO.NET数据库编程[M].北京:机械工业出版社
2003.
4.
[9]彭伟民唐平易珺.基于需求的酒店管理系统的建模与实现[J].微机发展2005156:75-
77.
[10]易珺路璐等.构建基于CRM理念的中小型酒店管理信息系统[J].计算机与数字工程2005336:19-
22.
[11]张艳华.中小型酒店管理信息系统设计[J].微机发展2005156:152-
154.
[12]美萍公司.美萍酒店管理系统.http://www.mpsoft.net/download.htm#mphotel
2007.
3.SmallHotelManagementInformationSystemAbstract:Thisgraduationdesignisamanagementinformationsystemthatisdevelopedwithaimingatthecharacteristicsofmediumsmallscaledcabaretbusinessmanagementallcallasmallscaledcabaretamanagementsystem.Thedesigntargetofsystemistocarryoutcabaretmanagementtomanageofinformation-basedwithautomationresolveasmallscaledcabaretguestgointoliveregisterguestroomtoreserveguestconsumebacknighttoregisteretc.keyproblemwithinthedailybusinessoftheguesthousecabaret.Thistextsynopsisintroduceditembackgroundandmeaningandemphasizedtoelaboratethesystemdevelopmentcarriesoutprocessandallcarriedonadetailedanalysisanddescriptionfromtheneedanalysisfunctionstructureanddatabasedesignetc.KeyWords:SmallHotelManagementInformationSystem;VB.NET;SQLServer2000;ADO.NETConnection.NET数据提供程序DataReaderDataAdapterDataSet断开连接的数据体系结构Command核对消费金额产生顾客消费记录登记入住输入顾客信息预收押金安排顾客入住商品消费住宿费用结账离店否是否住宿天数=系统时间-顾客抵店时间+
0.5天系统时间小时数12:00是否是住宿天数=
0.5天取系统时间系统时间-顾客抵店时间=0?系统时间小时数18:00?住宿天数=1天住宿天数=系统时间天数-顾客抵店时间+1天小型酒店管理系统客房信息设置模块客房预订模块客房信息添加客房信息删除登记入住模块更换房间模块信息查询模块消费记账模块用户信息管理模块商品信息设置模块客房信息修改在店顾客查询离店顾客查询预订顾客查询添加消费信息消费转单退出系统用户信息添加用户信息修改用户信息删除商品信息添加商品信息删除商品信息修改添加预订取消预订预订入住营业状况统计模块数据库维护模块退房结账模块消费退单系统日志模块客房状态管理模块客房类型客房价格类型名称备注客房信息类型名称客房编号客房位置室内电话客房描述单据编号备注信息客房状态商品类别商品类别是否需要服务生服务类别编号商品信息进货标记商品名称商品价格商品类别商品编号库存数量消费记录记录编号顾客姓名商品类别商品名称入住单号购买价格购买数量消费金额入住单证件类型顾客姓名入住价格抵店时间预住天数入住单号……预订单顾客类型顾客姓名预抵时间保留时间预订日期预订单号……结账单号结账单顾客姓名入住单号消费金额离店时间结算状态……入住历史顾客姓名入住单号号入住价格离店时间折扣比例……记录编号NNNM结账单入住历史1客房信息11属于商品类别1客房类型属于结账1更新P1生成商品信息111离店111M预订单入住消费记录记账入住单PAGE1。