1、 资源预约管理系统设计与应用(预约模块) 北方民族大学学士学位论文 论文题目: 资源预约管理系统设计与应用(资源预约) 北方名族大学教务处制40毕业设计(论文)原创性声明和使用授权说明原创性声明本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得 及其它教育机构的学位或学历而使用过的材料。对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。作 者 签 名: 日 期: 指导教师签名: 日期: 使用授权说明本人完全了解 大
2、学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。作者签名: 日 期: 学位论文原创性声明本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声明的法律后果由本人承担。作
3、者签名: 日期: 年 月 日学位论文版权使用授权书本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权 大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。涉密论文按学校规定处理。作者签名:日期: 年 月 日导师签名: 日期: 年 月 日资源预约管理系统设计与应用(预约模块)摘要资源对于一个公司或企业来说就是生命,能否合理有效地利用资源就成为了一个公司或企业能否做大做强的关键。资源预约管理系统设计与应用这个课题面很广,所以本课题以大家熟知
4、的会议室为缩影来完成本次毕业设计。会议室作为一个单位或部门的重要资源,其使用是非常频繁的。当各部门都有重要会议需要召开时,因为各种客观上的原因难免会发生冲突。为了避免冲突,各部门需要花费大量时间和精力进行预约和协调,但预约困难、协调麻烦等问题往往导致会议室不能充分发挥其应有的作用,造成效率低下,资源浪费,而且也使得会议室管理员的工作负担加大。因此,在网络化时代的今天,通过网络和现有的技术,研发一套资源预约管理系统对于一个行业的发展是很有必要的。本论文选择基于Struts的架构来完成可视化会议室资源预约系统。让相关人员可在网上随时查看预定的情况,无论何时何地都可关注会议室资源的动态情况。也可以邮
5、件通知预定会议室或取消预定情况,使得会议室资源得到充分地利用。关键字:资源预约,JSP,StrutsThe design and application of resource reservation management system(reservation module)AbstractFor a company or enterprise resource is life, whether rational and effective use of resources is a company or business can become bigger and stronger of t
6、he key. Resource reservation management system design and application of this very broad topic, so this issue known to everyone as a microcosm of the conference room to complete this graduation project.Conference room as a unit or department an important resource, its use is very frequent. When the
7、department has held an important meeting when necessary, due to various objective reasons will inevitably conflict. To avoid conflicts, all departments need to spend a lot of time and effort to make an appointment and coordination, but the appointment difficulties, coordination problems and other pr
8、oblems often result in meeting room can not fully play its due role, resulting in inefficiency, waste of resources, but also so that the conference room administrator workload increased. Therefore, in todays era of network, through the Internet and existing technologies, research and development of
9、a resource reservation management system for the development of an industry is necessary.This thesis is chosen based on the Struts framework to complete visualization conference room resource reservation system. So that relevant personnel can always view online booking situation, whenever and wherev
10、er they are concerned about the dynamics of meeting room resources. You can also e-mail notification schedule meeting rooms or cancel booking conditions, making the meeting room resources are fully utilized.KeyWords: Resource Reservation, JSP, Struts目 录摘要IAbstractII1绪论11.1系统开发背景及意义11.2论文研究内容11.3 论文的
11、组织结构12相关理论基础22.1 JSP技术22.1.1 JSP简介22.1.2 JSP 优点22.2数据库技术及相关技术32.2.1 SQL 语言简介32.2.3 Micoroft SQL Sever 简介32.2.4 Struts 简介32.2.5 MyEclipse 简介43系统分析53.1系统开发环境53.2系统开发方法53.3系统功能需求63.3.1经济可行性63.3.2技术可行性63.3.3操作可行性63.3.4开发进度可行性63.4 系统非功能需求64系统设计74.1系统功能模块设计74.2 系统体系结构75数据库设计95.1数据库设计原则95.2系统数据表95.3 E-R图10
12、5.4数据字典116详细设计及实现146.1 系统首页146.2 具体模块实现:152.2.1 系统主界面156.2.2 系统查询166.2.3 操作177 系统测试227.1 单元测试227.2 白盒测试和黑盒测试22总结25致谢26参考文献271绪论1.1系统开发背景及意义通过调查发现,由于现代公司或企业部门众多,会议室资源相对有限。传统的会议室预约方式存在很大弊端,主要包括缺乏灵活的调换机制,会议室占用信息散播滞后等问题。因此,设计和开发一套会议室预约系统,实时为用户显示会议室的占用情况,提供灵活高效的预约管理机制,充分利用有限的会议室资源显得十分必要。1.2论文研究内容互联网的飞速发展
13、使得人们的工作和生活获得很大的便利,而且,办公自动化的成功应用为消除传统会议室管理方式的弊端提供了解决方案。本文首先简要阐述了研究开发本系统的背景和意义,对所用到的JSP语言、Struts框架和其他相关技术详细介绍了系统体系结构、系统需求分析,系统整体设计方案及其功能模块的设计和具体实现及测试,最后,对系统的优化方法和实现过程中用到一些关键技术进行了分析与讨论,主要研究如何解决上述矛盾。1.3 论文的组织结构本文共分7章:第一章介绍系统开发背景及意义,论文研究内容以及论文的组织结构;第二章介绍相关理论基础,包括了数据库及相关技术、语言简介;第三章总体设计包括系统分析、系统开发环境、系统开发方法
14、、系统功能需求、系统非功能需求;第四章简要介绍系统设计,包括系统功能模块设计、系统体系结构、系统流程;第五章介绍数据库设计,主要包括数据库设计原则、系统数据表、E-R图和数据字典;第六章重要实现页面的设计,包括系统首页和具体模块实现、系统查询、预定会议室、添加会议室、修改会议室、会议室的操作等前台页面的实现;第七章是系统测试,简略介绍了单元测试还有白盒测试和黑盒测试。2相关理论基础2.1 JSP技术2.1.1 JSP简介JSP技术使用Java编程语言编写类XML的tags和scriptlets来封装产生动态网页的处理逻辑。网页还能通过tags和scriptlets访问存在于服务端的资源的应用逻
15、辑。JSP将网页逻辑与网页设计和显示分离,支持可重用的基于组件的设计,使基于Web的应用程序的开发变得迅速和容易。 Web服务器在遇到访问JSP网页的请求时,首先执行其中的程序段,然后将执行结果连同JSP文件中的HTML代码一起返回给客户。插入的Java程序段可以操作数据库、重新定向网页等,以实现建立动态网页所需要的功能。 JSP与Java Servlet一样,是在服务器端执行的,通常返回给客户端的就是一个HTML文本,因此客户端只要有浏览器就能浏览。2.1.2 JSP 优点1)一次编写,重复运行。除了系统之外,代码不用做任何修改。 2)系统的多平台支持。基本上可以在所有平台上的任意环境中开发
16、,在任意环境中进行系统部署,在任意环境中扩展。相比ASP.NET的局限性是显而易见的。 3)强大的可伸缩性。从只有一个小的Jar文件就可以运行Servlet/JSP,到由多台服务器进行集群和负载均衡,到多台Application进行事务处理,消息处理,一台服务器到无数台服务器,Java显示了一个巨大的生命力。4)多样化和功能强大的开发工具支持。这一点与ASP很像,Java已经有了许多非常优秀的开发工具,而且许多可以免费得到,并且其中许多已经可以顺利的运行于多种平台之下。 5)支持服务器端组件。web应用需要强大的服务器端组件来支持,开发人员需要利用其他工具设计实现复杂功能的组件供web页面调用
17、,以增强系统性能。JSP可以使用成熟的JAVA BEANS 组件来实现复杂商务功能。2.2数据库技术及相关技术2.2.1 SQL 语言简介SQL语言是英文StructureQuery Languge的缩写,是一种数据库专用的结构化查询语言。SQL语言用来访问和修改数据库的内容。2.2.3 SQL Sever 简介SQL Server 是一个数据库平台,使用集成的商业智能工具提供了企业级的数据管理。Microsoft SQL Server 2005 数据库引擎为关系型数据和结构化数据提供了更安全可靠的存储功能,可以构建和管理用于业务的高可用和高性能的数据应用程序。2.2.4 Struts 简介S
18、truts这个名字来源于在建筑和旧式飞机中使用的支持金属架。这个框架之所以叫Struts,是为了提醒我们记住那些支撑我们房屋,建筑,桥梁,甚至我们踩高跷时候的基础支撑。这也是一个解释Struts在开发Web应用程序中所扮演的角色的精彩描述。当建立一个物理建筑时,建筑工程师使用支柱为建筑的每一层提供支持。同样,软件工程师使用Struts为业务应用的每一层提供支持。它的目的是为了帮助我们减少在运用MVC设计模型来开发Web应用的时间。我们仍然需要学习和应用该架构,不过它将可以完成其中一些繁重的工作。如果想混合使用Servlets和JSP的优点来建立可扩展的应用,Struts是一个不错的选择。相应框
19、架结构如图2-1所示:图 2-1 Struts框架图在上图2-1中,ActionServlet这个类是Struts的核心控制器,负责拦截来自用户的请求。 Action,这个类通常由用户提供,该控制器负责接收来自ActionServlet的请求,并根据该请求调用模型的业务逻辑方法处理请求,并将处理结果返回给JSP页面显示。2.2.5 MyEclipse 简介MyEclipse企业级工作平台(MyEclipse Enterprise Workbench)是对Eclipse IDE的扩展,利用它我们可以在数据库和JavaEE的开发以及应用程序服务器的整合方面极大的提高工作效率。它是功能丰富的Java
20、EE集成开发环境,包括了完备的编码、调试、测试和发布功能。简单而言,MyEclipse是Eclipse的插件,也是一款功能强大的JavaEE集成开发环境,支持代码编写、配置、测试以及除错。 3系统分析3.1系统开发环境系统开发环境具体要求如下:1)系统开发平台:MyEclipse 3.4。2)数据库管理系统:SQL Server 2005。3)运行平台:Windows 7。4)Java开发包:JDK 5.0以上。3.2系统开发方法考虑实际情况,本系统采用结构化生命周期法进行系统分析和设计,采用瀑布式开发。瀑布式开发:开发流程分为需求分析、设计、编码、测试和维护。瀑布式开发是软件行业开始时普遍采
21、用的开发方式。瀑布式开发流程适合小型项目快速开发,可以在较短时间内完成项目的开发。瀑布式开发因为如果在开发流程中需求分析阶段未做好,易造成项目失败,所以在实际开发中已经濒临消失,但是相比较于迭代开发、敏捷开发等开发方式,其开发周期短这一优点仍有可采取性。项目开发流程如图3-1所示。图3-1 项目开发流程3.3系统功能需求3.3.1经济可行性如今,在信息泛滥的时代,速度就是一切,传统手工的管理系统或电话管理系统都大大降低了人们的工作效率,浪费了人力物力,也跟不上时代的步伐。相比之下,快速的网络管理系统会给用户带来不一样的冲击感,它不仅可以提高公司的管理效率,也节省了用户的时间,会给公司带来客观的
22、效益。现有的技术都已近成熟,支持了软件的开发。3.3.2技术可行性从硬件方面来看,计算机硬件的更新速度正在不断提高,与此同时,系统的稳定性也在不断加强。容量越来越大,性能越来越强,而价钱却越来越低。所以,仅从硬件方面来看,完全能够提供满意的系统开发环境。从软件方面来看,该资源预约管理系统采用了流行的动态网页设计技术(JSP)和当前流行的B/S(浏览器/服务器)设计模式进行开发。B/S模式本身是随着Internet技术的兴起,对传统C/S结构的一种变化或者改进结构,具有很多传统结构所不具有的优点。先进的Internet/Intranet(国际互联网/企业内部互联网)技术,保证了B/S结构的强有力
23、态势,将B/S结构的应用转变成为一种特定时代条件下的大势所趋。在这个系统的开发过程中,我们可以用JSP语言和MySQL数据库,采用Struts 框架。画图工具用Visio,在Windows7环境下来进行系统开发。现有的一些开发经验和成熟的设计模型对该系统的设计提供了保障。3.3.3操作可行性本系统采用的是简单的用户登陆界面,只要用户输入用户名和正确的密码可以登录主界面,然后进行会议室的预定,修改,查询等操作。而且界面上面都有明确的操作提示,操作简捷,任何人都可以操作。有很好的操作性,不存在不懂电脑的人不会操作的情况。3.3.4开发进度可行性本系统,一共有两个大模块,一个用户模块,一个管理员模块
24、,计划用时两个月时间完成系统。以模块化的思想,把系统分割成若干个模块,每五天完成一个模块的设计。每周星期三给老师检查进度计划,不断完善论文。在保证论文的质量的前提下按时完成计划。3.4 系统非功能需求由于本系统的用户多数为非计算机专业人士,对软件的易用性,界面友好性,可靠性要求较高;其次软件应能满足动态的功能变化,因此,设计软件应具有较好的可扩展性。在实现项目管理系统的功能的同时,系统的非功能需求如下: 1)界面友好,操作简单,帮您轻松上手;2)系统安全可靠;3)增加系统的可复用性,软件具有较好的可扩展性。4系统设计4.1系统功能模块设计本会议室预定系统可大致分为以下两个大模块。具体的描述如下
25、:1) 用户模块:包括用户登录,会议室预定,预订信息修改,会议室信息查询,退订会议室。2)管理员模块:管理用户信息,会议室信息管理,通知用户。其中,会议室信息管理又包含三个模块,分别是会议室信息查询,会议室信息修改,会议室信息删除。系统的具体功能模块图见图4-1所示:图4-1系统功能模块图4.2 系统体系结构 体系结构如下图4-2所示:图4-2体系结构图 客户通过浏览器客户端发送HTTP请求到控制器(ActionServlet),控制器通过逻辑判断,一部分发送到视图界面,需要进行逻辑判断的通过ActionForm 发送到商业逻辑(Action),商业逻辑转化成模型程序状态返回给视图JSP,再通
26、过HTTP应答返回给浏览器界面,完成一个流程 。5数据库设计5.1数据库设计原则数据库设计原则主要包括以下内容:1)发现领域中的概念,清理领域中的概念,将其映射成表。2)尽量遵循数据库设计范式:第一范式,有主键,具有原子性,列不可分割;第二范式:消除非主属性的部分函数依赖;第三范式:消除传递依赖。3)根据具体情况考虑合理添加冗余的字段。4)如果数据量非常庞大,并且频繁使用相关字段的查询,最好建立索引。5.2系统数据表根据系统的功能分析和E-R图可以设计如下所示的数据库中的表。数据库采用MySQL,调试、运行程序前必须先在MySQL服务器上建立一个数据库。下面集中给出了与该网上会议室预定系统相关
27、的各个数据表的详细结构。1)用户信息表该表反映了有关用户的信息,便于了解有关用户情况。一共包含六个属性,如表5-1所示:表5-1 用户信息表序号字段名类型长度允许空主键说明1UIDint20否是用户编码2UTimevarchar50否否使用时间3UNamevarchar50否否用户名称4UTelvarchar50否否联系方式5UEmailvarchar50是否邮箱6BIDInt20否否会议室编号 2)管理员信息表该表反映了有关管理员的信息,便于了解有关管理员情况。一共包含两个属性,如表5-2所示:表5-2管理员信息表序号字段名类型长度允许空主键说明1Nmanevarchar10否否管理员姓名2
28、MpassWordvarchar10否否密码3)会议室信息表该表反映了有关会议室的信息,便于了解有关会议室情况。主要包含六个属性,如表3-7所示:表5-3会议室信息表序号字段名类型长度允许空主键说明1BIDint20否是会议室编号2BWherevarchar50否否会议室地点3BCatainInt50否否容量4BStatevarchar50否否状态5BstartTimedatetime50是否开始时间6BendTimedatetime20是否结束时间7Bdetailvarchar1204是否会议内容5.3 E-R图根据需求分析进行初步设计可以画出本系统实体间关系的E-R图,该系统涉及三个实体,
29、分别为用户,管理员和会议室信息。E-R图如图5-4所示如下: 图5-4系统总E-R图5.4数据字典系统总数据流图如下图5-6所示 :图 5-6 系统总数据流图一个完整的系统离不开数据库,对数据库的合理设计有助于系统的运行流畅,后台操作方便,后期维护也容易一些。而数据字典又是数据库的核心。以下是一些数据字典的描述和数据库的设计。表是对各数据元素的详细说明。系统中使用的所有数据元素的定义的集合如下:1)主要的数据流(1)数据流名称:用户情况位置:用户 P1,用户P2,用户P3定义:用户情况=用户编号+用户登录名+登录密码+联系方式+E-MAIL说明:用户登录该系统时,系统会存储用户的一些基本信息。
30、(2)数据流名称:会议室情况位置:会议室会议室信息定义:会议室情况=会议室编号+会议室位置+可容人数+价格+状态说明:向用户提供会议室信息。2)主要的数据存储定义(1)数据存储名称:预订信息输入:P1,P2输出:P4数据结构:用户编号+用户名+会议室编号+预定日期+使用时间+联系方式+E-MAIL说明:用户进行预订操作后,系统会根据用户登录时的信息以及预定会议室的信息生成预定信息。(2)数据存储名称:会议室信息输入:会议室输出:P3,P4数据结构:会议室编号+会议室位置+可容人数+价格+状态说明:管理员根据会议室信息和预订信息来确定可预定会议室的信息。3)主要处理过程(1)处理过程编号P1处理
31、过程名:预定处理输入:用户情况输出:预订信息处理说明:用户进行预订会议室操作。(2)处理过程编号P2处理过程名:修改处理输入:用户情况输出:预定处理处理说明:用户对自己已预定的会议室做修改。(3)处理过程编号P3处理过程名:查询处理输入:用户情况,会议室信息输出:用户处理说明:用户查询可供预定的会议室(4)处理过程编号P4处理过程名:后台数据管理处理输入:预订信息,会议室信息,管理员情况输出:管理员处理说明:管理员修改会议室的状态,使已被预订的会议室状态改变。(5)处理过程编号P5处理过程名:通知客户处理输入:预订信息,管理员 输出:用户处理说明:管理员根据用户的预定信息,制作代表证等通知用户
32、,(6)处理过程编号P6处理过程名称:管理输入:P6输出:会议室使用情况处理说明:管理员查看会议室的使用情况,对其进行相关管理。6详细设计及实现6.1 系统首页登录界面的设计应该简洁大方。本系统登录界面有用户名和密码,两个输入框,另外再加两个按钮,分别是登录与注册。并且添加了一个美观的背景图片。在登录系统时,只有用户名和密码都输入正确时才能登录该系统。当用户名和密码为空或者有一个为空时,在点击登录按钮后系统提示“您的用户名或密码为空,请重新输入”。登录成功后才能跳转到主界面。若用户还没有注册系统时,必须先注册,输入有效的用户名和密码,点解注册按钮,即可完成系统注册。界面如下图 6-1所示 :图
33、6-1登录界面主要代码如下: inputtype=hiddenid=hide1 value=inputtype=hiddenid=hide2 value=6.2 具体模块实现:2.2.1 系统主界面会议管理系统主界面主要有系统介绍,系统查询,系统退出三个大的模块,本系统主要完成系统第二个模块。界面的设计力求简洁美观。界面如下图6-2所示 :图6-2系统主界面由于系统主界面是静态页面,没有其他主要的代码过程,所以不在这里展示。6.2.2 系统查询点击主界面上“系统查询”显示如下,在这个界面上用户可以根据会议室的状态,位置在操作栏下进行相应的操作。查询结束后可以点击推出按钮,退出系统 。界面如下图
34、6-3所示 :图6-3 系统查询主要实现代码如下: public DataSet GetAll(int pageIndex, int pageSize) SqlParameterpa=newSqlParameter(PageIndex,SqlDbType.Int) , new SqlParameter(PageSize,SqlDbType.Int) ; 这个界面上用户可以根据会议室的容量,价格pa0.Value = pageIndex; pa1.Value = pageSize; return m_help.ExeDataSet(BoardGetAllByIndex,pa); 6.2.3 操作
35、 1)删除会议室点击下面界面上“操作”按钮下的删除“X”会弹出以下对话框:点击确定退定会议室。图6-4 删除会议室其相关代码如下: public void DeleByID(int id) SqlParameterpa=new SqlParameter(BID, SqlDbType.Int); pa.Value = id; m_help.ExeSQL(DeleteById, (pa); 2)预定会议室点击“网上会议室预定系统”界面上的“预订”按钮如下:在这个界面上用户需要填写必要的信息,以保证预定的正规性和确定性。用户根据自己需要预定的会议室,填写必要的信息,然后提交给系统,预定会议室。界面如
36、下图6-5所示 :图6-5 预定会议室主要实现代码如下:public string Add(BoardBookModel news)SqlParameter pa = new SqlParameter7;pa0 = new SqlParameter(UID, SqlDbType.Int);pa1 = new SqlParameter(UName, SqlDbType.NVarChar);pa2 = new SqlParameter(BID, SqlDbType.Int);pa3 = new SqlParameter(BookDate, SqlDbType.DateTime);pa4 = new
37、 SqlParameter(UseDate, SqlDbType.NVarChar);pa5 = new SqlParameter(UTel, SqlDbType.NVarChar);pa6 = new SqlParameter(UEmail, SqlDbType.NVarChar);pa0.Value = news.UID;pa1.Value = news.UName;pa2.Value = news.BID;pa3.Value = news.BookDate;pa4.Value = news.UseDate;pa5.Value = news.UTel;pa6.Value = news.UE
38、mail; m_help.ExeSQL(Book, pa);return pa0.Value.ToString();3)添加会议室点击“网上会议室预定系统”界面上的“添加”按钮如下:在这个界面上管理员可以根据实际情况添加新的会议室。管理员通过控制权限,及时和预定者建立联系。界面下图6-7所示:图6-7 添加会议室主要实现代码如下:public string Add(BoardModel news)SqlParameter pa = new SqlParameter4; pa0 = new SqlParameter(BID, SqlDbType.Int); pa1 = newSqlParamet
39、er(BWhere, SqlDbType.NVarChar); pa2 = new SqlParameter(BCatain, SqlDbType.Int); pa3 = new SqlParameter(BPrice , SqlDbType.NVarChar); pa4 = new SqlParameter(BState, SqlDbType.NVarChar); pa0.Direction = ParameterDirection.Output; pa1.Value = news.BWhere; pa2.Value = news.BCatain; pa3.Value = news.BPri
40、ce; pa4.Value = news.BState; m_help.ExeSQL(AddBoard, pa); return pa0.Value.ToString(); static public string CheckDate(DateTime d, string sp) return d.Year + sp + d.Month + sp + d.Day; 4)修改会议室信息 点击“网上会议室预定系统”界面上的“操作”按钮下的“修改”如下图:这里管理员根据预定信息修改会议室的状态,以保证其他用户的操作正常。界面如下图6-8所示:图 6-8 修改会议室信息实现代码如下: public v
41、oid Update(BoardModel news) SqlParameter pa = new SqlParameter3; pa1 = new SqlParameter(BWhere, SqlDbType.NVarChar); pa2 = new SqlParameter(BCatain, SqlDbType.Int); pa3 = new SqlParameter(BState, SqlDbType.NVarChar); pa1.Value = news.BWhere; pa2.Value = news.BCatain; pa3.Value = news.BState; ; m_help.ExeSQL(UpdateBoard, pa); 7 系统测试7.1 单元测试单元测试集中检测软件设计的最小单元被称为模块。通常,单元测试和编码测试是同步进行的,本次在开发过程中通过对模块接口,局部数据结构,重要的执行通路,出错处理通路和边界条件等五个方面进行测