摘 要
随着互联网趋势的到来,各行各业都在考虑利用互联网将自己推广出去,最好方式就是建立自己的互联网系统,并对其进行维护和管理。在现实运用中,应用软件的工作规则和开发步骤,采用java技术建设训练场地管理系统。
本毕业设计主要实现集人性化、高效率、便捷等优点于一身的训练场地管理系统。系统通过浏览器与服务器进行通信,实现数据的交互与变更。只需通过一台电脑,动动手指就可以操作系统,实现数据通信管理。整个系统的设计过程都充分考虑了数据的安全、稳定及可靠等问题,而且操作过程简单。本系统通过科学的管理方式、便捷的服务提高了工作效率,减少了数据存储上的错误和遗漏。
本系统选用Windows7作为服务器端的操作系统,开发语言选用java,数据库选用sqlserver,使用JDBC数据库连接技术,使用myeclipse作为系统应用程序的开发工具,Web服务器选用Tomcat7.0版本。
关键词:数据通信;java;SQLSERVER;web服务器
ABSTRACT
With the advent of the Internet, all industries are considering using the Internet to promote themselves. The best way is to establish their own Internet system and maintain and manage it. In the practical application, the working rules and development steps of the application software are used to construct the news management system of Java technology.
This graduation design mainly realizes the humanized, efficient, convenient and other advantages of the news management system. The system communicates with the server through the browser to realize the interaction and change of the data. With a single computer, you can use your fingers to operate the system and achieve data communication management. The design process of the whole system takes into account the safety, stability and reliability of the data, and the operation process is simple. Through scientific management and convenient service, this system improves working efficiency and reduces errors and omissions in data storage.
This system use Windows 7 as a server operating system, choose the Java development language, database selection is essentially, using the JDBC database connection technology, using the myeclipse as the system application development tools, Web server selection Tomcat7.0 version.
KEY WORDS:Data communication; Java; SQLSERVER; The web server
目 录
摘 要
ABSTRACT
目 录
第1章 绪论
1.1开发背景与意义
1.2论文结构
第2章 主要技术和工具介绍
2.1 jsp脚本语言
2.2 sqlserver数据库
2.3 B/S结构
2.4 MVC模式
2.5 Macromedia Dreamweaver开发工具概述
2.6 tomcat服务器概述
第3章 系统分析
3.1可行性分析
3.1.1技术可行性
3.1.2经济可行性
3.1.3操作可行性
3.2需求分析
3.3业务流程分析
3.4数据流程分析
第4章 系统设计
4.1整体架构
4.2系统结构设计
4.3功能模块设计
4.4系统安全设计
4.5表单字段校验处理设计
4.6系统维护设计
4.7数据库设计
4.7.1数据库设计概述
4.7.2概念设计
4.7.3逻辑设计
4.7.3物理设计
第5章 系统实现
5.1登录模块的实现
5.2系统首页的实现
5.3用户端模块的实现
5.3.1反馈模块的实现
5.3.2预约模块的实现
5.4管理员模块的实现
5.4.1用户管理模块的实现
5.4.2场地管理模块的实现
5.4.3设备管理模块的实现
第6章 系统测试
6.1测试目的与定义
6.2功能测试
6.3测试结果
6.4测试评价
第7章 总结
致 谢
参考文献
第1章 绪论
1.1开发背景与意义
21世纪时信息化的时代,几乎任何一个行业都离不开计算机,将计算机运用于训练场地管理也是十分常见的。过去使用手工的管理方式对训练场地进行管理,造成了管理繁琐、难以维护等问题,如今使用计算机对训练场地的各项基本信息进行管理,比起手工管理来说既方便又简单,而且具有易于管理、搜索速度快、存储量大等多个优点。将其使用在训练场地管理中,不仅能够提高训练场地管理中管理员的工作效率,而且可以使训练场地管理更加科学与规范。在信息化时代的不断冲击下,训练场地管理与计算机技术的结合,将会是一条提高训练场地管理水平的捷径。
1.2论文结构
第一章是论文的绪论部分,主要介绍了课题的研究背景以及研究目的和意义。
第二章研究了训练场地管理系统的所采用的开发技术和开发工具。
第三章研究了训练场地管理系统的需求分析,根据系统的特点,分析系统采用的体系结构及开发方法,以及该系统的运行环境,并分析了业务流程,绘制了业务流程以及数据流程。
第四章是对系统的详细设计进行说明。
第五章是系统的具体实现,介绍系统的各个模块的具体实现。
第六章在前几章的基础上对系统进行测试和运行。
最后对系统进行了认真的总结,以此对未来有一个新的展望。
第2章 主要技术和工具介绍
2.1 jsp脚本语言
JSP是一种跨平台的网页技术,最终实现网页的动态效果,与ASP技术类似,都是在HTML中混合一些程序的相关代码,运用语言引擎来执行代码,JSP能够实现与用户的交互,方便用户的使用。
JSP技术具有诸多优点,由于JSP是基于Java的,所以具有了Java的最大优点。可以忽略所使用的平台,实现仅需一次编写就能够到处运行使用,而且还具有很好的安全性和多平台支持的特性,能够在任何平台的任何环境中进行开发,进行系统部署和环境扩展。它也有属于自己的功能强大的开发工具的支持,并且可以通过很多渠道免费得到,这就为JSP技术的传播也准备了条件[5][6]。
与微软公司的ASP技术相比,JSP具有如下优点:
(1)开放的技术:JSP技术基于平台和服务器的相互独立,技术支持来自广泛 的、专门的、各种工具包,有服务器的组件和数据库设备开发商提供。相比之 下,ASP技术主要依赖MICROSOFT支持。
(2)平台和服务器的独立性:JSP编写的代码可运行在任何符合JAVA语法结构的环境中。这样JSP就能够运行在多种WEB服务器上并支持来自多家开发商提供的各种工具包。
(3)开放的开发过程,开放的源码:自1995年以来,SUN用开放过程方法同国际JAVA组织合作开发和修改JAVA技术和规范。
(4)JSP标记可扩充性:JSP技术能够为开发者扩展JSP标记,充分利用与XML兼容的标记技术强大的功能,大大减少对脚本语言的依赖。
(5)JSP跨平台的可重用性:JSP组件(EJB,JavaBean或定制的JSP标记)都是跨平台可重用的。
2.2数据库
Sqlserver的T-SQL支持ANSI SQL-92标准,是结构化查询语言SQL的一种。SQLServer在身份验证上主要采用以下方式:登录验证、数据库用户帐号许可验证、二级安全验证等等。且在同一时间支持SQLServer验证和Windows NT验证两种模式。
SQLServer 2008中具有失败转移集群和数据库镜像技术,失败转移集群和数据库镜像技术可以确保企业向员工、客户和合作伙伴提交的应用系统高度可靠和可用。微软的SQLServer 2008在设计的时候引入了一套集成管理工具和管理应用编程接口(APIs),对企业提供易用性、可管理性和对大型SQLServer配置的支持。由于采用了数据库加密、相比以前版本更加安全的默认设置、对密码政策和安全模型进行了加强以及实行了许可化控制的细化,使得企业在运用SQLServer 2008对数据进行管理时能提供安全级别非常高的功能。
SQLServer采取智能化工具集成这样的方法对企业级的数据提供核心的重要的数据管理模式。SQLServer数据库引擎,可以在关系和结构化数据供应了更安全靠谱的存储,加强数据存储的性能和管理。除此之外,把SQLServer0分析和整合报表的能力以及和微软的报告联合起来,把它们两者联系在一起可以和微软的VS和Microsoft Office系统发展成个全新的集成系统,系统能够更好的开发是因为它们提供了截然不同的处理方案。
2.3结构
B/S模式也就是浏览器/服务器模式,它的界面部分是在浏览器端展示,而主要工作是由服务器端进行实现的,用户的请求由浏览器端提交给服务器端进行处理,而服务器将处理结果反馈给浏览器端,在浏览器端界面描画给用户查看。采用B/S模式不仅可以避免用户必须安装专业软件才能开发系统或者访问系统的局限性,而且更加便利。
2.4 MVC模式
MVC是一个框架模式,有三个核心部件,即模型(Model)、视图(View)和控制器(Controller)。模型表示应用程序核心,视图表示显示数据,控制器表示处理输入。它们各自处理自己的任务,将业务逻辑和数据显示分离,便于代码的重用。
2.5开发工具概述
Dreamweaver功能强大,使得各个层次的开发人员和设计人员都能够快速创建界面吸引人的基于标准的网站和应用程序。从对基于 CSS 的设计的领先支持到手工编码功能,Dreamweaver 提供了专业人员在一个集成、高效的环境中所需的工具。Dreamweaver的特点主要有:卓越的可视环境--简单易用; 所见即所得的强大功能;方便快速的文本编排;专业的HTML编辑--Roundtrip HTML;高质量的HTML生成方式;实时的HTML控制;重复元素库;基于目标浏览器的检测。
2.6服务器概述
Tomcat属于著名的Apache工程组下的一个独立项目组jakarta,该项目组和Java领导者Sun公司合作共同致力于Servlet/JSP服务技术的开发。虽然目前Tomcat不是性能最好的Servlet/JSP 服务器,但是由于它的开发者具有深厚的技术背景,加上该项目本身非常活跃。同时Tomcat属于开放源代码项目设备,可以使我们有机会更深入的了解和使用。
第3章 系统分析
3.1可行性分析
本次毕业设计基于B/S 模式下,运用Java、JSP技术采用的是sqlserver数据库和MyEclipse实现,总体的可行性共分为以下三个方面。
3.1.1技术可行性
采用的是当下流行的JAVA语言,JSP技术,它具有如下优点。强大的可伸缩性。从只有一个小的Jar文件就可以运行Servlet/JSP,到由多台服务器进行集群和负载均衡,到多台Application进行事务处理,消息处理,一台服务器到无数台服务器,Java显示了一个巨大的生命力。JSP可以使用成熟的JAVA BEANS 组件来实现复杂功能。
3.1.2经济可行性
训练场地管理系统采用的插件都是开源免费的,开发工具,myeclipse,以及数据库是sqlserver皆是开源免费的,服务器采用tomcat,也是当下流行的开发所用的服务器,因为都是开源免费的,所以在开发前期,开发时用于项目的经费将会大大降低,不会让开发该软件在项目启动期受到经费的影响,所以经济上还是可行的。尽量用最少的花费去满足用户的需求。省下经费用于人工费,以及设备费用。将在无纸化,高效率的道路上越走越远。
3.1.3操作可行性
本系统实现功能的操作很简单,普通电脑的常见配置就可以运行本软件,并且只要粗通电脑使用的基本常识就可以流畅的使用本软件。电脑具备连接互联网的能力,并且可以正常访问系统,并不需要操作者有什么高超的能力,只需了解业务流程,并且按照专业知识进行正确操作即可,所以训练场地管理系统具备操作可行性。
3.2需求分析
一个系统的开发至关重要的一点就在于对需求的分析。在研究调查的基础之上,对所开发的系统功能进行的详细分析总结,从而设计出完整的系统并将其实现。用户和开发人员的交流分析,使其达到最佳理解程度,使系统功能达到最佳。
下面分别简单阐述一下这几个功能模块需求。
表3-1功能需求表
编号 | 功能名称 | 功能描述 |
1. | 用户登录 | 前台登录:保证用户通过身份验证进入系统前台进行操作 后台登录:仅管理员能够登录后台 |
2. | 个人资料管理 | 用户可以根据自己当前的情况修改个人的信息 |
3. | 预约管理 | 添加预约记录:学员添加预约记录 编辑预约记录:学员修改预约记录信息 删除预约记录:学员删除预约记录 查询预约记录:学员查询个人预约记录 预约记录审核:管理员给学员添加的预约进行审核 |
4. | 设备管理 | 添加设备信息:管理员添加设备信息 编辑设备信息:管理员修改设备信息 删除设备信息:管理员删除设备信息 查询设备信息:管理员查询设备信息 |
5. | 场地管理 | 添加场地信息:管理员添加场地信息 编辑场地信息:管理员修改场地信息 删除场地信息:管理员删除场地信息 查询场地信息:管理员查询场地信息 |
6. | 反馈管理 | 添加反馈记录:学员添加反馈记录 编辑反馈记录:学员修改反馈记录信息 删除反馈记录:学员删除反馈记录 查询反馈记录:学员查询个人反馈记录 反馈记录审核:管理员给学员添加的反馈进行审核 |
3.3业务流程分析
业务流程图是一种物理模型,它描述系统内部各单位与人员之间的业务关系和管理信息的流向。
系统的业务流程如下图所示。
图3-1系统业务流程图
3.4数据流程分析
数据流图是描述体系的逻辑模型,图中没有任何具体的物理元素。可行性研究的要求给出数据的高层逻辑关系,描述数据在系统中流动和处理的情况,表达出对新系统的设想。
零层数据流程是流程中最抽象的一层,它包括了登录管理、用户功能管理和检索维护管理等功能模块,在登录模块使用到的数据存储有用户账户信息文档、用户信息文档,用户功能管理模块需要的存储是预约动态信息文档、反馈信息文档、资料信息文档,检索维护是通过以上这些文档信息通过关键词进行搜索。
系统的0层数据流图如下图所示。
图3-2系统数据流图(0层)
一层数据流程图是对零层数据流程图的细化,将登录细分为填制登录信息和完善信息,用户功能管理细分为用户基本功能管理和用户特色功能管理。
系统的1层数据流图如下图所示。
图3-3系统数据流图(1层)
二层数据流程是对一层数据流层图中填写登录信息、用户基本功能和用户特色功能的细化。即:填写登录信息细化为填制信息、后台审核,用户基本功能细化为学员资料管理、场地查询、场地预约、设备查询、设备反馈操作。
系统的2层数据流图如下图所示。
图3-4系统数据流图(2层)
第4章 系统设计
4.1整体架构
系统整体采用分层架构,分层就是要把界面部分、业务逻辑部分、数据库访问部分的代码放在各自独立的方法或类中编写,减少代码之间的联系,分层设计思想已经已经成为开发软件的主流思想。
本系统的最大的优势不仅在于减少重复编程的工作量,缩短开发周期和降低成本,同时还是系统架构更加清晰合理,程序运行更加稳定可靠,遵循了MVC架构模式,采用分层设计,把系统分为表示层、业务层和持久层。表示层是系统与用户直接交互的层面,实现web前端界面和页面之间的跳转,该层使用业务层提供的现成服务来满足用户需求,这一层只需要编写JSP和ACTION的代码,实现页面的跳转功能,利用CSS,JavaScript脚本和html以及jsp标签设计页面的前端界面。业务层由一个个Service构成,每个Service作为一个程序的特定模块完成应用功能,Service层之间相互独立,Service层调用DAO层的方法对后台数据库执行操作,把数据库中的数据传递到JSP页面显示给用户。持久层屏蔽底层数据库的连接,为业务层Service提供一个简洁、统一、面向对象的数据访问接口,各层之间传递参数值时以对象的方式进行传递,大大简化了代码的可读性,同时操作数据库也已对象的形式存取数据库,可以减少重复代码的编写。
其构建图如下图所示。
图4-1整体架构图
4.2系统结构设计
本系统使用的角色主要有系统管理员、普通用户,普通用户可以登录个人中心进行学员资料管理、场地查询、场地预约、设备查询、设备反馈、队干部资料管理、设备反馈回复、预约回复等功能。
以管理员的身份在登录页面输入账号和密码,经过数据库身份验证,验证成功后登录系统主页,可以使用学员信息管理(学员信息登记、删除、修改、查询)、教师信息管理(教师信息登记、删除、修改、查询)、队干部信息管理(队干部信息登记、删除、修改、查询)、大队信息管理(大队信息登记、删除、修改、查询)、场地类别管理(场地类别登记、删除、修改、查询)、场地信息管理(场地信息登记、删除、修改、查询)、设备信息管理(设备信息登记、删除、修改、查询、设备反馈回复、查询)、预约记录管理(预约记录信息查询、审核)等功能操作。同时管理员可以通过关键字搜索可以搜索相应的信息,打印各种详细信息,导出各类信息列表至excel中。
系统的功能结构图如下图所示。
图4-2系统功能结构图
4.3功能模块设计
1.用户管理模块:
该模块包括用户管理和系统用户管理,系统用户主要是普通管理员,对用户信息进行管理,只有用户才可在该系统上进行相应的操作。用户对个人信息可进行修改;管理员可对自己的个人信息进行维护,同时可对用户的密码信息进行修改,也可删除系统中的用户。
2.设备反馈管理模块
学员选中某个设备,点击添加反馈,填写反馈数据,点击添加按钮,完成设备反馈操作,每次反馈,列表将生成新的反馈信息,供管理员管理。
3.设备信息管理模块
设备信息管理模块主要实现了管理员可以在系统中添加设备信息,也可以修改系统中已有的设备信息,同时可查看设备信息和搜索设备信息;而用户只能查看设备信息和搜索设备信息。
4.预约场地模块
用户查询场地信息,选择场地进入该场地的详细页面,点击预约按钮,填写预约表单,添加预约记录。
5.预约管理模块
用户预约场地模块主要实现的是对场地的预约功能,同时可查看自己的预约记录,并对预约可进行取消预约操作。管理员登录系统后,可查看用户的预约信息,也可搜索预约信息,同时可对预约信息进行确认或删除的操作。
6.场地管理模块
管理员点击场地管理菜单,点击场地添加子菜单,添加场地信息,添加成功后,该场地信息将显示给用户查看。
4.4系统安全设计
训练场地管理系统才为了防止被暴力登录,设置了登录验证码功能。除此之外,为了保证数据的安全性,用户密码被加密后存入系统数据库中,此外数据库采用的是sqlserver相对稳定,数据通过人工备份的方式进行定期备份。系统整体上数据业务逻辑前台页面做到了很好的分离,这也是能够相对保证安全。
4.5表单字段校验处理设计
1.出错信息类型
出错信息类型包括:
A 未输入必填项;
B 应输入合法字符或数字却输入非法字符或数字;
C 对空数据表进行更改或删除操作;
D 向要求唯一值的关键字段添加重复值。
2.出错处理对策
对于错误A,系统要求用户输入非空值。
对于错误B,系统要求用户输入合法字符。
对于错误C,系统提示数据表无记录可更改或删除。
对于错误D,系统要求用户输入非重复值。
4.6系统维护设计
训练场地管理系统是个现代化的高度集成的综合信息系统,系统主要服务对象为用户,最大化在页面中提供多的信息,因此在系统维护上,数据量较大,整体的维护设计如下:
(1)代码的维护:部署在云服务器上或本地服务器,通过SVN或FTP保持版本更新迭代。
(2)功能增加:功能升级在必要的前提下。
(3)数据维护:根据安全性等需求,定期对数据库进行人工备份。
4.7数据库设计
4.7.1数据库设计概述
数据库的设计在整个系统开发的过程中扮演者关键的角色,前期考虑不全面修改数据库有可能整个系统都要重新开发,所以数据库的设计不容忽视。数据库具有完整性和一致性,并且数据库的响应速度非常的快。在训练场地管理系统中,设计数据库表的各个字段,确定表和表之间的关联关系,在后期的开发中尽量减少改动数据库,提高开发效率。
4.7.2概念设计
数据库的前期设计最关键的步骤是概念结构的设计,是数据模型的概念信息。将需求分析抽象为信息世界的结构,才能更好更准确的使用数据库管理系统。其设计具有以下两点优势:
(1)能够体现事物之间的关联关,满足用户对数据的处理要求。
(2)易于理解、更改,用户的积极参与是数据库设计成功的关键。
(3)描述概念模型最有力的工具就是E-R模型,使用E-R图可以清楚的指导各实体之间的联系,它有三个关键的元素,即实体、属性和联系。
系统总体ER图如下图所示。
图4-3系统总体ER图
4.7.3逻辑设计
数据库的概念模型转换成逻辑模型又称逻辑设计,通俗的讲就是实体图转化成以关系模式、层次模式表现出来的形式。训练场地管理系统的数据库逻辑结构如下。
管理员用户信息(序号、用户名、密码、权限、添加时间)
学员信息(学号、姓名、密码、手机、性别、大队、邮箱、照片、身份证、添加时间)
场地信息(名称、场地、照片、容纳人数、添加时间)
预约信息(名称、场地、容纳人数、预约日期、预约时段、申请人、是否审核、添加时间)
设备信息(名称、照片、设备性质、添加时)
4.7.3物理设计
数据库的物理结构设计,就是在数据库中创建表设置表的属性和大小等等,建立表和表之间的关联关系。本系统所使用的部分数据表结构如下。
allusers表:
序号 | 字段名称 | 字段类型 | 大小 | 允许为空 | 最大长度 | 备注 |
1 | ID | Int | 4 | 自增编号 | 10 | |
2 | username | VarChar | 50 | 是 | 255 | |
3 | pwd | VarChar | 50 | 是 | 255 | |
4 | cx | VarChar | 50 | 是 | 255 | |
5 | addtime | DateTime | 8 | 是 | 23 |
changdileibie表:
序号 | 字段名称 | 字段类型 | 大小 | 允许为空 | 最大长度 | 备注 |
1 | ID | Int | 4 | 自增编号 | 10 | |
2 | leibie | VarChar | 50 | 是 | 255 | |
3 | addtime | DateTime | 8 | 是 | 23 |
changdixinxi表:
序号 | 字段名称 | 字段类型 | 大小 | 允许为空 | 最大长度 | 备注 |
1 | ID | Int | 4 | 自增编号 | 10 | |
2 | mingcheng | VarChar | 50 | 是 | 255 | |
3 | changdi | VarChar | 50 | 是 | 255 | |
4 | zhaopian | VarChar | 50 | 是 | 255 | |
5 | rongnarenshu | VarChar | 50 | 是 | 255 | |
6 | addtime | DateTime | 8 | 是 | 23 |
daduixinxi表:
序号 | 字段名称 | 字段类型 | 大小 | 允许为空 | 最大长度 | 备注 |
1 | ID | Int | 4 | 自增编号 | 10 | |
2 | dadui | VarChar | 50 | 是 | 255 | |
3 | addtime | DateTime | 8 | 是 | 23 |
duiganbuxinxi表:
序号 | 字段名称 | 字段类型 | 大小 | 允许为空 | 最大长度 | 备注 |
1 | ID | Int | 4 | 自增编号 | 10 | |
2 | gonghao | VarChar | 50 | 是 | 255 | |
3 | xingming | VarChar | 50 | 是 | 255 | |
4 | mima | VarChar | 50 | 是 | 255 | |
5 | xingbie | VarChar | 50 | 是 | 255 | |
6 | shouji | VarChar | 50 | 是 | 255 | |
7 | youxiang | VarChar | 50 | 是 | 255 | |
8 | zhaopian | VarChar | 50 | 是 | 255 | |
9 | shenfenzheng | VarChar | 300 | 是 | 255 | |
10 | beizhu | VarChar | 500 | 是 | 255 | |
11 | addtime | DateTime | 8 | 是 | 23 |
fankuixinxi表:
序号 | 字段名称 | 字段类型 | 大小 | 允许为空 | 最大长度 | 备注 |
1 | ID | Int | 4 | 自增编号 | 10 | |
2 | mingcheng | VarChar | 50 | 是 | 255 | |
3 | shebeixingzhi | VarChar | 50 | 是 | 255 | |
4 | fankuiyuanyin | VarChar | 500 | 是 | 255 | |
5 | fankuihuifu | VarChar | 500 | 是 | 255 | |
6 | fankuiriqi | VarChar | 50 | 是 | 255 | |
7 | fankuiren | VarChar | 50 | 是 | 255 | |
8 | issh | VarChar | 2 | 是 | 255 | |
9 | addtime | DateTime | 8 | 是 | 23 |
jiaoshixinxi表:
序号 | 字段名称 | 字段类型 | 大小 | 允许为空 | 最大长度 | 备注 |
1 | ID | Int | 4 | 自增编号 | 10 | |
2 | gonghao | VarChar | 50 | 是 | 255 | |
3 | xingming | VarChar | 50 | 是 | 255 | |
4 | mima | VarChar | 50 | 是 | 255 | |
5 | xingbie | VarChar | 50 | 是 | 255 | |
6 | shouji | VarChar | 50 | 是 | 255 | |
7 | youxiang | VarChar | 50 | 是 | 255 | |
8 | zhaopian | VarChar | 50 | 是 | 255 | |
9 | shenfenzheng | VarChar | 300 | 是 | 255 | |
10 | beizhu | VarChar | 500 | 是 | 255 | |
11 | addtime | DateTime | 8 | 是 | 23 |
shebeixinxi表:
序号 | 字段名称 | 字段类型 | 大小 | 允许为空 | 最大长度 | 备注 |
1 | ID | Int | 4 | 自增编号 | 10 | |
2 | mingcheng | VarChar | 50 | 是 | 255 | |
3 | zhaopian | VarChar | 50 | 是 | 255 | |
4 | shebeixingzhi | VarChar | 50 | 是 | 255 | |
5 | beizhu | VarChar | 500 | 是 | 255 | |
6 | addtime | DateTime | 8 | 是 | 23 |
xueyuanxinxi表:
序号 | 字段名称 | 字段类型 | 大小 | 允许为空 | 最大长度 | 备注 |
1 | ID | Int | 4 | 自增编号 | 10 | |
2 | xuehao | VarChar | 50 | 是 | 255 | |
3 | xingming | VarChar | 50 | 是 | 255 | |
4 | mima | VarChar | 50 | 是 | 255 | |
5 | shouji | VarChar | 50 | 是 | 255 | |
6 | xingbie | VarChar | 50 | 是 | 255 | |
7 | dadui | VarChar | 50 | 是 | 255 | |
8 | youxiang | VarChar | 50 | 是 | 255 | |
9 | zhaopian | VarChar | 50 | 是 | 255 | |
10 | shenfenzheng | VarChar | 300 | 是 | 255 | |
11 | beizhu | VarChar | 500 | 是 | 255 | |
12 | addtime | DateTime | 8 | 是 | 23 |
yuyuexinxi表:
序号 | 字段名称 | 字段类型 | 大小 | 允许为空 | 最大长度 | 备注 |
1 | ID | Int | 4 | 自增编号 | 10 | |
2 | mingcheng | VarChar | 50 | 是 | 255 | |
3 | changdi | VarChar | 50 | 是 | 255 | |
4 | rongnarenshu | VarChar | 50 | 是 | 255 | |
5 | yuyueshenqing | VarChar | 500 | 是 | 255 | |
6 | yuyuehuifu | VarChar | 500 | 是 | 255 | |
7 | yuyueriqi | VarChar | 50 | 是 | 255 | |
8 | yuyueshiduan | VarChar | 50 | 是 | 255 | |
9 | shenqingren | VarChar | 50 | 是 | 255 | |
10 | issh | VarChar | 2 | 是 | 255 | |
11 | addtime | DateTime | 8 | 是 | 23 |
第5章 系统实现
根据用户的需求分析设计系统的整体功能,系统实现主要介绍本系统如何实现功能的过程。
5.1登录模块的实现
系统的登录窗口是用户的入口,用户只有在登录成功后才可以进入访问。通过在登录提交表单,后台处理判断是否为合法用户,进行页面跳转,进入系统中去。
登录合法性判断过程:用户输入账号和密码后,系统首先确定输入输入数据合法性,其不能为空,然后调用数据库查找alluser表中数据,进行匹配查看此账号是否存在和密码是否正确。
在主页中切入登录窗口页面,调用设计好的CSS、JS和IMAGES等文件对页面进行整体设计,创建表单,在login.jsp页面发送登录请求,调用src下的mainctrl类的dopost方法来验证。当系统判定账号密码都正确,系统会跳转到系统的首页。
用户登录模块的IPO如下所示:
输入:用户名和密码。
处理:
1)检验用户是否满足输入的要求,即检验用户名和密码文本框是否为空,若为空,则提示用户输入用户名和密码。
2)检验是否存在用户输入的用户名,并且密码是否正确。
3)从数据库中提取记录,并储存在本地的session中(timeout默认=30min)。
4)根据用户名,将其显示在系统首页上。
5)关闭窗口。
输出:是否成功的信息。
登录流程图如下所示。
图5-1登录流程图
系统登录界面如下所示。
图5-2系统登录
用户登录的逻辑代码如下:
if(ac.equals("adminlogin"))
{
String username = request.getParameter("username");
String password = request.getParameter("pwd");
String utype = request.getParameter("cx");
String pagerandom = request.getParameter("pagerandom")==null?"":request.getParameter("pagerandom");
String random = (String)request.getSession().getAttribute("random");
if(!pagerandom.equals(random)&&request.getParameter("a")!=null)
{
request.setAttribute("random", "");
go("/login.jsp", request, response);
}
else{
String sql1 = "select * from allusers where username='"+username+"' and pwd='"+password+"' ";
List<HashMap> userlist1 = dao.select(sql1);
if(userlist1.size()==1)
{
request.getSession(). setAttribute("username", userlist1.get(0).get("username"));
request.getSession(). setAttribute("cx", userlist1.get(0).get("cx"));
gor("main.jsp", request, response);
}else{
request.setAttribute("error", "");
go("/login.jsp", request, response);
}
}
}
5.2系统首页的实现
本系统的首页使用多个jsp页面组成,通过设置页面的长度和高度限制显示区域的大小,整个系统首页以图片为背景。在一个jsp页面中,使用css指定字体大小和字体类型以及其位置,垂直排列菜单栏,通过设置超链接的样式去掉下划线和鼠标移动到该选项时变颜色等等,编写javascript脚本在导航栏显示系统的当前日期,首先定义一个数组d存放周一至周日,创建一个获取时间的对象time后通过该对象的方法获取年月日,(time.getDay())%7计算得到的结果是数组的下标,通过数组下标就获取了数组的值,利用字符窜连接把年月日和星期转换成字符窜,通过document.getElementById("date")获取标签后使用innerHTML把该字符窜显示在jsp页面。利用<jsp:include ></jsp:include>标签包含设计好的头部和左边部分的网页。
如下图所示为系统首页界面。
图5-4系统首页
其中载入首页的主要代码如下:
<table height="100%" style="width: 182px;" cellpadding="0" cellspacing="0">
<tr>
<td style="background-color: #c9defa; padding: 3px; padding-bottom: 0">
<div class="lie lie2">
<a onClick="javascript:history.back();" style="cursor:pointer" class="shouye" target="frmright">返回</a> <a style="cursor:pointer" onClick="javascript:if(confirm('确定要退出吗?')==true){parent.location.href='logout.html';}"
class="tuichu">退出</a>
<div style="clear: both">
</div>
</div>
</td>
</tr>
<tr>
<td valign="top" style="background: #c9defa" height="100%" name="fmtitle">
<iframe frameborder="0" id="frmleft" name="frmleft" scrolling="yes" src="mygo.html"
style="height: 100%; visibility: inherit; width: 182px;" allowtransparency="true">
</iframe>
</td>
</tr>
</table>
5.3用户端模块的实现
5.3.1反馈模块的实现
进入设备页,先使用sql语句查询出所有设备表的数据,用户在设备页查看设备信息和反馈信息,点击反馈,跳转至反馈添加页面,添加反馈则将发布的反馈数据封装在HashMap,中然后调用CommDAO的insert方法将反馈内容插入反馈表中,反馈管理页面则调用PageManager.getPages(url,4,sql, request ),返回一个ArrayList的对象,在for循环里,使用jsp得到每个ArrayList对象的数据,然后放入页面模板中。
设备反馈流程图如下所示。
图5-10设备反馈流程图
设备反馈界面如图所示。
图5-11设备反馈
反馈管理界面如图所示。
图5-12反馈管理
反馈添加关键代码为:
<%
HashMap ext = new HashMap();
ext.put("issh","否");
new CommDAO().insert(request,response,"yonghuzhuce",ext,true,false,"index.jsp");
%>
5.3.2预约模块的实现
用户点击某件场地点进入场地详细页,使用getmap(id,"xinxi"),通过场地ID得到场地信息,将场地信息赋值给预约信息,调用CommDAO的insert方法将预约内容插入预约表中,成功预约后,管理员管理用户的预约信息,审核预约信息。
场地预约流程图如下所示。
图5-13场地预约流程图
场地预约界面如图所示。
图5-14场地预约
预约管理界面如图所示。
图5-14预约管理
预约添加关键代码为:
<%
HashMap ext = new HashMap();
ext.put("issh","否");
new CommDAO().insert(request,response,"yonghuzhuce",ext,true,false,"index.jsp");
%>
5.4管理员模块的实现
5.4.1用户管理模块的实现
用户在yhzhgl查看用户信息,先使用sql语句查询出所有用户表的数据,然后调用PageManager.getPages(url,4,sql, request ),返回一个ArrayList的对象,在for循环里,使用jsp得到每个ArrayList对象的数据,然后放入页面模板中,添加用户则将添加的用户数据封装在HashMap,中然后调用CommDAO的insert方法将用户内容插入用户表中。
学员管理界面如下图所示。
图5-15学员管理
教师管理界面如下图所示。
图5-15教师管理
系统用户管理关键代码为:
<%
new CommDAO().delete(request,"yonghuzhuce");
String url = "yonghuzhuce_list.jsp?1=1";
String sql = "select * from yonghuzhuce where 1=1 ";
if(request.getParameter("yonghuming")=="" ||
request.getParameter("yonghuming")==null ){}else{sql=sql+" and
yonghuming like '%"+request.getParameter("yonghuming").trim()+"%'";}
if(request.getParameter("xingming")=="" ||
request.getParameter("xingming")==null ){}else{sql=sql+" and
xingming like '%"+request.getParameter("xingming").trim()+"%'";}
if(request.getParameter("QQ")=="" ||request.getParameter
("QQ")==null ){}else{sql=sql+" and QQ like '%"+request.getParameter
("QQ").trim()+"%'";}
if(request.getParameter("youxiang")=="" ||
request.getParameter("youxiang")==null ){}else{sql=sql+" and
youxiang like '%"+request.getParameter("youxiang").trim()+"%'";}
if(request.getParameter("dianhua")=="" ||
request.getParameter("dianhua")==null ){}else{sql=sql+" and dianhua
like '%"+request.getParameter("dianhua").trim()+"%'";}
if(request.getParameter("shenfenzheng")=="" ||
request.getParameter("shenfenzheng")==null ){}else{sql=sql+" and
shenfenzheng like '%"+request.getParameter("shenfenzheng").trim
()+"%'";}
sql+=" order by id desc";
//out.print(sql);
ArrayList<HashMap> list = PageManager.getPages(url,10,sql,
request );
int i=0;
for(HashMap map:list){
i++;
%>
5.4.2场地管理模块的实现
用户在changdixinxi_list查看场地信息,先使用sql语句查询出所有场地表的数据,然后调用PageManager.getPages(url,4,sql, request ),返回一个ArrayList的对象,在for循环里,使用jsp得到每个ArrayList对象的数据,然后放入页面模板中。
用户点击添加场地则跳转至changdixinxi_add.jsp,添加场地则将添加的场地数据封装在HashMap,中然后调用CommDAO的insert方法将场地内容插入场地表中。
场地管理流程图如下所示。
图5-18场地管理流程图
场地添加如下图所示:
图5-19场地添加
场地查询如下图所示:
图5-20场地查询
场地信息添加关键代码为:
<%
HashMap ext = new HashMap();
ext.put("issh","否");
new CommDAO().insert(request,response,"yonghuzhuce",ext,true,false,"index.jsp");
%>
5.4.3设备管理模块的实现
管理员添加新的设备信息,系统显示设备信息,设备信息添加功能主要指对其编号等一些基本信息的添加、删除和修改。设备查询能根据设备编号等多种条件对设备信息进行查询。
设备管理流程图如下所示。
图5-21设备管理流程图
设备添加如下图所示:
图5-22设备添加
设备查询如下图所示:
图5-23设备查询
设备信息添加关键代码为:
<%
HashMap ext = new HashMap();
ext.put("issh","否");
new CommDAO().insert(request,response,"yonghuzhuce",ext,true,false,"index.jsp");
%>
第6章 系统测试
软件测试的对该系统起着十分重要的作用,同时也大大影响着软件的可靠性。软件测试的目的就是及时发现软件中的问题,然后对此进行迭代修改,以保证软件可以完美运行,实现预期的功能。
6.1测试目的与定义
在对该系统进行完详细设计和编码之后,就要对训练场地管理系统的程序进行测试,检测程序是否运行无误,反复进行测试和修改,使之最后成为完整的软件,满足用户的需求,实现预期的功能。
6.2功能测试
功能测试就是对设备的各功能进行验证,根据功能测试用例,逐项检测,检查设备是否达到用户要求的功能。下面列出的测试用例是基于需求分析阶段的用例描述而进行的设计。
下面将通过表格的形式介绍针对本系统每个功能模块所进行的功能测试。
测试用例 | 方案 | 输入数据 | 预期结果 | 测试结果 |
用户登录 | 使用已存在的用户名和相匹配的密码、验证码登录系统 | 用户名:zcyh 密码:zcyh 验证码:6066 | 系统提示登录成功,并跳转至系统主页 | 与预期结果一致 |
使用已存在的用户名和不匹配的密码、正确的验证码登录系统 | 用户名:zcyh 密码:zcyh123 验证码:6066 | 系统提示登录失败,密码错误 | 与预期结果一致 | |
使用已存在的用户名和相匹配的密码、不正确验证码登录系统 | 用户名:zcyh 密码:zcyh 验证码:6061 | 系统提示登录失败,验证码错误 | 与预期结果一致 | |
场地管理 | 用户已登录,打开场地添加界面,输入场地名称、人数等信息 | 场地名称:wernziihu 场地人数:10 | 系统提示场地添加成功,新场地成功显示 | 与预期结果一致 |
用户已登录,打开场地添加界面,用户未输入场地名称和人数 | 场地名称: 场地人数: | 系统提示场地添加失败 | 与预期结果一致 | |
场地预约 | 用户已登录,打开场地预约界面,输入预约人、时间等信息 | 预约人:wernziihu 预约时间:16:08:12 | 系统提示场地预约成功 | 与预期结果一致 |
用户已登录,打开场地预约界面,用户未输入预约人和时间 | 预约人: 预约时间: | 系统提示场地预约失败 | 与预期结果一致 | |
设备管理 | 用户已登录,打开设备添加界面,输入设备名称、性质等信息 | 设备名称:wernziihu 设备性质:qerjzfiew | 系统提示设备添加成功,新设备成功显示 | 与预期结果一致 |
用户已登录,打开设备添加界面,用户未输入设备名称和性质 | 设备名称: 设备性质: | 系统提示设备添加失败 | 与预期结果一致 |
6.3测试结果
测试完成后,系统总体上已经完成了预期的所有功能,满足了任务书中的各项要求,该系统操作简便,界面简洁,安全性高,对用户来说无疑是一款非常实用的训练场地管理系统。
6.4测试评价
软件基本达到设计要求,功能完整,操作简便,界面简洁,安全可靠,错误处理正确,且能在出错时提示出相对应的错误种类,然而同时在测试中也发现了软件的一些不足。比如,该系统在用户的数据量达到上万条时,页面操作会有微小的卡顿,等等一些缺陷,这些需要在软件之后的进一步修改和维护时进行修改。
第7章 总结
在这次毕业设计中,本人发现在生活和工作中,移动网络和数据库应用隐藏着巨大的潜力。在学校的几年的研究中,本人完全进入计算机网络的知识中,使用自己的专业知识将把所有困难终都会被解决的。
此时项目已经完成,即使实施的时间不是很长,但是这个过程中需要准备很长的一段时间去对系统设计开发所实际到的技术进行学习。在设计过程中,遇到技术上的困难,主要通过找专业的系统和论坛来解决这些问题,对于圆满完成本人的毕业设计,它们也贡献了很大一部分力量。
通过训练场地管理系统的开发,本人巩固了之前学过的知识,平时所学到的知识不仅融合了,还获得了许多其他学科上知识,本人深深体会到学科之间的关联效应。为了完成毕业设计,做了很多的准备,首先,在数据库系统的设计过程中,尤其是在数据库的工作原理、工作特点,对其深刻的讨论,与此同时,对于小型站点来说,最好服务器的选择,其次,利用所学的知识点分析所做的系统,并在此基础上设计。
回顾过去做毕业设计的整个过程,充满了付出和收获,虽然经历了种种困难,不断修改,不断探索,但是还有不足的地方,在未来的时间,本人将继续学习相关的知识,更详细的了解系统相关的实际情况,弥补系统缺陷,更能发挥系统的优势。
致 谢
紧张而忙碌的毕业设计终于完成了,看到自己设计出来的系统功能齐全,感到自豪和激动。在毕业时,很多老师,同学和朋友给了我无私的关怀和帮助,我想表达自己诚挚的谢意。
毕业设计帮助了我学习到了更多的知识。可以说,使用计算机来解决管理过中的任务繁重、效率低下问题是一个不错的方式。在这个项目中完成的时候,我曾经遇到了各方面的困难。不过,在困难的过程中大大提高了我解决问题的能力,让我更好的理论知识和实践技能相结合,提高专业技能。从毕业设计的开题到结束的这段时间内,我终于做出了一个更完整,全面的系统。
首先要感谢我的指导老师,谢谢她在设计和论文中给我的指导。在老师的细心指导下我才能快速的掌握系统的相关功能,在老师的大力帮助下我才能将课本上的知识与自己的项目结合真正的做到学以致用。也感谢老师经常牺牲自己的休息时间利用其丰富的教学和项目经验对我进行指导。没有老师对我程序及论文的指导,我的系统也不会这么顺利的完成。同时,在老师严格的要求下,让我按时完成老师的任务,课堂上,老师不仅教我们如何学习,教我们新的知识,同时教会我很多的道理。
随着毕业设计的完成,我真正了解软件的开发和设计,以前的理论知识巩固的全过程,同时也奠定了良好的基础我在今后的工作中。
参考文献
[1] [美]Martin Fowler.徐家福译《UML精粹:标准对象语言简明指南》[M],北京:清华大学出版社,2015.3,26-32
[2] [美]Timothy Budd著.三联四方工作室译《面向对象Java编程思想》[M],北京:清华大学出版社,2012.8, 132-146
[3] [美]Way S. Horstmann等著.李如豹,刚冬梅,张雪莲等译.《最新Java2核心技术卷工:原理》[M].北京:机械工业出版社,2012.2,201-210
[4] [美]2 Scott Oaks著.林琪译.(Java TM安全第二版)[M],北京:中国电力出版社,2012.4,50-86
[5] [美]George Reese著.石永薪,宋隆译.《JDBC与Java数据库编程》[M]北京:中国电力出版社,2012.3.20-86
[6] 王宝华.王宝石,《人力资源管理》[J].北京:机械工业出版社,2014.8,42-56
[7] 姜承尧著.《MySQL高效编程》[J].北京:机械工业出版社,2012,56-72
[8] 张海帆著,软件工程导论(第5版).北京:清华大学出版社,2008.3,60-97
[9] [美]Writen by Steve McConnell,Rapid Development: Taming Wild Software Schedules[J], Microsoft Press , 2017-7-11,324-403
[10] Donald Knuth , The Art of Computer Programming[J].北京:清华大学出版社,2012(9),24-90
[11] Writen by Eric A.Smith,Java Server Pages[J].北京:电子工业出版社,2010,36-75
[12] Writen by Kimberly C.Ward.Korey Manley.Richard Keen.Jennifer Kelly;Anne W. Lipe;Jane Clemmer , The effects of an arts intervention program in a community mental health setting[J]: A collaborative approach The Arts in psychotherapy,2012,25-20
[13] 潘亮著.《基于ASP.NET的训练场地管理系统的设计与实现》[D]云南:中国科学技术信息研究所,2014.11, 12-32
[14] 袁龙如著.《基于PDM的新闻管理集系统设计与开发》[D]北京:国防科技大学,2015.09, 11-20
[15] 潘成均著.《训练场地管理系统》[D]四川:内江师范学院学报,2010, 1-3
[16] 胡强著.《训练场地管理系统的设计》[D]南昌:科协论坛:下半月,2010,54-55
[18] 胡湘娟.《训练场地管理系统》[D]湖南:科技创新导报:下半月,2013.34期, 208-208
[19] 姜俊卿;刘波.《基于B/S的学生信息管理系统的设计与实现》[J]江西:大观周刊:下半月,2011, 104-109
[20] 姜俊卿;刘波.《基于WEB的训练场地管理系统开发与实现》[J]江西:华章:下半月,2011.010期, 109-109
标签:毕设,springboot,预约,request,系统,用户,50,训练场地,场地 From: https://blog.51cto.com/u_12508287/11938833