1、不要删除行尾的分节符,此行不会被打印- I -目录第1章 绪论11.1 课题背景11.2 目的和意义11.3 本文结构2第2章 技术及工具介绍32.1 SQLServer简介32.2 JSP简介42.3 J2EE简介7第3章 需求分析103.1 系统需求分析103.2 用例分析103.2.1 管理员用例图103.2.2 会员用例图103.3 系统E-R图113.4 设计的基本思想113.5 性能需求123.6 界面需求12第4章 系统概要设计144.1 设计的原则144.2 项目规划144.3 系统工作流程164.4 系统模块划分184.4.1 用户登录模块184.4.2 管理员操作模块194
2、.4.3 会员操作模块204.5 系统UML类图214.6 数据库设计214.6.1 数据库的概念结构设计214.6.2 数据库的逻辑结构设计24第5章 系统实现285.1 数据库的连接原理285.2 系统登录页面实现295.3 后台功能模块305.3.1 注册会员管理305.3.2 客房信息管理315.3.3 预订信息管理325.3.4 菜品信息管理345.3.5 订菜信息管理365.3.6 新闻信息管理375.3.7 留言信息管理395.3.8 修改个人密码395.4 网站前台模块405.4.1 网站首页界面405.4.2 用户注册415.4.3 查看客房信息415.4.4 客房预订425
3、.4.5 菜品信息查看435.4.6 菜品预订435.4.7 系统留言功能445.4.8 会员信息455.4.9 中文乱码处理465.5 测试过程475.5.1 主页面的登录模块测试475.5.2 其他错误47结论49致谢50参考文献51附录52千万不要删除行尾的分节符,此行不会被打印。在目录上点右键“更新域”,然后“更新整个目录”。打印前,不要忘记把上面“Abstract”这一行后加一空行- III -第1章 绪论1.1 课题背景现代社会,大量人员不断流动,人们生活水平不断提高,比如,很多地方把旅游业作为本地经济发展的重要支柱之一,酒店数量急剧增加,人们对酒店的要求也越来越高。面对庞大的酒店
4、业务信息量,酒店客房建设进一步规范化、复杂化,就需要酒店客房管理系统来提高客房管理工作的效率。通过这样的系统,可以做到信息的系统管理和快速查询,从而减少了管理方面的工作量,为酒店的经营增加竞争力。利用先进的科学技术,将成为提高酒店管理效率,改善服务水准的重要手段之一。然而现在绝大多数的中小型酒店、宾馆由于资金、人员等多方面原因不易使用酒店管理类软件,同时,市场上出现的各类酒店入住信息管理软件基本上都是为大型酒店专业设计的,有很多功能对于一般酒店、宾馆根本用不上。全面提高酒店客房管理系统的水准,已是酒店业发展的当务之急。虽然计算机管理并不是酒店管理走向成功的关键元素,但它可以最大限度地发挥准确、
5、快捷、高效等作用,对酒店的服务管理提供强有力的支持。本系统的出发点是强调通用性和实用性。本系统的设计应符合日常办公运作的需求,功能完备使用,界面友好清晰,简单易学,网络结构简单,层次清楚,便于管理。所以B/S结构的城市酒店信息管理系统是酒店经营不可缺少的现代工具。1.2 目的和意义开发酒店客房管理系统的目的是用来收集、处理、存储和宣传客房、菜品、顾客等酒店业务方面的信息,以信息管理为核心的计算机应用系统。建立一套功能完善的管理信息系统,既能满足业务人员日常处理的需要,增强企业经营全过程的数字化管理水平,又能满足管理人员决策分析的需要,提高酒店管理层对酒店经营反馈信息的响应速度。从而大幅度提高工
6、作效率,提高实施管理的准确性、科学性,使负担管理的工作人员从繁杂的手工劳动中解脱出来。这次所开发的酒店客房管理系统应该具有的优点是,它可以深入到酒店日常工作,为酒店管理者提供方便。想入住酒店的客人可以通过在线的形式,当注册为会员后可以自由使用本系统的前台,浏览与酒店业务方面的信息,前台的预订信息与后台的预订管理信息同步,并保存至数据库。酒店管理者登录后,也可以以在线的方式,对会员的预订信息统一管理,并保存至数据库,克服了人为管理中人为失误因素给企业管理带来的诸多不便,大大提高了酒店的工作效率,为企业创造了更大的利润。1.3 本文结构本文前半部分介绍,通过设计开发,本系统可以为会员提供客房预订,
7、购买菜品等服务的网上平台,会员、管理员只要在任何一台上网的计算机上就可以浏览要了解的客房信息,并通过登录验证后,找到合适的客房进行预约、查询等。本系统为管理员提供在线查看客房情况,修改客房、菜品信息,查看客房记录等。后半部分结合酒店客房管理系统的开发和运行,认真地分析和研究当前比较实用的JSP项目开发技术。最后本文总结了整个开发中出现的问题,以及对未来酒店客房管理系统的应用的展望。第2章 技术及工具介绍2.1 SQLServer简介酒店客房管理系统选用的是SQLServer数据库,SQLServer数据库具有更高的可扩展性,可用性,这符合了酒店管理系统的准确运用及呈现。其他数据库的扩展性不如S
8、QLServer,性能也没有SQLServer突出,所以选择用SQLServer做数据库。Microsoft SQLServer 2005是Microsoft公司开发的优秀企业级网络数据库,它是把多线程作为基础结构,显著的优点有:所需的资源少、同时又能够把数据库合并起来管理,并能够保证数据的完整性,又能够保证数据的安全性。SQLServer 2005标准版最多支持四个CPU和2GB内存,而SQLServer 2005企业版可支持的CPU数量和内存数仅受操作系统的限制,如在Windows Server 2003 Datacenter Edition(32位)上,最多可支持64个CPU和64GB内
9、存。此外,SQLServer 2005企业版中还提供了标准版中没有的联合数据库服务器功能,可以将数据库负载分布到多个独立的服务器上。SQLServer 2005企业版中提供了很多标准版中所没有的OLAP高级分析特性,这对于商业智能(BI)应用有很大的价值。几年来,关系数据库系统以多种不同的方式提供了对XML的支持。这些系统所支持的主要应用场景是信息交换,该信息交换是在XML作为“牵线格式”并且关系模式和XML模式相互独立地预定义的情况下进行的。为了适用于这种场景,微软SQL Server 2005提供并扩展了大量最早在SQL Server 2000中引入的功能,比如针对XML的发布行集聚集器、
10、OpenXML行集提供程序以及基于带注解模式的XML视图技术。对于大规模的数据库应用来说,企业版的以上特性是非常重要的。通过在SQLServer中提供对可靠的信息队列机制的支持,服务代理能够帮助开发人员创建松耦合的分布式应用。许多数据库应用使用异步处理的方式来提高可扩展性和交互型会话的响应时间。一个常用的异步处理的方法是使用工作表。与把一个业务流程中的所有工作放在一个数据库事务中完全不同,一个应用程序进行修改来指示存在未完成的工作,然后,向工作表中插入一条接下来要执行的工作的记录。只要资源允许,应用程序处理工作表并完成业务流程。服务代理是数据库服务器的一部分,为应用开发直接提供对该方法的支持。
11、以前的消息队列技术集中于单个的消息。在服务代理中,通信的基本单元是会话一个持久的、可靠的全双工消息流。SQLServer保证一个会话中的消息按顺序刚好向一个应用分发一次。每个会话是一个会话组的一部分。相关的会话能够与同一个会话组相关联。会话出现在两个服务之间。一个服务是会话的一个命名的端点。会话和消息都是强类型的。每个消息都有一个指定的类型。SQLServer可以选择验证消息格式是否是良好的XML,消息是否为空,或者消息是否遵循XML模式。一个协定定义了会话中所允许的消息类型,以及哪些会话参与者能够发送这种类型的消息。SQLServer提供了一个默认的协定和消息类型,以满足只需要可靠流的应用。
12、企业版中提供了两种实现数据库可用性高的方法,故障转移群集(Failover clustering)和日志传送(Log shipping),这些都是标准版中所没有的,但对于很多实用性很强的关键业务系统来说往往的必不可少的。和标准版相比,SQLServer 2005企业版处理可以利用更多的硬件资源来增强性能,还提供了联合数据库、索引视图、并行DBCC及增强的预读和扫描等特性来提高数据库的服务性能。SQLServer的数据仓库和商务智能组件包含:SQLServer集成服务,SQLServer分析服务,SQLServer报表服务。它们分别在独立的服务器中实现,并且能彼此独立的安装在一台或多台机器上。它
13、们能通过本地连接器、OLE-DB或者ODBC驱动链接多种数据源,比如文本文件、电子表格或者各种关系数据库系统。它们一起提供了一个端到端的解决方案,进行抽取、转换和加载数据,然后对数据建模和添加分析功能,并最后建立和分析数据的报表。分析服务器的各个组件能够集成并相互辅助。SQL Server 2005集成服务是一个企业数据转换和数据集成的解决方案,可以用它从分散的源抽取、转换、聚集和合并数据,并把它转移到单个或多个目的地。SQLServer分析服务组件包含针对商务智能应用的联机分析处理和数据挖掘功能。分析服务支持瘦客户架构。计算引擎在服务器端,查询在服务器端解析,避免了在客户端和服务器端之间传输
14、大量的数据。SQLServer还支持数据挖掘扩展,用来与数据挖掘模型交互的语言,就像SQL是用来与表和视图交互的语言一样,可以创建和训练模型,并将其存储在分析服务数据库中。然后,可以浏览模型中的模式,或者通过使用特殊的语法,将其应用于新的数据执行预测。SQL Server 2005中的数据挖掘能够用于存储在关系或多维的数据源上。通过特定的任务和转换,其他数据源也能够支持,使得数据挖掘直接作用于集成服务的操作型数据的流水线上。报表服务是一个新的基于服务器的报表平台,它可以用来创建和管理包含来自关系和多维数据源的数据的表格、矩阵、图形和自由格式的报表。创建的报表能够通过基于Web的连接查看和管理。
15、矩阵报表能够为高层次的查看汇总数据,同时也支持下钻报表的细节。参数化报表可用来在运行时基于提供的值进行数据过滤。用户可以随时从大量的查看格式中选择喜欢的格式来显示报表,并用来操纵数据和打印。2.2 JSP简介JSP是Sun Microsystems公司倡导,许多公司参与一起建立的一种动态网页技术标准。JSP技术使用Java编程语言编写类XML的tags和scriptlets,来封装产生动态网页的处理逻辑。网页还能通过tags和scriptlets访问存在于服务端的资源的应用逻辑。JSP将网页逻辑与网页设计和显示分离,支持可重用的基于组件的设计,使基于Web的应用程序的开发变得迅速和容易。Web
16、服务器在遇到访问JSP网页的请求时,首先执行其中的程序段,然后将执行结果连同JSP文件中的HTML代码一起返回给客户。插入的Java程序段可以操作数据库、重新定向网页等,以实现建立动态网页所需要的功能。JSP与Servlet一样,是在服务器端执行的,通常返回给客户端就是一个HTML文本,因此客户端只要有浏览器能浏览。JSP页面由HTML代码和嵌入其中的Java代码所组成。服务器在页面被客户端请求以后对这些Java代码进行处理,然后将生成的HTML页面返回给客户端的浏览器。Servlet是JSP的技术基础,而且大型的Web应用程序的开发需要Java Servlet和JSP配合才能完成。JSP具备
17、了Java技术的简单易用,完全的面向对象,具有平台无关性且安全可靠,主要面向因特网的所有特点。JSP技术的优点如下。1.一次编写,到处运行。在这一点上,Java比PHP更出色,除了系统之外,代码不用做任何更改。2.系统的多平台支持。基本上可以在所有平台上的任意环境中开发,在任意环境中进行系统部署,在任意环境中扩展。相比ASP.net的局限性是显而易见的。3.强大的可伸缩性。从只有一个小的Jar文件就可以运行Servlet/JSP,到由多台服务器进行集群和负载均衡,到多台Application进行事务处理,消息处理,一台服务器到无数台服务器,Java显示了一个巨大的生命力。 4.多样化和功能强大
18、的开发工具支持。Java已经有了许多非常优秀的开发工具,而且许多可以免费得到,并且其中许多已经可以顺利的运行于多种平台之下。5.支持服务器端组件。Web应用需要强大的服务器端组件来支持,开发人员需要利用其他工具设计实现复杂功能的组件供Web页面调用,以增强系统性能。JSP可以使用成熟的Java Beans 组件来实现复杂商务功能。内部对象说明:Request客户端请求,此请求会包含来自Get/Post请求的参数;Response网页传回客户端的响应;pageContext 网页的属性是在这里管理;session 与请求有关的会话;application servlet正在执行的内容;out用来
19、传送响应的输出流;config代码片段配置对象;page JSP网页本身;exception针对错误网页,未捕捉的例外。JSP的运行方式是在服务器启动后,当Web浏览器端发送过来一个页面请求时,Web服务器先判断是否是JSP页面请求。如果该页面只是一般的HTML/XML页面请求,则直接将HTML/XML页面代码传给Web浏览器端。如果请求的页面是JSP页面,则由JSP引擎检查该JSP页面,如果该页面是第一次被请求、或不是第一次被请求但已被修改,则JSP引擎将此JSP页面代码转换成Servlet代码,然后JSP引擎调用服务器端的Java编译器javac.exe对Servlet代码进行编译,把它变
20、成字节码(.class)文件,然后再调用Java虚拟机执行该字节码文件,将执行结果传给Web浏览器端。如果该JSP页面不是第一次被请求,且没有被修改过,则直接用JSP引擎调用Java虚拟机执行已编译过的字节码.class文件,然后将结果传送给Web浏览器端。从上面的叙述中我们不难看出JSP和Servlet的关系。JSP引擎负责把JSP页面翻译成Servlet,因此JSP在底层完全就是Servlet(指原始概念上的Servlet,而不是HttpServlet)。JSP编程对应javax.servlet.jsp,更确切地讲,这个包是供JSP引擎使用的,它在做翻译的时候需要用到这个包,我们在编写JS
21、P页面的时候是不需要涉及这个包的。为什么有了Servlet还要在高层实现一个JSP呢?这个问题是跟Servlet本身编写的烦杂程度有关,如果用Servlet来控制页面外观的话,将是一件十分繁琐的事情,使用JSP就把烦杂的打印任务交给了JSP引擎,程序员可以把精力集中到逻辑控制上面。一般来说,支持JSP的服务器总是支持Servlet的,因为JSP本身需要Servlet的支持。Tomcat其实是一个JSP引擎,对Servlet的支持只是其功能的一部分。在使用JSP技术开发网站时,并不强调使用Servlet。Servlet的应用是没有问题的,它非常适合服务器端的处理和编程。但是如果用Servlet处
22、理大量的HTML文本,那么将是一件极其繁琐的事情,这种事情更适合机器去做,否则,就是浪费程序员的体力。所以Servlet更适合处理后端的事物,前端效果用JSP来实现更为合适。早期的JSP标准给出了两种使用JSP。这些方式都可以归纳为JSP模式1和JSP模式2,主要差别在于处理大量请求的位置不同。在模式1中,JSP页面独自响应请求并将处理结果返回客户。这里仍然有视图和内容的分离,因为所有的数据都依靠bean来处理。尽管模式1可以很好地满足小型应用的需要,但却不能满足大型应用的需要。大量使用模式1可以很好地满足小型应用的需要,但却不能满足大型应用的需要。大量使用模式1,常常会导致页面被嵌入大量的S
23、cript和Java代码。特别是,当需要处理的商业逻辑很复杂时,情况会变得很严重。也许这对于Java程序员来说,这不是大问题。但是如果开发者是前台界面设计人员,在大型项目中,这是很常见的,则代码的开发和维护将出现困难。在任何项目中,这样的模式多少总是会导致定义不清的响应和项目管理的困难。JSP模式2是一种面向动态内容的实现,结合了Servlet和JSP技术。它利用两种技术原有的优点,采用JSP来表现页面,采用Servlet来完成大量的处理,Servlet扮演一个控制者的角色,并负责影响客户请求。接着,Servlet创建JSP需要的bean和对象,在根据用户的行为,决定将哪个JSP页面发送给用户
24、。特别要注意的是,JSP页面中没有任何商业处理逻辑,它只是简单的检索Servlet先前创建的bean或者对象,再将动态内容插入预定义的模板。从开发的观点来看,这一模式具有更清晰的页面表现,清楚的开发者角色划分,可以充分利用开发小组中的界面设计人员,事实上,越是复杂的项目,使用模式2的好处就越突出。例如,Struts技术框架就是模式2最好的实现。在模式2中,JSP和Servlet可以在功能上最大幅度地分开。正确使用模式2,将会有一个中心化的控制器(Servlet),以及只完成显示的JSP页面。另一方面,模式2的实现很复杂。因此,在简单应用中,可以考虑使用模式1。2.3 J2EE简介J2EE平台规
25、范是一个由SUN公司定义的用于简化分布式企业级应用开发与部署的基于组件的模式(The J2EE Platform Specification defines a component-based model that simplifies enterprise development and deployment)。它是一整套功能非常健壮的开发企业级中间件的规范,旨在为支持Java语言服务器端部署而提供平台无关的、可移植的、多用户的、安全的和标准的企业级平台。它为企业级服务器端应用的开发人员提供了巨大的便利。为企业级Java应用的部署创造了一个一致的平台。基于层次化组件模式的J2EE平台把业务逻
26、辑和底层网络技术分离开来,具有可伸缩性、扩展性、易开发性和易维护性,己经成为企业级商业分布式网络计算的事实标准。J2EE是大量业内技术专家、教育专家集体智慧和经验设计出来的一套先进、完美、实用的规范,从这个规范的开发者将得到行业的广泛支持,使企业级应用的开发变得简单、快速。学习Java,与其说是学一种技术,还不如说是在学习一种编程思想,而J2EE系统平台的思想是通过一个基于组件的应用程序模式为分布式应用程序提供一个统一的标准。J2EE不仅巩固了标准版中的许多优点,例如“编写一次、随处运行”的特性、方便存取数据库的JDBC API,CORBA技术以及能够在Internet应用中保护数据的安全模式
27、等等,同时还提供了对EJB (Enterprise JavaBeans ),Java Servlet API,JSP (Java Server Pages)以及XML技术的全面支持。其最终目的就是成为一个能够使企业开发者大幅缩短投放市场时间的体系结构。J2EE体系结构提供中间层集成框架用来满足无需太多费用而又需要高可用性、高可靠性以及可扩展性的应用的需求。通过提供统一的开发平台,J2EE降低了开发多层应用的费用和复杂性,同时提供对现有应用程序集成强有力支持,完全支持Enterprise JavaBeans,有良好的向导支持打包和部署应用,添加目录支持,增强了安全机制,提高了性能。J2EE为搭建
28、具有可伸缩性、灵活性、易维护性的商务系统提供了良好的机制:保留现存的IT资产;高效的开发;支持异构环境;可伸缩性;稳定的可用性等。基于这些优势的考虑,新一代客户关系管理系统决定采用J2EE体系结构来作为系统的实现载体。J2EE使用多层的分布式应用模型,应用逻辑按功能划分为组件,各个应用组件根据它们所在的层分布在不同的机器上。其有四个层次和相应的容器:运行在客户端机器上的客户端层(Client Tier)、运行在Web服务器上的Web层(Web Tier)、运行在EJB服务器上的业务层(Business Tier)和运行在EIS服务器上企业信息系统层(Enterprise Information
29、 System Tier)。其中Web层和业务层共同组成了三层J2EE应用的中间层,其它两层是客户端层和存储层或企业信息系统层。一般情况下,许多开发商把Web服务器和EJB服务器产品结合在一起发布,称为应用服务器或J2EE服务器。J2EE组件和层次如图2-1所示。图2-1 J2EE组件和层次图J2EE各层的组件如下。1.客户端层组件:包括应用客户端程序和浏览器。2.Web层组件:包括Java Servlet和Java Server Pages(JSP)。3.业务层组件:包括Enterprise JavaBeans(EJB),包含业务层代码的逻辑,用来满足银行、零售和金融等特殊商务领域的需要。4
30、.企业信息系统层组件:包括企业基础建设系统例如企业资源计划(ERP),大型机事务处理,数据库系统,及其它的遗留信息系统等。J2EE应用程序的一个主要优点是中间层的多层应用程序。在J2EE平台,中间层商业逻辑是由EJB(Enterprise JavaBeans)组件实现的,这些EJB组件使电子商务开发者从烦琐的系统设计中解脱出来,将精力主要放在商业逻辑上,提高了应用的质量和加快了开发的速度,而让EJB Server处理底层复杂的各种系统级任务,如事务处理、组件的生命周期、状态维持、并发控制、安全检测、资源共享等。需要这些服务的代价并不高,不用编程,只要通过简单的配置就行。如上所述,J2EE的分层
31、结构把Web层与企业信息系统分开,使开发人员能集中精力分别进行商务逻辑或企业信息系统的设计,从而使大型的商务应用软件的设计成为可能。系统功能模块清晰,可读性强,维护和升级方便,各层开发人员分工明确,使J2EE成为企业建立自己的信息管理系统的最佳选择之一。第3章 需求分析3.1 系统需求分析需求分析是软件开发目的的基础,只要有了需求分析才知道要做的是什么,需要用什么技术开发,如何设计,根据所采用的技术来规划项目的开发进度。在项目开发过程中,需求分析的工作是非常重要的。任何一个组织或集体,实现它内部人员的管理或是各个部门的协同工作都是非常必要的。通常来说,一个酒店,每天都要管理顾客的客房预定以及入
32、住,客房状态,还要做到菜品等其他消费商品信息的共享,这些工作由酒店管理者完成,是管理员的工作重点。所以,酒店客房管理系统在当今酒店业发展的流行趋势下,根据管理员对系统的需求,前台工作人员对功能的需求,设计本管理系统。根据实际情况及分析结果,发现实现酒店管理的网络化、信息化是十分有必要的,因此设计了酒店管理系统。3.2 用例分析3.2.1 管理员用例图管理员是系统的权限最高用户,涉及到六大功能模块,管理员对系统的各项功能有着操作的权限,能够及时动态的掌握酒店信息的各项情况。其用例图如图3-1所示。图3-1 管理员用例图3.2.2 会员用例图普通用户可通过注册成为系统的会员,涉及几大功能模块,通过
33、对系统前台功能的操作,了解酒店业务和特色,了解其销售的商品,并进行预订操作。其用例图如图3-2所示。图3-2 会员用例图3.3 系统E-R图根据用例图及酒店需求,本系统各实体间E-R图初步形成,如图3-3所示。图3-3 系统E-R图3.4 设计的基本思想设计思想遵循以下几点:1.采用B/S模式进行开发,其优点是后台与前台处理层次分明,而且符合众多已经习惯网页方式的用户。2.采用面向对象的开发与设计理念。运用面向对象技术的前提是对整体系统的高度和准确抽象,通过它可以保证系统良好的框架,进而带来产品较强的稳定性和运行效率。3.采用模块化设计。模块化设计要求将整个系统划分成基于小的模块,有利于代码的
34、重载,简化设计和实现过程。4.简单方便的系统界面。设计简单友好的系统界面,方便用户较快的适应系统的操作。5.速度优先原则。由于此工具最重要的评测标准就是速度,因此在设计过程中,具体过程尽量做到资源占用少,速度快。6.设计既要突出重点,又要细致周到。要符合设计需求,在有可能改进的地方进行扩充,使系统更适应用户的需要。3.5 性能需求1.系统的安全性:酒店管理系统在管理权限上要严格进行控制。具体要求:想登录酒店管理系统进行操作,必须有操作权限,没有权限的用户不能通过任何方式登录系统查看系统的任何信息和数据,以确保系统的严密性和安全性。2.数据的完整性:包括如下。(1)各种记录信息的完整性,信息记录
35、内容不能为空。(2)各种数据间相互联系的正确性。(3)相同数据在不同记录中的一致性。3.6 界面需求界面设计目前已经成为评价软件质量的一条重要指标,一个好的用户界面可以增加用户使用系统的信心和兴趣,提高工作效率,JSP技术是用JAVA语言作为脚本语言的,JSP网页为整个服务器端的JAVA库单元提供了一个接口来服务于HTTP的应用程序。创建动态页面非常方便。用户界面是指软件系统与用户交互的接口,通常包括输出、输入、人-机对话的界面格式等。1.输出设计:输出是由计算机对输入的原始信息进行加工处理,形成高质量的有效信息,并使之具有一定的格式,提供管理者使用,这是输出设计的主要职责和目标。系统设计的过
36、程正好和实施过程相反,并不是从输入设计到输出设计,而是从输出设计到输入设计,这是因为输出表格直接与使用者相联系,设计的出发点应当是保证输出表格方便地为使用者服务,正确及时反映和组成用于各部门的有用信息。输出设计的原则是考虑既要全面反映不同管理层的各项需要,又要言简意赅,不要将用户需要和不需要的都提供给用户。2.输入设计:输入数据的收集和录入是比较麻烦的,需要大量的人力和一定设备,并且容易出错。如果输入系统的数据有错误,则处理后的输出将扩大这些错误,因此输入数据的正确性对于整个系统质量的好坏是具有决定性意义的。输入设计的原则有:输入量应保持在能满足处理要求的最低限度。设计中可采用设置字段初值,下
37、拉式数据窗口等方式尽量减少用户键盘输入量。输入量越少,错误率就越少,数据准备时间也减少;输入的准备及输入过程应尽量容易进行,从而减少错误的发生;应尽量早对输入数据进行检查(尽量接近原数据发生点),以便使错误及时得到更正;输入数据尽早地用其处理所需的形式被记录,以避免数据由一种介质转移到另一种介质时需要转录而可能发生的错误。第4章 系统概要设计4.1 设计的原则1.标准化和规范化原则:制订适合于本系统的分类编码方案。本软件目标平台为Microsoft Windows XP操作系统,为实现系统的兼容,必须保证软件开发过程中采用的开发平台、应用程序接口、开发技术符合Windows平台标准,同时要保证
38、在系统的分析、设计、实现、测试、维护等阶段中必须采取开放路线,遵循软件工程的标准、规范。2.安全性原则:作为一款信息安全方面的软件,软件自身的安全性十分重要。要全面考虑各种非安全状态,保证程序和程序生成文件的安全,同时需要加强权限的控制,将软件运行权限提升为管理员权限,以防止程序被非法启动等等。3.健壮性原则:在程序设计过程中充分考虑用户操作时正常状态与非正常状态,确保在输入异常情况下,程序能够给用户相应提示并正常运行,在遇到错误时用户可通过帮助文档或联网寻求帮助。4.2 项目规划由于本系统所要实现的功能几乎都要将改变的数据保存至数据库,而本系统是应用JSP编写提供给会员和管理员的网页,它的运
39、行是要建立在有数据库保存基础上的。所以,数据库的建立是尤为重要的,在该系统的系统架构图中,SQLServer位于整个系统架构的底部,处于一个基础的位置,需要为每个功能建立相关的表格存储在数据库中。本系统采用JDBC模式对数据库进行连接。Servlet控制器的功能是重定向,根据用户的输入,分发事件给适当的类处理请求。Servlet面向“请求”,JSP更加面向“响应”,这更加符合本系统所要实现的应用需求。所有客户的HTTP请求都会发给servlet控制器,控制器来分派处理请求,重定向到相应资源,处理完后分派视图。ServletRequest接口提供一个方法RequestDispatcher, ge
40、tRequestDispatcher(String path)参数为请求被调度的目的地。调用RequestDispatcher的include( )/forward( )方法进行重定向。可以达到集中控制、提高系统可维护性、增进重用等效果。目前,JSP+JavaBean的组合成为了一种事实上最常见的JSP程序标准,常用于制作动态网站。它通过Java虚拟机正确执行。JavaBean在JSP程序中常用来封装事务逻辑、数据库操作等等,可以很好地实现业务逻辑和前台程序的分离,使系统具有更好的健壮性、灵活性。用户可以使用JavaBean将功能、处理、值、数据库访问和其他任何可以用Java代码创造的对象进行
41、打包,并且其他开发者可以通过内部JSP页面、servlet、其他JavaBean、applet程序或者应用来使用这些对象。用户可以认为JavaBean提供了一种可以随时随地的复制和粘贴功能,而不用关心任何改变。酒店客房管理系统的系统架构图由图4-1所示。图4-1 系统架构图本系统构架主要分为前台与后台两个部分,前台的功能为普通客人或会员设计,后台功能为酒店管理者设计。前台可以实现普通用户注册为会员、会员登录、会员留言、会员查看信息、会员空间功能,具有会员权限的用户可以使用前台的系统留言、查看信息、空间等功能,这些功能也会检验用户是否登录系统,其中留言功能可以实现会员编辑留言并提交,查看信息包括
42、查看酒店出售的菜品信息、客房信息,查看关于酒店动态的新闻信息、公告信息,可以对每个酒店出售的商品进行预订操作,并在会员空间里可以查看该会员已预订的客房或菜品,会员可以在会员空间里删除自己的预订信息或者重新预订;后台可以实现修改个人密码、会员信息管理、菜品信息管理、订菜信息管理、用餐信息管理、客房信息管理、预订信息管理、入住信息管理、新闻信息管理、留言信息管理等功能,具有管理员权限的用户登录后台管理后可以使用后台的全部管理功能,可以修改自己的登录密码,可以删除酒店会员信息改变会员用户权限,可以添加或者删除出售的客房信息或者菜品信息,可以对会员的客房预订信息进行删除操作或者安排入住,对会员的订菜信
43、息进行删除或者用餐操作,按着会员号查看所有会员的预订或者订菜信息,删除会员的留言信息,删除酒店的新闻信息或者编辑新闻并提交。按照需求分析,规划系统功能结构如图4-2所示。酒店客房管理系统 前台后台会员登录会员注册会员空间查看信息菜品管理客房信息菜品信息新闻公告客房管理修改密码会员管理预订管理入住用餐新闻留言取消预订用餐详细查看取消预订入住详细查看订菜管理预订管理图4-2 酒店客房系统功能结构图4.3 系统工作流程1.会员操作主要包括:编辑留言,查看酒店新闻信息,查看客房信息,选择要入住的客房并预订,提交预订信息的同时交纳押金,查看自己预定的菜品和房间并取消预订。会员登录时,主要进行选择客房预订
44、的操作,其子系统流程图如图4-3所示。留言查看新闻查看客房信息预订客房提交预订信息交纳押金查看菜品信息订菜添加订菜信息缴纳现金查看预订信息删除预订信息退出会员登录图4-3 会员子系统流程图2.管理员操作主要包括:修改个人密码,删除客房预订,设定客房为入住,编辑新闻、留言信息,查看会员信息。管理员登录后,可以对酒店的日常客房运营进行管理,以及对新闻,留言等信息查看,进一步了解酒店经营状况。管理员子系统流程图如图4-4所示。添加新闻删除留言输入客房信息修改个人密码入住取消预订删除入住输入菜品信息用餐取消订菜按会员号查找预订信息取消预订管理员登录退出图4-4 管理员子系统流程图4.4 系统模块划分酒
45、店客房管理系统是根据现代酒店服务行业的需求开发而成,通过系统把所有与酒店客房服务相关的数据统一管理,将酒店运营所需信息集成化,酒店管理者可以使用这样一套方便的管理方式。本系统主要包括:用户登录模块、管理员操作模块、用户操作模块三个模块。4.4.1 用户登录模块用户登录模块主要能够完成:管理员登录、会员登录这两个身份用户的登录。这两种用户可以基本完成对系统的信息化管理。只有输入正确的用户名和密码才能登录本系统,保证了系统信息的安全性。登录模块,以管理员登陆为例,其时序图如图4-5所示。图4-5 登录模块时序图4.4.2 管理员操作模块管理员操作主要实现,对用户客房的管理,管理留言,编辑酒店新闻,
46、保证前台体现的用来做酒店广告的信息,与酒店内部资料一致。管理员操作模块划分为以下几个部分:1.管理员修改个人密码。管理员登录后可修改自己的个人密码。2.管理员删除添加客房信息。3.管理员设置取消预订客房,设置入住客房。4.管理员按会员号查看预订客房信息,取消预订,设置入住客房。5.管理员删除入住信息。6.管理员删除添加菜品信息。7.管理员设置取消预订菜品,设置该菜品用餐。8.管理员按会员号查找订菜信息,取消订菜信息,设置用餐。9.管理员删除用餐信息。10.管理员删除会员信息。11.管理员编辑提交新闻信息,删除新闻信息。12.管理员删除酒店的留言。以管理员对订菜用餐信息管理操作为例,其时序图如图
47、4-6所示。图4-6 管理员子模块时序图4.4.3 会员操作模块会员操作应该主要实现,提交系统留言、查看酒店新闻、查看酒店系统公告、查看客房、预订客房并交纳押金。会员操作模块分为以下几个部分设计:1.会员查看系统公告。2.会员查看酒店的新闻。3.会员编辑留言并提交。4.会员查看客房信息,预订客房,交纳押金。5.会员查看菜品信息,预订菜品,交纳现金。6.会员查看会员空间,查看自己的预订信息,并删除预订。以会员使用系统留言功能提交留言操作为例,其时序图如图4-7所示。图4-7 会员子模块时序图4.5 系统UML类图根据数据库的表格以及每个表格属性,用My Eclipse编写相应的类,类里编写该类的set, get函数实现属性值的设定,根据每个类要做的信息管理功能,写出相应的servlet类,完成对数据库的增删改查。完成系统调试后,生成UML图,如图4-8所示。图4-8 系统UML图4.6 数据库设计采用SQLServer作为本系统的数据库。保存、保护和查看数据是数据库的工作,所以底层的引擎以一种保持数据的完整性和有效性的方式运作是非常重要的,这表明着关系数据库管理系统必须检查并拒绝任何无效数据进入无保护的实际数据库,所以在数据库端强制执行数据完整性是非常必要的。本系统使用的数据库具有很有效的数据保护功能,可以对数据安全有基础的保证。4.6.1 数据库的概念结