




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
太原理工大学毕业设计(论文)用纸绪论1.1课题研究的背景及意义如今酒店管理系统已经成为一个酒店不可缺少的部分,它的功能对于企业的用户和管理者来说都是至关重要的,因此,酒店管理系统应该能够为用户提供方便的服务,充足的信息和快捷的查询手段,以往人们一直使用传统的人工方式管理,这种管理方式存在着许多缺点,诸如效率低,保密性差等,而且时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。随着科学技术的不断提高,计算机科学不断发展,其强大的功能已经被人们深刻认识,它已经进入了人类社会的各个领域并发挥着越来越重要的作用。基于SSH的酒店管理系统实现了信息及人员的全过程追踪和动态管理,从而做到简化预定客房过程,优化入住客房速度,改变以往排队多、等候时间长、秩序混乱的局面。同时酒店管理系统的实施也强化了酒店内部管理,降低了员工的工作强度和时间,人为因素造成的漏现象可以解决,也加速了处理速度,减少用户流程。酒店管理系统为管理者提供了收费状况和历史记录等许多有用的信息,也由于许多因素的影响:如提供的信息是否充足,数据的处理是否快捷等,使得繁琐的管理在酒店运营中的地位越发重要,越来越多的人都在关心酒店管理的重要性问题。本系统作为一个管理信息平台,在一定程度上便是适应这样的发展的需求。在信息高速发展的今天,使用快速有效的工具和设备是所有行业保持领先优势的必须手段,为了更好的对酒店业务进行管理和协调,所以使用酒店管理系统是对酒店和宾馆有很多益处的,为了使系统能够很好的适应业务变化系统具有了良好的业务扩展和业务定制能力,解决了用户需求经常变化软件系统长期难以定型的问题,我对此进行了一些相关调查并开发实现了一个适用于中小型酒店和宾馆的管理系统。信息化的今天,酒店管理系统的应用,使高效率的酒店管理模式成为可能。通过本酒店客房管理系统,酒店的相关工作人员可以提高自身的工作效率,并且通过历史记录和收费纪录能够做好金钱的查询和协调工作;通过本酒店客房管理系统,酒店的决策者可以直接管理和运营相关的业务,有效地发现和挖掘前景,及时与自己的上级、下属、同行业单位进行的沟通与交流,同心协作,积极为酒店事业的发展与决策贡献力量。使酒店管理适应时代的发展要求,大大提高了在大量服务机构中的核心竟争力。使用酒店管理系统的意义:1.减少工作量,增加回头率。很多使用电子锁的宾馆,如果没有使用酒店客房管理系统,全部手写记账,那么老板每天都需要花大量时间进行对账查账,每次前台交接班也需要花费大量时间进行对账交账,如果使用了酒店客房管理系统,那么所有账目一目了然,每天总账,交接班账目,收支账目,甚至每月的详细账目和总账都清清楚楚。大大节约了时间,解放了老板,提高了效率。如果有酒店客房管理系统,但是没有和门锁软件进行连接,那么每次客人入住和离店都需要使用两个软件同时进行操作,增加了客人等待时间,降低了服务质量,不利于在客人心中留下好印象,也就不能增加客人回头率。两个软件进行操作,误操作概率大大增加,一不小心就在门锁软件上制一个房间的房卡,在管理软件上收银入账到另一房间上。2.增加财务安全,减少管理漏洞。由于酒店客房管理系统和门锁软件用接口进行了连接,在实际使用中,不使用门锁软件,只使用酒店客房管理系统进行入住登记,收银,制卡,客房商品入账,前台商品入账,电话费自动入账,赔偿入账,退房,结账,客房和前台商品的进销存管理,会员卡管理,协议单位管理,预订房管理,远程账目管理等等。在酒店客房管理系统中,实行的是先进行收银入账,再进行房卡制作的工作流程,并且如果不进行收银入账,就不能进行房卡制作,所有在软件上的账目和操作记录都不能人工删除,这样的管理流程,做到了避免前台人员私自截留房费的可能,大大增加了老板的财务安全,减少了财务管理漏洞。在使用了酒店客房管理系统后,门锁软件的进入密码由老板保存,前台人员不再使用门锁软件。1.2课题研究现状国外的酒店管理系统最早是于70年代初发展起来的,到了80年代,国外的酒店管理系统,如EECO(ElectronicEngineeringCO)、HIS(HotelInformationSystem)、CLS、Lodgistix等,整个模式已基本定型,技术较成熟,功能也较齐全。现在,国外酒店正向个性化方向发展,酒店按其经营方式可分为商务型酒店、长住型酒店、度假型酒店等等;按其经营形式可分为独立经营酒店、集团经营酒店等。而且产生了一大批国际级的连锁酒店,如希尔顿(HiltonHotelsCorp)、谢拉顿(SheratonCorp)、假日(HolidayCorp)、凯悦(HyattHotelCorp)等集团公司的连锁酒店。国内的酒店计算机管理系统最早是在80年代初开始的,从事该方面工作的有清华大学自动化系的金国芬教授、西安交大和浙江省计算机技术研究所。到了80年代中后期,随着国外酒店计算机系统和先进管理技术的大规模引进,进一步促进了我国酒店管理技术的发展。国内酒店管理系统正是在充分吸收国外管理系统的精华,结合国内实际的情况下逐步发展成熟,到90年代初期形成了几个较成熟的软件系统,同时产生了许多专职从事酒店计算机管理系统的公司。其中比较有影响的有杭州西欧Foxhis饭店管理系统、北京中软好泰CSHIS管理系统、北京华仪饭店管理系统和广州万迅千里马饭店管理系统。到了21世纪,随着计算机在饭店中的普及应用,以及计算机技术的不断发展,酒店计算机系统的发展到了一个新的时期,新的系统平台、新的软件功能、新的系统特点及发展方向不断涌现。2系统的开发环境及技术简介2.1系统开发环境2.1.1MyEclipse在开发本平台中所用到的开发工具就是知名的Java项目开发工具MyEclipse。MyEclipse企业级工作平台(MyEclipseEnterpriseWorkbench,简称MyEclipse)是对EclipseIDE的一种扩展,利用MyEclipse,我们可以进行数据库和J2EE项目的开发、发布,以及在应用程序服务器的整合中极大地提高系统的工作效率。MyEclipse是一个功能非常丰富的J2EE集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持HTML,Struts,JSP,CSS,Javascript,SQL,Hibernate。在结构上,MyEclipse的特征可以被分为7类:J2EE模型,WEB开发工具,EJB开发工具,应用程序服务器的连接器,J2EE项目部署服务,数据库服务,MyEclipse整合帮助。对于以上每一种功能上的类别,在Eclipse中都有相应的功能部件,并通过一系列的插件来实现它们。MyEclipse结构上的这种模块化,可以让我们在不影响其他模块的情况下,对任一模块进行单独的扩展和升级。简单而言,MyEclipse是Eclipse的插件,也是一款功能强大的J2EE集成开发环境,支持代码编写、配置、测试以及除错。2.1.2数据库简介数据库使用的是MySQL开源数据库。MySQL的特性:使用C和C++编写,并使用了多种编译器进行测试,保证源代码的可移植性。支持AIX、FreeBSD、HP-UX、MacOS、OpenBSD、OS/2Wrap、Solaris、Windows等多种操作系统。为多种编程语言提供API。这些编程语言包括C、C++、Eiffel、Java、Perl、PHP、Python、Ruby和Tcl等。支持多线程充分利用CPU资源。优化的SQL查询算法,有效地提高查询速度。既能够作为一个单独的应用程序应用在客户端服务器网络环境中,也能够作为一个库而嵌入到其他的软件中提供多语言支持,常见的编码如中文的GB2312、BIG5,日文的Shift_JIS等都可以用作数据表名和数据列名。提供TCP/IP、ODBC和JDBC等多种数据库连接途径。提供用于管理、检查、优化数据库操作的管理工具。可以处理拥有上千万条记录的大型数据库。MySQL的应用:与其他的大型数据库例如Oracle、DB2、SQLServer等相比,MySQL自有它的不足之处,如规模小、功能有限(MySQLCluster的功能和效率都相对比较差)等,但是这丝毫也没有减少它受欢迎的程度。对于一般的个人使用者和中小型企业来说,MySQL提供的功能已经绰绰有余,而且由于MySQL是开放源码软件,因此可以大大降低总体成本。2.1.3TomcatTomcat很受广大程序员的喜欢,因为它运行时占用的系统资源小,扩展性好,支持负载平衡与邮件服务等开发应用系统常用的功能;而且它还在不断的改进和完善中,任何一个感兴趣的程序员都可以更改它或在其中加入新的功能。Tomcat是一个轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP程序的首选。对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache服务器,可利用它响应对HTML页面的访问请求。实际上Tomcat部分是Apache服务器的扩展,但它是独立运行的,所以当你运行tomcat时,它实际上作为一个与Apache独立的进程单独运行的。当配置正确时,Apache为HTML页面服务,而Tomcat实际上运行JSP页面和Servlet。另外,Tomcat和IIS、Apache等Web服务器一样,具有处理HTML页面的功能,另外它还是一个Servlet和JSP容器,独立的Servlet容器是Tomcat的默认模式。2.2系统开发的思想和技术2.2.1Java简介Java是由SunMicrosystems公司于1995年5月推出的Java程序设计语言和Java平台的总称,是一种简单的、面向对象的、分布式的、解释型的、健壮安全的、结构中立的、可移植的、性能优异、多线程的动态语言,很多软件就是用这个开发出来的。Java分为三个体系:JavaSE标准版,JavaEE企业版,JavaME微型版。Java的诞生是对传统计算机模式的挑战,对计算机软件开发和软件产业都产生了深远的影响,基于构建开发方法的崛起,引出了CORBA国际标准软件体系结构和多层应用体系框架。在此基础上形成了Java平台和.NET平台两大派系,推动了整个IT业的发展。对软件产业和工业企业都产生了深远的影响,软件从以开发为中心转到了以服务为中心。中间提供商,构件提供商,服务器软件以及咨询服务商出现。企业必须重塑自我,B2B的电子商务将带动整个新经济市场,使企业获得新的价值,新的增长,新的商机,新的管理。对软件开发带来了新的革命,重视使用第三方构件集成,利用平台的基础设施服务,实现开发各个阶段的重要技术,重视开发团队的组织和文化理念,协作,创作,责任,诚信是人才的基本素质。总之,目前以看到了Java对信息时代的重要性,未来还会不断发展,Java在应用方面将会有更广阔的前景。Java语言的特点:语言简单:Java丢弃了C++中很少使用的、很难理解的、令人迷惑的那些特性,并提供了自动的废料收集,使得程序员不必为内存管理而担忧;面向对象:Java语言提供类、接口和继承等原语,为了简单起见,只支持类之间的单继承,但支持接口之间的多继承,并支持类与接口之间的实现机制;分布式语言:它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、ServerSocket等。Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段;语言是可移植的:Java系统本身也具有很强的可移植性,Java编译器是用Java实现的,Java的运行环境是用ANSIC实现的;语言是多线程的:在Java语言中,线程是一种特殊的对象Thread类已经实现了Runnable接口,因此,任何一个线程均有它的run方法,而run方法中包含了线程所要运行的代码;异常处理机制:为了使Java程式更稳定、更安全,Java引入了异常处理机制。能够在程序中产生异常情况的地方,执行相对应的处理,不至于因突发或意外的错误造成执行中断或是死机。Java编程是面向对象的,使用它编程,可以帮助我们了解需求,定制功能更为强大的软件更好地为客户服务。并且拥有语言动态,语言可移植语言可拓展、通用性强和易于扩充等优势。Java主要针对企业级用户,适合一些企业级的开发,可以开发优秀的企业级平台的的程序、高效灵活的文件操作程序、高效灵活的数据库操作程序。总之,Web应用、移动设备、嵌入式设备、Linux客户端管理工具等应用方面,Java有不可比拟的功能。2.2.2JSP技术与MVC模式以及系统的基本框架本系统采用JSP技术,基于MVC模式开发,使用SSH框架(Struts2、Spring、Hibernate)来加快系统的开发速度。所谓的MVC模式是"Model-View-Controller"的缩写,中文翻译为"模式-视图-控制器"。程序就是用Struts2和Hibernate这两个框架来实现模型层和控制器这两层,JSP实现视图这一层。一般来说程序就是在数据库和页面之间起桥梁作用的,JSP页面请求先到Action,再到DAO,再回到Action,回到JSP页面,Action主要处理来自页面的请求,DAO主要是和数据库的交互,Struts2主要用在Action,处理来自页面的请求,处理完请求后跳转回页面。Hibernate主要用在DAO,包括对数据库的增、删、改、查的操作,Spring控制程序的流程。2.2.3SSH框架SSH框架是J2EE应用中Struts2+Spring+Hibernate三大免费开源框架的结合使用,它可以看成工具,也是中间件。它是用来提高我们的开发效率,提高我们软件产品的可维护性、可扩展性乃至敏捷性的。它们里面有很多优秀的设计理念及模式应用。比如,Struts属于MVC框架,关键是要了解MVC的概念及大致原理;而Hibernate属于ORM系统,属于持久层的解决方案,同样需要对ORM的概念及原理有一个总体的了解。而Spring属于应用程序框架,其核心是IOC容器以及AOP,Spring中还集成了很多实用的东西,比如对JDBC的封装、自己的MVC、对动态语言的简捷访问等。如图2.1所示。图2.1SSH框架它由以下3个框架构成:1.Struts2框架Struts2是Apache组织的一个开放源码项目。Struts2是一个比较好的MVC框架,提供了对开发MVC系统的底层支持,它采用的主要技术是Servlet,JSP和Customtaglibrary。其基本构成如图2.2所示。Servlet/JSP容器JavaBeanEJB模型ActionActionJSP视图ActionServlet控制器Struts.configxmlWeb服务器Servlet/JSP容器JavaBeanEJB模型ActionActionJSP视图ActionServlet控制器Struts.configxmlWeb服务器浏览浏览器图2.2Struts框架工作流程2.Spring框架Spring的核心是个轻量级(Lightweight)的容器(Container),它是实现IOC(InversionofControl)容器、非侵入性(Nointrusive)的框架,并提供AOP(Aspect-orientedprogramming)概念的实现方式,提供对持久层(Persistence)、事务(Transaction)的支持,提供MVCWeb框架的实现,并对一些常用的企业服务API(ApplicationInterface)提供一致的模型封装,是一个全方位的应用程序框架(Applicationframework),除此之外,对于现存的各种框架(Struts、JSF、Hibernate等),Spring也提供了与它们相整合的方案。Spring框架由以下7个部分组成,如图2.3所示。图2.3Spring框架构成3.Hibernate框架Hibernate是一个开放源码的ORM持久层框架。作为优秀的持久层框架实现,Hibernate框架提供了强大、高性能的对象到关系型数据库的持久化服务,开发人员可以使用面向对象的设计进行持久层开发。简单的说,Hibernate只是一个将持久化类与数据库表相映射的工具,每个持久化类实例均对应于数据库表中的一个数据行而已。用户只需直接使用面向对象的方法操作此持久化类实例,即可完成对数据库表数据的插入、删除、修改、读取等操作,如图2.4所示。图2.4Hibernate框架 SSH框架的特点:典型的J2EE三层结构,分为表现层、中间层(业务逻辑层)和数据服务层。三层体系将业务规则、数据访问及合法性校验等工作放在中间层处理。客户端不直接与数据库交互,而是通过组件与中间层建立连接,再由中间层与数据库交互。表现层是传统的JSP技术,自1999年问世以来,经过多年的发展,其广泛的应用和稳定的表现,为其作为表现层技术打下了坚实的基础。中间层采用的是流行的Spring+Hibernate,为了将控制层与业务逻辑层分离,又细分为以下几种。Web层,就是MVC模式里面的Controller,负责控制业务逻辑层与表现层的交互,调用业务逻辑层,并将业务数据返回给表现层作组织表现,该系统的MVC框架采用Struts。Service层(就是业务逻辑层),负责实现业务逻辑。业务逻辑层以DAO层为基础,通过对DAO组件的正面模式包装,完成系统所要求的业务逻辑。DAO层,负责与持久化对象的交互。该层封装了数据的增、删、查、改的操作。PO,持久化对象。通过实体关系映射工具将关系型数据库的数据映射成对象,很方便地实现以面向对象方式操作数据库,该系统采用Hibernate作为ORM框架。Spring的作用贯穿了整个中间层,将Web层、Service层、DAO层及PO无缝整合,其数据服务层用来存放数据。 SSH的工作流程:初始化COM库,引入ADO库定义文件,用Connection对象连接数据库;利用建立好的连接,通过Connection,Command对象执行SQL命令或利用Recordset对象取得结果记录集进行查询处理,使用完毕后关闭连接释放对象。ADO编程模型被设计成你只需集中完成两项简单的任务,即可完成对数据的绝大部分的操作:初始化COM库,引入ADO库定义文件;用Connection对象连接数据库;利用建立好的连接,通过Connection、Command对象执行命令;利用Recordset对象取得结果记录集进行查询、处理;使用完毕后关闭连接释放对象。2.3本章小结本章开始介绍了系统开发所涉及到的开发工具,框架和数据库,并详细介绍了相关信息,并根据这些深入研究,为程序实现奠定了基础;对开发这套管理系统的技术相关框架及主要开发工具进行了概要的介绍,通过需求分析后,考虑到客户的各种具体要求,制定了系统的基本功能,确定了系统的用户,及不同用户的使用权限。方便管理员对相关环境的搭建及维护。3系统概要设计概要设计的主要任务是把系统扩展用例图转换为软件结构和数据结构。设计软件结构的具体任务是:将一个复杂系统按功能进行模块划分、建立模块的层次结构及调用关系、确定模块间的接口及人机界面等。数据结构设计包括数据特征的描述、确定数据的结构特性、以及数据库的设计。显然,概要设计建立的是目标系统的逻辑模型,与计算机无关。酒店客房管理系统的开发采用的是B/S的体系结构,B/S(Browser/Server)结构即浏览器和服务器结构。它是随着Internet技术的兴起,对C/S结构的一种变化或者改进的结构。在这种结构下,用户工作界面是通过浏览器来实现,极少部分事务逻辑在前端实现,但是主要事务逻辑在服务器端实现,形成所谓三层结构。相对于C/S结构属于“胖”客户端,需要在使用者电脑上安装相应的操作软件来说,B/S结构是属于一种“瘦”客户端,大多数或主要的业务逻辑都存在服务器端,因此,B/S结构的系统不需要安装客户端软件,它运行在客户端的浏览器之上,系统升级或维护时只需更新服务器端软件即可,这样就大大简化了客户端电脑载荷,减轻了系统维护与升级的成本和工作量,降低了用户的总体成本。B/S结构系统的产生为系统面对无限未知用户提供了可能。当然,与C/S结构相比,B/S结构也存在着系统运行速度较慢,访问系统的用户不可控的弱点。以目前的技术看,它是一次性到位的开发,能实现不同的人员,从不同的地点,以不同的接入方式(比如LAN,WAN,Internet/Intranet等)访问和操作共同的数据库;它能有效地保护数据平台和管理访问权限,服务器数据库也很安全。特别是在Java这样的跨平台语言出现之后,B/S架构管理软件更是方便、快捷、高效。目前,软件系统的改进和升级越来越频繁,B/S架构的产品明显体现着更为方便的特性。对一个稍微大一点的单位来说,系统管理人员如果需要在几百甚至上千部电脑之间来回奔跑,效率和工作量是可想而知的,但B/S架构的软件只需要管理服务器就行了,所有的客户端只是浏览器,根本不需要做任何的维护。无论用户的规模有多大,有多少分支机构都不会增加任何维护升级的工作量,所有的操作只需要针对服务器进行;如果是异地,只需要把服务器连接专网即可,实现远程维护、升级和共享。所以客户机越来越“瘦”,而服务器越来越“胖”是将来信息化发展的主流方向。今后,软件升级和维护会越来越容易,而使用起来会越来越简单,这对用户人力、物力、时间、费用的节省是显而易见的,惊人的。因此,维护和升级革命的方式是“瘦”客户机,“胖”服务器。成本降低,选择更多。现在的趋势是凡使用B/S架构的应用管理软件,只需安装在Linux服务器上即可,而且安全性高。所以服务器操作系统的选择是很多的,不管选用那种操作系统都可以让大部分人使用windows作为桌面操作系统电脑不受影响,这就使的最流行免费的Linux操作系统快速发展起来,Linux除了操作系统是免费的以外,连数据库也是免费的,这种选择非常盛行。3.1总体功能模块本系统分系统管理员和用户2个用户角色。总功能图如图3.1所示。图3.1系统功能需求分析3.2系统管理员的功能模块系统管理员的主要功能有用户管理、客房分类管理、客房信息管理、开房管理、退房管理、开房记录查询、预订记录查询。系统管理员的功能图如图3.2所示。图3.2系统管理员的功能图3.3用户功能模块用户主要功能有注册登录功能、客房预订、预订记录查询。用户的功能图如图3.3所示。图3.3用户的功能图3.4系统业务描述本系统分系统管理员和普通用户2个用户角色。系统管理员的主要功能有用户管理、客房分类管理、客房信息管理、开房管理、退房管理、开房记录查询、预订记录查询;用户主要功能有注册登录功能、客房预订、预订记录查询。用例图如图3.4所示。图3.4系统用例图3.5程序流程图用户注册流程图如图3.5所示。图3.5用户注册流程图用户登录流程图如图3.6所示。图3.6用户登录流程图3.6本章小结考虑到客户的各种具体要求,制定了系统的基本功能,确定了系统的用户,及不同用户的使用权限。为以后的系统开发奠定了坚实的基础和理论依据。4系统详细设计4.1系统和数据库的配置系统按通用的B/S(浏览器、服务器)模式进行设计。数据库在一个信息管理系统中占有非常重要的地位,数据库结构设计的好坏将直接对应用系统的效率,以及实现的效果产生影响。合理的数据库结构设计可以提高数据存储的效率,保证数据的完整和一致。4.2概念模型设计概念模型设计的典型方法是用E-R图方法,即用实体-联系模型表示。E-R方法是用E-R图来描述显示世界,E-R图包含三个基本成分:实体、联系、属性。它直观易懂,能够比较准确地反映现实世界的信息联系,从概念上表示一个数据库的信息组织情况。本系统E-R图如图4.1所示。图4.1系统E-R图4.3数据库的逻辑模型房间分类表(主键、添加时间、房间状态、房间价格、房间类型)如图4.2所示。主键主键添加时间房间价格房间类型房间状态房间分类图4.2房间分类逻辑图开房信息表(主键、备注、身份证号、结账状态、客户姓名、入住时间、入住天数、退房时间、消费金额、押金、关联客房的ID)如图4.3所示。主键主键备注押金关联客房的ID开房信息图4.3开房信息逻辑图客房信息表(主键、房间信息状态、房间号、房间状态、房间描述、关联分类的ID)如图4.4所示。主键主键房间信息状态房间描述关联分类的ID客房信息图4.4客房信息逻辑图用户表(主键、添加时间、联系方式、密码、1表示管理员、真实姓名、用户状态、用户名、性别)如图4.5所示。主键主键添加时间用户名性别用户图4.5用户逻辑图预定表(主键、备注、添加时间、联系方式、真实姓名、性别、预定客户身份证号码、预定状态、预定入住时间、关联kefang的ID、关联user的ID)如图4.6所示。主键主键备注关联kefang的ID关联user的ID预定图4.6预定逻辑图4.4数据库表结构 房间分类表用来保存系统所有客房类型的基本信息。房间分类表如表4.1所示:表4.1房间分类表名称类型空默认值备注idint(11)noauto_increment主键createtimedatetimeyes空添加时间deletestatusint(11)no0房间状态jiagedoubleyes空房间价格leixingvarchar(255)yes空房间类型 开房信息表用来保存系统所有已入住客房的客户的基本信息及该客户的入住时间、入住天数退房时间和消费金额,还有押金。 开房信息表如表4.2所示:表4.2开房信息表名称类型空默认值备注idint(11)noauto_increment主键beizhuvarchar(255)yes空备注idcardvarchar(255)yes空身份证号jiezhangstatusvarchar(255)yes空结账状态kehunamevarchar(255)yes空客户姓名ruzhutimedatetimeyes空入住时间tianshuint(11)yes空入住天数tuifangtimedatetimeyes空退房时间xiaofeidoubleyes空消费金额yajindoubleyes空押金kefangidint(11)yes空关联客房的ID客房信息表用来保存系统所有空房和已入住的客房的基本信息。 客房信息表如表4.3所示:表4.3客房信息表名称类型空默认值备注idint(11)noauto_increment主键deletestatusint(11)no0房间信息状态fangjianhaovarchar(255)yes空房间号fangjianstatusvarchar(255)yes空房间状态miaoshuvarchar(255)yes空房间描述fenleiidint(11)yes空关联分类的ID 用户表用来保存系统管理员添加的,或者普通用户注册的普通用户的基本信息,以及系统管理员添加的管理员的基本信息。 用户表如表4.4所示:表4.4用户表名称类型空默认值备注idint(11)noauto_increment主键createtimedatetimeyes空添加时间lianxifangshivarchar(255)yes空联系方式passwordvarchar(255)yes空密码roleint(11)no01表示管理员truenamevarchar(255)yes空真实姓名userlockint(11)no0用户状态usernamevarchar(255)yes空用户名xingbievarchar(255)yes空性别 预定表如表4.5所示:表4.5预定表名称类型空默认值备注idint(11)noauto_increment主键beizhuvarchar(255)yes空备注createtimedatetimeyes空添加时间lianxifangshivarchar(255)yes空联系方式truenamevarchar(255)yes空真实姓名xingbievarchar(255)yes空性别yudingidcardvarchar(255)yes空预定客户身份证号码yudingstatusint(11)no0预定状态yudingtimevarchar(255)yes空预定入住时间kefangidint(11)yes空关联kefang的IDuseridint(11)yes空关联user的ID4.5平台数据表的设计根据平台的需求分析和功能模块的划分,所涉及的实体有房间分类、开房信息、客房信息、用户、预定。因此系统的定义数据库主要包含5张表:房间分类表t_fenlei,开房信息表t_kaifang,客房信息表t_kefang,用户表t_user,预定表t_yuding。房间分类表t_fenlei如图4.7所示。图4.7房间分类表建表的SQL语句为:CREATETABLE‘t_fenlei’(‘id’int(11)NOTNULLauto_incrementCOMMENT‘主键’,‘createtime’datetimedefaultNULLCOMMENT‘添加时间’,‘deletestatus’int(11)NOTNULLdefault‘0’COMMENT‘房间状态0表示正常状态1表示删除状态’,‘jiage’doubledefaultNULLCOMMENT‘房间价格’,‘leixing’varchar(255)defaultNULLCOMMENT‘房间类型’,PRIMARYKEY(‘id’))ENGINE=InnoDBDEFAULTCHARSET=utf-8;开房信息表t_kaifang如图4.8所示。图4.8开房信息表建表语句为:CREATETABLE‘t_kaifang’(‘id’int(11)NOTNULLauto_incrementCOMMENT‘主键’,‘beizhu’varchar(255)defaultNULLCOMMENT‘备注’,‘idcard’varchar(255)defaultNULLCOMMENT‘身份证号’,‘jiezhangstatus’varchar(255)defaultNULLCOMMENT‘结账状态已结账未结账’,‘kehuname’varchar(255)defaultNULLCOMMENT‘客户姓名’,‘ruzhutime’datetimedefaultNULLCOMMENT‘入住时间’,‘tianshu’int(11)NOTNULLdefault‘0’COMMENT‘入住天数’,‘tuifangtime’datetimedefaultNULLCOMMENT‘退房时间’,‘xiaofei’doubledefaultNULLCOMMENT‘消费金额’,‘yajin’doubledefaultNULLCOMMENT‘押金’,‘kefangid’int(11)defaultNULLCOMMENT‘关联客房的id,外键’,PRIMARYKEY(‘id’),KEY‘FKE682DF1CAFDBF4E2’(‘kefangid’),CONSTRAINT‘FKE682DF1CAFDBF4E2’FOREIGNKEY(‘kefangid’)REFERENCES‘t_kefang’(‘id’))ENGINE=InnoDBDEFAULTCHARSET=utf-8;客房信息表t_kefang如图4.9所示。图4.9客房信息表建表语句为:CREATETABLE‘t_kefang’(‘id’int(11)NOTNULLauto_incrementCOMMENT‘主键’,‘deletestatus’int(11)NOTNULLdefault‘0’COMMENT‘房间信息状态0表示未删除1表示删除’,‘fangjianhao’varchar(255)defaultNULLCOMMENT‘房间号’,‘fangjianstatus’varchar(255)defaultNULLCOMMENT‘房间状态空房开房预订’,‘miaoshu’varchar(255)defaultNULLCOMMENT‘房间描述’,‘fenleiid’int(11)defaultNULLCOMMENT‘关联分类的id,外键’,PRIMARYKEY(‘id’),KEY‘FK3932E659AE2F5C48’(‘fenleiid’),CONSTRAINT‘FK3932E659AE2F5C48’FOREIGNKEY(‘fenleiid’)REFERENCES‘t_fenlei’(‘id’))ENGINE=InnoDBDEFAULTCHARSET=utf-8;用户表t_user如图4.10所示。图4.10用户表建表语句为:CREATETABLE‘t_user’(‘id’int(11)NOTNULLauto_incrementCOMMENT‘主键’,‘createtime’datetimedefaultNULLCOMMENT‘添加时间’,‘lianxifangshi’varchar(255)defaultNULLCOMMENT‘联系方式’,‘password’varchar(255)defaultNULLCOMMENT‘密码’,‘role’int(11)NOTNULLdefault‘0’COMMENT‘1表示管理员’,‘truename’varchar(255)defaultNULLCOMMENT‘真实姓名’,‘userlock’int(11)NOTNULLdefault‘0’COMMENT‘用户状态0表示正常1表示删除’,‘username’varchar(255)defaultNULLCOMMENT‘用户名’,‘xingbie’varchar(255)defaultNULLCOMMENT‘性别男女’,PRIMARYKEY(‘id’))ENGINE=InnoDBAUTO_INCREMENT=2DEFAULTCHARSET=utf-8;预定表t_yuding如图4.11所示。图4.11预定表建表语句为:CREATETABLE‘t_yuding’(‘id’int(11)NOTNULLauto_incrementCOMMENT‘主键’,‘beizhu’varchar(255)defaultNULLCOMMENT‘备注’,‘createtime’datetimedefaultNULLCOMMENT‘添加时间’,‘lianxifangshi’varchar(255)defaultNULLCOMMENT‘联系方式’,‘truename’varchar(255)defaultNULLCOMMENT‘真实姓名’,‘xingbie’varchar(255)defaultNULLCOMMENT‘性别’,‘yudingidcard’varchar(255)defaultNULLCOMMENT‘预定客户身份证号码’,‘yudingstatus’int(11)NOTNULLdefault‘0’COMMENT‘预定状态0表示预定1表示取消预定’,‘yudingtime’varchar(255)defaultNULLCOMMENT‘预定入住时间’,‘kefangid’int(11)defaultNULLCOMMENT‘关联kefang的id,外键’,‘userid’int(11)defaultNULLCOMMENT‘关联user的id,外键’,PRIMARYKEY(‘id’),KEY‘FK51F76C65AFDBF4E2’(‘kefangid’),KEY‘FK51F76C657614FDC’(‘userid’),CONSTRAINT‘FK51F76C657614FDC’FOREIGNKEY(‘userid’)REFERENCES‘t_user’(‘id’),CONSTRAINT‘FK51F76C65AFDBF4E2’FOREIGNKEY(‘kefangid’)REFERENCES‘t_kefang’(‘id’))ENGINE=InnoDBDEFAULTCHARSET=utf-8;4.6本章小结本章详细介绍了本系统使用的体系结构,使系统的体系架构清晰明了。详细划分了用户操作框架,细分了系统的各个功能模块,并且对每个功能模块的功能细分到底层,用来与后台数据库进行连接,为下面的系统实现打下了坚实基础。5系统功能实现5.1系统的类图类图(ClassDiagram)是显示了模型的静态结构,特别是模型中存在的类、类的内部结构以及它们与其他类的关系等。类图不显示暂时性信息。类图由许多(静态)说明性的模型元素(例如类、包和它们之间的关系,这些元素和它们的内容互相连接)组成。类图可以组织在(并且属于)包中,仅显示特定包中的相关内容。类图是最常用的UML图,显示出类、接口以及它们之间的静态结构和关系;它用于描述系统的结构化设计。类图最基本的元素是类或者接口。同其他的图一样,类图也可以包含注解和限制。类图中也可以包含包和子系统,这两者用来将元素的分组。有时候也可以将类的实例放到类图中。5.1.1客房分类Fenlei类图客房分类类图如图5.1所示。图5.1Fenlei类图5.1.2开房信息Kaifang类图开房信息类图如图5.2所示。图5.2Kaifang类图5.1.3客房信息Kefang类图客房信息类图如图5.3所示。图5.3Kefang类图5.1.4用户User类图用户类图如图5.4所示。图5.4User类图5.1.5预定Yuding类图预定类图如图5.5所示。图5.5Yuding类图5.2程序的时序图时序图(SequenceDiagram),亦称为序列图或循序图,是一种UML行为图。它通过描述对象之间发送消息的时间顺序显示多个对象之间的动态协作。它可以表示用例的行为顺序,当执行一个用例行为时,时序图中的每条消息对应了一个类操作或状态机中引起转换的触发事件。时序图描述对象是如何交互的,并且将重点放在消息序列上。也就是说,描述消息是如何在对象间发送和接收的。时序图有两个坐标轴:纵坐标轴显示时间,横坐标轴显示对象。每一个对象的表示方法是:矩形框中写有对象或类名,且名字下面有下划线;同时有一条纵向的虚线表示对象在序列中的执行情况(即发送和接收的消息对象的活动),这条虚线称为对象的生命线。对象间的通信用对象的生命线之间的水平的消息线来表示,消息线的箭头说明消息的类型,如同步,异步或简单。浏览时序图的方法是,从上到下查看对象间交换的消息,分析那些随着时间的流逝而发生的消息交换。时序图中的消息可以是信号,操作调用或类似于C++中的RPC(RemoteProcedureCall,远程过程调用)或Java中的RMI(RemoteMethodInvocation,远程方法调用)。当对象接收到一个消息时,该对象中的一项活动就会启动,我们把这一过程称做激活(Activation)。激活会显示控制焦点,表明对象在某一个时间点开始执行。一个被激活的对象或者是执行它自身的代码,或者是等待另一个对象的返回(该被激活的对象已经向另一个对象发送了消息)。在图形上,激活被绘制为对象生命线上的一个瘦高矩形。消息可以用消息名及参数来标识。消息还可带有条件表达式,表示分支或决定是否发送消息。如果用于表示分支,则每个分支是相互排斥的,即在某一时刻仅可发送分支中的一个消息。消息也可以有顺序号,但是在时序图中,消息的顺序号很少使用,因为时序图已经将消息的顺序显式地表示出来了。5.2.1房间分类模块时序图房间分类模块时序图如图5.6所示:图5.6房间分类模块时序图 从房间分类模块时序图中可以看出,系统管理员通过JSP页面发送请求,JSP页面获得响应,调用manageAction方法,再调用fenleiDao,通过连接后台数据库处理数据,再回到DAO,回到Action,JSP页面获得响应,并提示相关信息。如系统管理员请求添加客房分类信息,则响应Action调用插入方法,通过DAO插入数据库中相关数据,数据库存储数据后返回DAO,再返回Action,页面向系统管理员提示添加成功的信息;如系统管理员请求更新客房分类信息,则响应Action调用更新方法,通过DAO更新数据库记录,数据库更新数据后返回DAO,再返回Action,页面向系统管理员提示更新成功的信息;如系统管理员请求查看客房分类信息,则响应Action调用查询方法,通过DAO查询数据库中的相关记录,之后返回DAO,在返回Action,页面跳转至系统管理员要查看的相关信息;如系统管理员请求删除客房分类信息,则响应Action调用删除方法,通过DAO删除数据库中相关信息,之后返回DAO,返回Action,页面向系统管理员提示删除成功的信息。5.2.2开房信息模块时序图开房信息模块时序图如图5.7所示:图5.7开房信息模块时序图 从开房信息模块时序图中可以看出,系统管理员通过JSP页面发送请求,JSP页面获得响应,调用manageAction方法,再调用kaifangDao,通过连接后台数据库处理数据,再回到DAO,回到Action,JSP页面获得响应,并提示相关信息。如系统管理员请求添加开房信息,则响应Action调用插入方法,通过DAO插入数据库中相关数据,数据库存储数据后返回DAO,再返回Action,页面向系统管理员提示添加成功的信息;如系统管理员请求更新开房信息,则响应Action调用更新方法,通过DAO更新数据库记录,数据库更新数据后返回DAO,再返回Action,页面向系统管理员提示更新成功的信息;如系统管理员请求查看开房信息,则响应Action调用查询方法,通过DAO查询数据库中的相关记录,之后返回DAO,在返回Action,页面跳转至系统管理员要查看的相关信息;如系统管理员请求删除开房信息,则响应Action调用删除方法,通过DAO删除数据库中相关信息,之后返回DAO,返回Action,页面向系统管理员提示删除成功的信息。5.2.3客房信息模块时序图客房信息模块时序图如图5.8所示:图5.8客房信息模块时序图 从客房信息模块时序图中可以看出,系统管理员通过JSP页面发送请求,JSP页面获得响应,调用manageAction方法,再调用kefangDao,通过连接后台数据库处理数据,再回到DAO,回到Action,JSP页面获得响应,并提示相关信息。如系统管理员请求添加客房信息,则响应Action调用插入方法,通过DAO插入数据库中相关数据,数据库存储数据后返回DAO,再返回Action,页面向系统管理员提示添加成功的信息;如系统管理员请求更新客房信息,则响应Action调用更新方法,通过DAO更新数据库记录,数据库更新数据后返回DAO,再返回Action,页面向系统管理员提示更新成功的信息;如系统管理员请求查看客房信息,则响应Action调用查询方法,通过DAO查询数据库中的相关记录,之后返回DAO,在返回Action,页面跳转至系统管理员要查看的相关信息;如系统管理员请求删除客房信息,则响应Action调用删除方法,通过DAO删除数据库中相关信息,之后返回DAO,返回Action,页面向系统管理员提示删除成功的信息。5.2.4用户模块时序图 系统管理员通过JSP页面发送请求,JSP页面获得响应,调用manageAction方法,再调用userDao,通过连接后台数据库处理数据,再回到DAO,回到Action,JSP页面获得响应,并提示相关信息。如系统管理员请求添加用户信息,则响应Action调用插入方法,通过DAO插入数据库中相关数据,数据库存储数据后返回DAO,再返回Action,页面向系统管理员提示添加成功的信息;如系统管理员请求更新用户信息,则响应Action调用更新方法,通过DAO更新数据库记录,数据库更新数据后返回DAO,再返回Action,页面向系统管理员提示更新成功的信息;如系统管理员请求查看用户的具体信息,则响应Action调用查询方法,通过DAO查询数据库中的相关记录,之后返回DAO,在返回Action,页面跳转至系统管理员要查看的用户相关信息;如系统管理员请求删除用户信息,则响应Action调用删除方法,通过DAO删除数据库中相关信息,之后返回DAO,返回Action,页面向系统管理员提示删除成功的信息。用户模块时序图如图5.9所示。图5.9用户模块时序图5.2.5预定模块时序图预定模块时序图如图5.10所示:图5.10预定模块时序图 从预定模块时序图中可以看出,系统管理员通过JSP页面发送请求,JSP页面获得响应,调用manageAction方法,再调用yudingDao,通过连接后台数据库处理数据,再回到DAO,回到Action,JSP页面获得响应,并提示相关信息。如系统管理员请求添加预定信息,则响应Action调用插入方法,通过DAO插入数据库中相关数据,数据库存储数据后返回DAO,再返回Action,页面向系统管理员提示添加成功的信息;如系统管理员请求更新预定信息,则响应Action调用更新方法,通过DAO更新数据库记录,数据库更新数据后返回DAO,再返回Action,页面向系统管理员提示更新成功的信息;如系统管理员请求查看预定信息,则响应Action调用查询方法,通过DAO查询数据库中的相关记录,之后返回DAO,在返回Action,页面跳转至系统管理员要查看的相关信息;如系统管理员请求删除预定信息,则响应Action调用删除方法,通过DAO删除数据库中相关信息,之后返回DAO,返回Action,页面向系统管理员提示删除成功的信息。5.3系统功能实现的主要框架5.3.1SSH框架SSH框架就是Struts2,Spring,Hibernate的简称,运用3个框架的集成协作使用,可以有效的提高代码编写的效率,从而有效的降低程序开发的周期。5.3.2Hibernate配置文件org.hibernate.connection.ProxoolConnectionProvider在Hibernate的配置文件中:<propertyname="proxool.xml">proxool.xml</property>首先加载了连接池的一个配置,就是加载了数据库的连接信息,<propertyname="show_sql">true</property><propertyname="format_sql">true</property>表示控制台打印SQL语句,并格式化SQL语句<propertyname="dialect">org.hibernate.dialect.MySQLDialect</property>表示当前数据库的语言是MySQL <mappingclass="jiudian.model.User"/> <mappingclass="jiudian.model.Fenlei"/> <mappingclass="jiudian.model.Kefang"/>都表示当前数据库建立起来的表和类之间的映射关系,比如<mappingclass="model.User"/>表示User类和t_user表之间的建立起来的对应关系,其他也都类似。5.3.3Struts配置文件 <actionname="index"method="index"class="indexAction"><resultname="success">index.jsp</result></action> <actionname="method"class="manageAction"> <resulttype="dispatcher">${url}</result> <resultname="redirect"type="redirect">${url}</result> </action> <actionname="indexmethod"class="indexAction"> <resulttype="dispatcher">${url}</result> <resultname="redirect"type="redirect">${url}</result> </action>这是struts的配置文件,该文件的作用主要是起到来自JSP的请求的跳转分配的作用.该struts配置文件是总的配置文件。5.3.4Spring配置文件 <beanid="userDao"class="jiudian.dao.impl.UserDaoImpl"> <propertyname="sessionFactory"><refbean="sessionFactory"/></property> </bean> <beanid="fenleiDao"class="jiudian.dao.impl.FenleiDaoImpl"> <propertyname="sessionFactory"><refbean="sessionFactory"/></property> </bean> <beanid="kefangDao"class="jiudian.dao.impl.KefangDaoImpl"> <propertyname="sessionFactory"><refbean="sessionFactory"/></property> </bean> <beanid="kaifangDao"class="jiudian.dao.impl.KaifangDaoImpl"> <propertyname="sessionFactory"><refbean="sessionFactory"/></property> </bean> <beanid="yudingDao"class="jiudian.dao.impl.YudingDaoImpl"> <propertyname="sessionFactory"><refbean="sessionFactory"/></property> </bean>本段代码是把DAO实例化的代码,通过spring的IOC模式 <beanid="manageAction"class="jiudian.action.ManageAction"scope="prototype"> <propertyname="userDao"><refbean="userDao"/></property> <propertyname="fenleiDao"><refbean="fenleiDao"/></property> <propertyname="kefangDao"><refbean="kefangDao"/></property> <propertyname="kaifangDao"><refbean="kaifangDao"/></property> <propertyname="yudingDao"><refbean="yudingDao"/></property> </bean>本段代码是把ManageAction实例化的代码,原理也是spring的IOC模式。Spring在本项目中主要用到了IOC的功能,就是把对象实例化。5.4系统功能实现的主要模块5.4.1系统登录页面系统登录页面如图5.11所示。 图5.11系统登陆页面图登录代码://登录请求 HttpServletRequestrequest=ServletActionContext.getRequest(); Stringusername=request.getParameter("username"); Stringpassword=request.getParameter("password"); Stringrole=request.getParameter("role"); Useruser=userDao.selectBean("whereusername='"+username +"'andpassword='"+password+"'androle="+role+"anduserlock=0"); if(user!=null){ HttpSessionsession=request.getSession(); session.setAttribute("user",user); this.setUrl("index.jsp"); return"redirect"; }else{ HttpServletResponseresponse=ServletActionContext.getResponse(); response.setCharacterEncoding("utf-8"); response.setContentType("text/html;charset=utf-8"); response .getWriter() .print("<scriptlanguage=javascript>alert('用户名或者密码错误,或者是用户不存在');window.location.href='login.jsp';</script>"); } returnnull;本段代码是程序的登陆代码,首先从获取从页面输入的用户名和密码以及用户角色,然后调用userDao.selectBean方法,从数据库里取出该条记录进行判断,如果该条记录存在,则说明用户登陆成功,同时把用户信息存在session里面方便调用,如果记录为空,则跳转到登陆页面,同时提醒用户错误信息。5.4.2普通用户注册页面普通用户注册页面如图5.12所示。 图5.12普通用户注册页面图代码如下://用户注册操作Userbean=userDao.selectBean("whereusername='"+username+"'anduserlock=0");if(bean==null){ bean=newUser(); bean.setUsername(username); bean.setCreatetime(newDate()); bean.setLianxifangshi(lianxifangshi); bean.setPassword(password); bean.setRole(0); bean.setTruename(truename); bean.setXingbie(xingbie); userDao.insertBean(bean); response .getWriter() .print("<script language=javascript>alert(‘恭喜,用户注册成功!返回登录界面!’);window.location.href='login.jsp';</script>");}else{ response .getWriter() .print("<scriptlanguage=javascript>alert('操作失败,该用户名已经存在,请再次注册');window.location.href='login.jsp';</script>");本段代码是程序的注册代码,首先从页面中获取注册的信息,同时新建一个User对象,把从页面获取的信息都写在User对象里面。同时在插入到数据库之前先调用userDao.selectBean("whereusername='"+username+"'anduserlock=0");方法,验证下该用户名在数据库中是否存在,如果不存在,则调用userDao.insertBean(bean);方法,把该条记录写入数据库;如果该条记录存在,则返回到注册页面,同时提醒用户该用户名已经存在,请重新注册。5.4.3系统管理员登录页面系统管理员登录页面如图5.13所示:图5.13系统管理员登录页面图该页面是系统管理员角色登录后的页面效果。系统管理员的主要功能有用户管理、客房分类管理、客房信息管理、开房管理、退房管理、开房记录查询、预订记录查询。5.4.4普通用户登录页面普通用户登录页面如图5.14所示:图5.14普通用户登录页面图该页面是普通用户登录后的效果,用户主要功能有注册登录功能、客房预订、预订记录查询。5.4.5客房信息管理页面客房信息管理页面如图5.15所示。图5.15客房信息管理页面图代码如下://客房信息管理列表 request.setAttribute("leixinglist",fenleiDao.selectBeanList(0,9999,"wheredeletestatus=0")); if(fangjianhao!=null&&!"".equals(fangjianhao)){ sb.append("fangjianhaolike'%"+fangjianhao+"%'"); sb.append("and"); request.setAttribute("fangjianhao",fangjianhao); } if(leixing!=null&&!"".equals(leixing)){ sb.append("fenlei.leixinglike'%"+leixing+"%'"); sb.append("and"); request.setAttribute("leixing",leixing); } if(request.getParameter("pagenum")!=null){ currentpage=Integer.parseInt(request.getParameter("pagenum")); } inttotal=kefangDao.selectBeanCount(where.replaceAll("orderbyiddesc","")); request.setAttribute("list",kefangDao.selectBeanList((current1) request.setAttribute("pagerinfo",Pager.getPagerNormal(total,pagesize, currentpage,"method!kefanglist","共有"+total+"条记录")); request.setAttribute("url","method!kefanglist"); request.setAttribute("url2","method!kefang"); request.setAttribute("title","客房信息管理"); this.setUrl("kefang/kefanglist.jsp");实现客房信息管理,首先通过Stringfangjianhao=request.getParameter("fangjianhao");和Stringleixing=request.getParameter("leixing");这2句代码从页面获取查询的选项,然后通过if(fangjianhao!=nul&&!"".equals(fangjianhao))和if(leixing!=null&&!"".equals(leixing))这2句条件语句分别判断下这个值是否为空,当不为空时则通过StringBuffer来叠加组装查询的SQL语句,最后当SQL语句组装好了之后,通过kefangDao.selectBeanList方法来调用数据库的查询方法来查到符合条件的记录,再通过request.setAttribute方法把查询到的记录传到显示的页面。同时通过this.setUrl("kefang/kefanglist.jsp");方法指定传回到具体指定的是哪个JSP页面。通过这样实现对数据查询功能的实现,同时在该页面定义了对客房信息的增加,修改,删除等操作。5.4.6用户管理页面用户管理页面如图5.16所示。图5.16用户管理页面图用户管理页面是系统管理员角色登录系统后,点击用户管理看到的界面。在用户管理模块下,系统管理员可以实现添加新用户、按照用户名查询用户的具体信息,以及对用户的查看、修改和删除操作。5.4.7客房分类管理页面客房分类管理页面如图5.17所示。图5.17客房分类管理页面图客房分类管理界面是系统管理员角色登录系统后,点击客房分类管理看到的界面。在客房分类管理模块,系统管理员可以实现添加新客房分类、根据房间类型快速查询房间类型下所有房间的具体信息,也可以对具体的房间进行查看、修改和删除的操作。5.4.8开房管理页面开房管理页面图是系统管理员角色登录系统后,点击开房管理看到的界面。在开房管理模块,系统管理员可以通过输入房间编号,或输入房间状态(空房或已入住),也可以根据房间类型快速查询客房的具体信息,也可以对客房进行是否入住的查询,若房间是空房,则可以查看客房的具体信息,可以进行开房操作;若房间已入住,则可以查看客房是何时被入住的信息。开房管理页面如图5.18所示。图5.18开房管理页面图5.4.9普通用户客房预定页面普通用户客房预定页面如图5.19所示。图5.19普通用户客房预定页面图普通用户客房预定页面是普通用户角色登录系统后,点击客房预定看到的界面。在普通用户客房预定模块,普通用户可以通过输入房间编号,或者根据房间类型快速查询客房的信息,也可以对房间状态是“空房”的客房进行查看和预定操作。5.5本章小结本章对整个管理系统进行全面的开发和编码,根据之前的准备对各个模块进行了编码,实现了各模块的功能,并建立了数据库的数据表,对数据库进行连接。6系统测试软件测试是软件质量管理中最直接实际的行动。软件测试是有组织性、步骤性和计划性的。软件测试的种类可以根据测试形态、测试技术及测试模式来进行划分。就测试模式而言,测试方法可分为两种:白盒测试和黑盒测试。这两种方法的测试方向是不同的,白盒测试以测试的深度为主,而黑盒测试是以测试的广度为主。白盒测试:又称结构测试,透明盒测试、逻辑驱动测试或基于代码的测试。白盒测试是一种测试用例设计方法,盒子指的是被测试的软件,严格来说白盒测试有两大方面:数据流程和控制流程。数据流程就是测试资料进出系统的程序所经过的流程,控制流程就是测试程序在执行过程中每个阶段的流程。控制流程面有以下四点:1.语句覆盖:每一个程序句述都被执行到;2.分支覆盖:每一个程序的进出点都至少被执行过一次;3.条件覆盖:分支覆盖再加上所有判断情况都至少被执行过一次;4.条件组合覆盖:不同的组合的判断情况都至少被执行过一次。黑盒测试:又称为功能测试或数据驱动测试,测试人员并不需要对软件的结构有深层的了解,测试重点在于软件的功能。为了控制黑盒测试的执行,测试人员必须按照测试用例逐一进行,所以测试用例设计的好坏会直接影响到测试结果。所谓的测试用例就是将软件测试的行为活动,做一个科学化的组织归纳。而设计软件测试用例的目的,是为了能将软件测试的行为转换为可管理的模式。基于时间因素的考虑,软件测试行为必须能够加以量化,才能进一步让管
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 实现系统稳态运行的关键技术
- 圆的方程中职课件
- 护理学创意案例分享会
- 慢阻肺自我管理
- 个人珠宝购买合同标准文本
- 住宅用地出售合同标准文本
- CBA签约合同标准文本
- 护士护理读书报告
- 低价转让房屋合同标准文本
- 人防租赁转让合同范例
- 掌握重点中职电子商务教师资格证试题与答案
- 河南省郑州市管城区2024-2025学年级九年级下学期第一次模拟数学试题(原卷版+解析版)
- 隔音涂料施工方案
- 甘肃卷2024年高考真题化学试题(含答案)
- T-CCTAS 61-2023 桥梁承重缆索抗火密封综合防护技术规程
- 医院品管圈(QCC)活动成果报告书-基于QFD 润心服务改善 ICU 患者及家属就医体验
- JJG 693-2011可燃气体检测报警器
- 第七章--展示的版面和色彩设计
- DBT29-295-2021 600MPa级高强钢筋混凝土结构技术标准
- Q∕GDW 12164-2021 变电站远程智能巡视系统技术规范
- 钢格构柱组合式塔吊方案(专家认证)
评论
0/150
提交评论