基于java web的网络投票系统的设计与实现

wqq_992250277 2024-06-19 10:03:01 阅读 61

基于javaweb的网络投票系统的设计与实现

摘要:当人们需要对某一件事作出重大决定或者对已经存在的事情有太多争议时,往往会采取集体投票的方法,用来获取不同的看法和态度,然后选择大多数人的一方来决定或者了结这件事。以往,人们都是人工投票方法来进行投票,即发起投票者列出投票选项,参与投票者把自己的选择写在投票纸上,之后递交上发起投票者处由其统计唱票,在统计唱票期间参与者还要等待发起者计算结束后才能离开,到最后再由发起者公布投票结果。这样的过程步骤未免太过于繁琐。

于是,本文探讨分析网络投票的可行性和最终实现的效果。首先分析那些场景可以用网络投票解决,因为有部分重大事情还是人工投票才能反映出最真实的情况,然后探讨网络投票的可行性,设置管理员和用户,对功能进行设计,模块整理等,最后显示实现的效果。本文中心点主要围绕网站投票的便利性,也方便群众可以了解现在热门的话题和争议,随时随地登录上投票网站了解社会大致大致的趋势,但是更为重要的投票最好还是通过人工计票方式比较好,此系统主要适用于现时某些热门热点话题进行投票。

关键词: 网络投票,热门热点话题

The design and realization of vote online based on java web

Abstract: When people need to make a important decision to do someting or discuss mainly to prove something that is existed in society, they often adopt the method of collective voting to obtain different opinions and attitudes, and then choose the majority of people to decide or settle the matter。In the past, people used to vote manually, that is, the initiating voter listed the voting options, the participants wrote their choices on the voting paper, and then submitted them to the initiating voter’s office to count the votes. During the counting period, the participants had to wait for the calculation of the initiators before leaving, and then the initiators announced the voting results. This process is too complicated.

Therefore, this paper discusses the feasibility and the final effect of online voting. First of all, those scenarios can be solved by online voting, because some important things can be reflected by manual voting, Then discuss the feasibility of network voting, set up administrators and users, design functions, organize modules, and finally show the effect of implementation. The central point of this article is mainly about the convenience of voting on the website, and it is also convenient for the masses to understand the hot topics and disputes, log in to the voting website anytime and anywhere to understand the general trend of the society, but the more important way to vote is better to count votes manually,this system is mainly suitable for voting on some hot topics.

Keywords:Internet voting, hot events

目 录

第1章 绪 论 1

1.1选题的依据和意义 1

1.1.1本课题的背景 1

1.1.2 本课题的研究意义 2

1.2 国内外研究现状和和发展趋势 2

1.2.1 国内研究 2

1.2.2 国外研究 3

1.3课题研究方法和内容 3

1.3.1 研究方法 4

1.3.2 研究内容 4

第2章相关技术及工具介绍 5

2.1系统框架SSM框架 5

2.2 Javascript 5

2.3 MySQL 6

2.4 JSP 6

2.5 B/S架构 6

2.6 Ajax 7

2.7 系统开发平台及运行环境 7

2.7.1系统开发平台 8

2.7.2运行环境 8

第3章 系统需求分析 9

3.1可行性分析 9

3.1.1经济可行性 10

3.1.2技术可行性 10

3.2功能需求分析 11

3.3总体需求分析 11

第4章 系统设计 12

4.1系统总体框架 12

4.1.1系统具体的框架流程 13

4.2系统功能模块设计 14

4.3.系统操作流程图设计 15

4.3.1系统总体流程图 15

4.3.2投票操作流程图 16

4.4创建数据库设计 17

第5章 网络投票系统实现 18

5.1系统管理员功能模块实现 18

5.1.1管理员登录 19

5.1.2投票信息管理 20

5.1.3用户信息管理 21

5.1.4投票信息统计 22

5.2系统用户功能模块实现 23

5.2.1用户登录注册页面 24

5.2.2系统主页面代码 25

5.2.3投票中心 26

5.2.4投票历史 27

第6章 系统测试 28

6.1系统测试目的 29

6.2系统测试的原则和方法 29

6.3实现测试 30

6.3.1用户登录用例测试 30

6.3.2投票选项用例测试 30

6.4系统测试结论 30

参考文献 31

致谢 32

第1章 绪 论

1.1选题的依据和意义

1.1.1课题的背景

当今社会已经逐步建立起一个较为科学的管理机制,无论大企业还是中小微企业,都有其一个投票数据部门来管理,这样一来如果面对大量的复杂的信息人工管理也可以依靠人机操作互动来解决。但是如果没有这个管理部门,投票管理者的决策只能依据手工表数据,过程会浪费大量人力物力和无法实时监控,结果就是数据的准确性和及时性会有很大的偏差。所以建立一个可用的投票系统很关键。随着互联网和无线终端设备的日渐普及,人们的日常生活、工作、学习、娱乐等各方面都越来越依赖于依赖于计算机和网络技术,各行各业甚至网民也可以有自己的投票管理系统来完成一些民生基础性的投票工作。但是传统的投票方式要用到纸质资料记号,过程中不仅耗费了不必要的人力、物力、财力,而且纸质投票这种方式式微了,很少人再利用投票抓筹来决定事情了,人们现在更习惯和喜欢的是使用网上投票的方式,这样既不用面对面找到每个需要参与投票的人,也不用投票完之后进行唱票统计工作,省时又省力。而且投票结束后能更具体观察到投票率的分布和投票人群的分布,开发这样的网上投票系统对学校的管理、信息化建设等方面有极大的帮助。所以网络上的投票投票或者办公已经是势在必行。

1.1.2 本课题的研究意义

投票系统的优点有时效高和范围广,在快节奏的现代化社会可以得到很好的发展,现今各种网络在想投票系统随处可见,有的是在大网站里有的是独立一个投票门户,但目的都是为了统计各种用户信息、意见、经营情况调查。网络在线投票系统的优势在于它得天独厚的社会环境,而且投票方便,内容快捷、实时、准确的特点让它成为互联网资源中重中之重的一部分。

网络在线投票系统主要统计各类网民对某个热门热点话题事件的看法,投票发起者利用网民所反映出来数据统计出某话题事件在社会上大多数人的看法或者对某件有争议的事情做出相应的决策。在线投票系统是一般网站必备的程序之一。本课题的目的是利用jsp+ssm+mysql这几项技术开发一个网络投票系统,为调查收集和统计用户的反馈和看法提供一个比较便捷的平台。以往的人工投票方式与现在的网络在线投票方式是天壤之别的,由于在网络在线投票当中,数据已经信息化,人机操作交互更加便捷,效率结果更加高效,环境适应能力更加强大,换句话说就是没有受到物理因素形式的限制,无需人工统计唱票,减少过程结果的误差。除此之外,网络在线投票系统还可以应用在一些科研调查当中,因为可以使调查过程更为客观化和广泛化,数据结果的参考值和利用率更加可观,不用做过多的转化翻译就可直接看出统计比例。总而言之,网络在线投票系统可应用的场景十分广泛。

1.2国内外研究现状和和发展趋势

1.2.1 国内研究

国内网络在线投票大致是随着互联网的发展,各种大企业和中小微企业对内部科学管理内容的信息化、智能化和数据化需求日益增长才逐渐出现的。所谓网络在线投票系统是指管理员在网上发起投票主题,用户进入网站完成线上的投票,再由系统反馈投票结果进行数据分析的网页系统。简而言之,就是网友先注册登录进入投票主界面,选择投票话题和选项参与其中,不过一般网友参与度并不是很高,大多数都是企业公司和政府内部有一定范围内的使用,个人的网络在线投票一般在一个大网页内进行广泛的投票,可以有许多热点热门话题和事件,比如哔哩哔哩网站客户端就有广泛投票的功能。还有问道在线问卷调查平台,该平台是国内较为专业的在线投票调查平台,它涵盖了各行各业,而且功能多样,灵活的个人在线问卷生成系统,按照大数据分析出的专业的调查问卷。模板各式各样因人而异,覆盖各行各业,满足您任何时候的不同需求。同时,该平台最后的数据结果调查有优势,例如问卷调用系统将调查问卷与许多网站的大数据相连,可以从网站调入问卷进行调查,也可以将调查问卷上传到网络。

1.2.2 国外研究

国外的网络在线投票最早的雏形是电子投票概念,这个概念的兴起是由国外互联网为代表的现代信息技术迅速发展带动的,具体表现在国外最常见的证券市场行业。在这行业内电子投票迅速发展,比如在1999年美国的网上证券委托的开户数就已经达到九百多万。无独有偶,在美国星期之后不久其他发达国家的网上证券委托开户数也紧追美国其后。不仅如此,这电子投票一传十,十传百,网民开始熟悉各种网站常就各种问题进行网上投票。除此之外,还有以下因素导致电子投票制度在发达国家已经取得相当进展:一是相关机构OECD撰写的《公司治理结构原则》中最重要提到的是股东大会更加有效的进行可以依靠电子投票手段,扩大投票技术的使用层面;二是法律上已经承认电子投票的结果具有参考和利用价值,如美国的特拉华州在2000年一次州议会时众多议会员都赞成认可电子投票的结果并且修订了相关的法律法规;三是出现了上市公司提供电子投票的技术解决方案和股东提供投票参考意见这些专门为电子投票提供服务的机构,其无疑带动了网络投票的产生和发展。

最近在国外新兴的在线调查网站clixsense就是网络在线投票系统的重要例子,该平台是一个在线付费调查网站,用户可以在首页中生成问卷进行调查、编辑等操作。整个人机操作交互界面十分简洁,每个菜单和子菜单都设计的非常人性化,模块结构也很合理的当。

1.3课题研究方法和内容

1.3.1 研究方法

调查当前热点热门事件的投票,对真正需要用到网络投票来决定某一件事来研究投票系统,以事件的重要性或难以确定的事件进行系统的讨论,分析,再制定投票的内容,例如表题和名称,选定投票项供需要参与到此次投票事件的人员进行选择。

进行相关资料的搜集、整理、分析以形成自己的观点。

1.3.2 研究内容

基于Java Web的网络投票系统的设计与实现包括需求分析,系统设计,程序编码,软件测试。系统采用SSH架构进行,即Spring+Struct+Hibernate.本项目开发环境是Windows客户端系统,应用的集成开发环境是MyEclipse,数据库采用的是MySQL。Windows系统受众面广,易操作上手容易,兼容各种网页浏览器;集成开发MyEclipse编译器是eclipse的一组插件集,它集成了很多开发工具和包,方便开发者更加快捷开发Java Web相关的程序,比如提供了对spring、structs、jsp直接开发的支持,提供了CSS/HTML/XML的编辑工具等。所以它是依赖于Eclipse的。但是往往在下载的时候,MyEclipse会直接包括Eclipse的程序,所以不需要再单独下载Eclipse安装;数据库MySQL运行速度快,使用成本低和实用性强,可移植性强,适合更多普通用户。

系统界面比较友好,主要简单易用,易于维护且具有良好的可扩展性,非常合适各种在线投票系统的需求。网络投票系统我一开始构想的对象是有管理员和投票人员,管理员和投票人员都有自己的权限和功能。管理员的权限和功能想好之后,就要想投票人员的权限和功能,投票系统的投票人员都是只有投票和查看投票结果的,难一点可以查看投票百分比和结果的比例,之前在管理员那里构想了选项加一个说明备注用来给投票人员了解该选项的内容。

第2章 相关技术及工具介绍

这章节主要对网络投票系统的相关javaweb技术和软件进行介绍

2.1系统框架SSM框架

首先先来说明占主要部分的SSM框架。SSM框架即Spring+SpringMVC+MyBatis,主要由Spring和MyBatis两个开源框架组合而成,Spring包括了SpringMVC的内容。这种框架在数据源处理中是非常常见的。

(1)Spring

Spring是在2003年兴起的Java开源框架,创建spring的目的就是用来替代重量级的企业Java技术。Spring还是连接springmvc和mybatis的关键,主要用于创建对象和注入对象,而且spring可创建和管理项目里面主要用到的各种对象。

(2)SpringMVC

SpringMVC是mvc设计模式的一种实现,前端页面的控制包括数据渲染和页面跳转主要都由它负责。MVC各个字母分别代表: M-Model模型,业务处理模型,接受Controller的调遣,处理业务和数据;C-Controller 控制器,接受用户请求,调用Model处理,选择合适的View给用户;V-View 视图,返回给客户看的结果,这里的客户未必是人,可能是浏览器,可能是APP。

(3)MyBatis

MyBatis指的是数据持久层框架,主要作用是从数据库里查询出数据然后将数据转换成对应的实体类。它是对jdbc的封装,让数据库底层操作透明化,因此我们无需将jdbc查询出来的resultset逐个映射成对应的实体类对象,mybatis直接就能把我们的resultset转换成实体类。

2.2 Javascript

Javascript是一种可以被浏览器解析的解释型脚本语言,所谓脚本语言就是不需要编译过程就可以直接执行的语言,是目前所有主流浏览器上唯一支持的脚本语言。它可以直接写在HTML中,在页面加载时会自动执行。其主要作用是在修改HTML页面内容时可以不与服务器交互,直接就可以修改,是因为有一个关键的部分DOM(文档对象模型),这模型是HTML页面元素的结构。有了这模型,利用ajax可以使HTML页面通过JavaScript,用户可直接从服务器上获取数据并显示在不重新加载页面的情况下,从而大幅提高用户的体验,web页面也有长远的发展。作为浏览器唯一支持的语言,其优势也是得天独厚,JavaScript的入门难度相比于其他语言要低,应用范围也是包罗万象,用户数量庞大,还有许多实用的库。

2.3 MySQL

MySQL是一个由Oracle支持开源的数据库管理系统,也是一个关系数据库,简单来说就是一款管理数据库的软件。MySQL可以应用在互联网上的中小型网站,适应主流的操作系统而且是一款开源和小型的软件,可免费使用。优点有多语言支持,移植性好,高效和支持大量数据查询和存储。InnoDB存储引擎是mysql用的最多的引擎,,每建立一个数据库就会有一个数据库实例,即一个数据库服务器,而且在该服务器中会有用户,但需要dba给该用户授权,授权后dbms就会创建一个相应的方案。

2.4 JSP

JSP全名为java server pages,服务器java的页面,是一种基于文本的程序,其特点在java中HTML和java代码是共同存在的。因为网址页面要输出HTML,所以JSP的目的就是替代servlet输出HTML,原因是servlet要输出HTML是相当困难,即简化了servlet的工作。在JSP文件中,可以直接写入HTML代码而且还可以把java代码内嵌在JSP页面中,很方便的就将就将动态数据渲染成静态页面,这点JSP比HTML强大得多。

当有人请求JSP时,其实就是服务器的的一次转化,即动态资源(JSP)到静态资源(HTML)的转化,在JSP中的HTML片段和数据通过服务器自动拼接成静态数据响应给浏览器。也就是说JSP是运行在服务器端,但最终发给客户端的都已经是在响应体中转换好的HTML静态页面。

2.5 B/S架构

B/S架构即B(浏览器)和S(服务器)架构模式,浏览器指的是web浏览器处理的主要是少数业务逻辑,服务器则是相反,主要作用处理业务逻辑。它是由三层架构组成,直接就在web浏览器中运行,不用特别的安装。这样的好处是减轻电脑客户端的负荷,简化系统升级维护的过程和总体工作量,降低开发成本。以目前java跨平台语言迅速发展来看,B/S架构管理软件提供了方便、快捷、高效的优势。

B/S模式最为重要的优势就是可以随时随地进行操作而无需安装客户端的任何专门的软件,基本上可以做到系统零维护,系统扩展很容易。它的维护和升级方式简单,现在软件系统的维护升级越来越频繁,对于稍大型企业来说,管理员的工作量可想而知会有多庞大,但B/S架构只需要挂机管理服务器就可以了,因为相对于服务器的客户端只是浏览器,无需对其进行任何维护,无论有多少用户都只针对那个“1”即服务器进行维护升级,只要将服务器做强做大,实现远程维护、升级和共享,客户端也就越轻松,这就是所谓的要“减肥”客户端,“增重”服务器。除此之外,成本降低,选择更多也是B/S架构的另外一个优势,凡是使用B/S架构的应用管理软件,不论选用哪种操作系统都可以适应,很好兼容而且成本很低,所以服务器操作系统的选择是很多的。对于数据库来说,它以不同的接入方式操作和访问共同的数据库,因此能有效的管理数据平台和管理权限。

图2-1所示是B/S模式应用系统网络结构图:

在这里插入图片描述

图2-1 B/S模式应用系统网络结构图

2.6 Ajax

Ajax全称为“Asynchronous JavaScript and XML”(异步JavaScript和XML),即异步传输+js+xml ,就是不关闭不转跳不刷新的情况下,在网页后台提交数据,部分更新页面内容,将网页的用户体验提升到接近原生程序的地步。Ajax其实是一种技术效果而不是一种工具,在不同的浏览器中有着自己实现的ajax。简单理解为在客户端中向服务器发送请求是不用等待其结果,可以同时进行其他事情,等结果出来后在处理这个请求,是一种用来更新web页面上的内容或操作过程的方法。

2.7 系统开发平台及运行环境

系统:windows7以上

集成开发环境:MyEclipse2016以上

数据库:MySQL5.5以上

浏览器服务器:apache或其他

第3章 系统需求分析

3.1可行性分析

3.1.1经济可行性

本系统是实现一个有投票功能的网页系统,本身并不复杂,而且网络在线投票在很多大网站系统只是一个小的功能模块。由于Java在Web开发上的优势,本系统的开发周期并不需要太长,这样对成本的要求并不是太高。这样的一个网络投票系统的建立是十分可行的。

3.1.2技术可行性

技术可行性分析是在当前市场的技术条件限制下,能否用现有资源和技术能力来实现整个系统。本系统基于Jsp+SSM+ MySQL, 并采用B/S模式,由于JSP、SSM功能强大,因此使用JSP、SSM和MySQL是开发轻平台的最佳组合从而说明本系统在技术方面可行。为了开发系统进行了调查研究,对网络投票系统现状及需求有了进一步的认识。在硬件方面,以当今的硬件平台适应这些系统绰绰有余。

3.2功能需求分析

一个网络投票系统最主要的莫过于用户投票过程的体验和统计数据的效果显示功能,用户注册登录后就可以进行投票操作。为了满足用户的投票需求,系统需要提供简洁、有效、多样的投票方式。 用户可以对某个热点热门话题进行投票,包括单选和多选,但单选只能一天之内只能投票一次,不可随意更改,多选则可以更改选项,觉得不符合自己选择的可以重新选择。总而言之,投票管理系统不仅要实现投票管理,还要对用户的管理实现,协调各个功能模块之间的工作,共同满足投票管理系统的业务需求。

以下列出了该系统的用例模型,确定了管理员和用户两种用例模型,管理员即系统的维护人员,用户即投票的参与人员,管理员有对系统操作的权限,用户则可以进行注册登录和投票操作。

系统总体用例图(图3-1为系统总体用例图):

在这里插入图片描述

图3-1系统总体用例图

(1)用户

用户登录可以登录系统、进行投票和查看投票历史。用户主要功能如下(图3-2为用户用例图):

在这里插入图片描述

图3-2为用户用例图

(2)系统管理员

管理员主要负责系统的后台工作,主要功能如下(图3-3为系统管理员用例图):

在这里插入图片描述

图3-3为系统管理员用例图

3.3总体需求分析

(1)系统的实用性

一个简洁明了的系统的对于用户体验来说是重中之重的,在各功能部分要尽量简单实用,人机交互界面要更加友好便捷。此系统主页面简单明了,投票主题言简意赅,投票时也比较快捷方便,单用来投票挺实用,但功能模块部分较少。

(2)系统的稳定性

此投票系统是在网页浏览器上运行的,使用windows系统,myeclipse集成环境编译和mysql数据库,用jsp在html上编写,基本不会出现系统数据出错或者系统崩溃。

(3)系统的开放性

系统也有很好的兼容性,比如可以在大部分版本的Windows的操作系统中正常运行,也能够支持IE、谷歌浏览器等常用的浏览器。管理起来也十分容易。

第4章 系统设计

该系统设计阶段主要分为系统管理员功能模块和系统用户功能模块。

4.1系统总体框架

此系统采用SSM(Spring MVC+Spring+Mybatis)框架开发,是标准的MVC模式,主要由Spring和MyBatis两个开源框架组合而成其中。负责请求的转发和视图管理由Spring MVC负责,业务对象管理由Spring实现,Mybatis主要作用于数据对象的持久化。由于第二章已经说明过ssm各个字母的全拼和所代表的内容。所以直接说明三个框架的整合流程。框架整合具体图如图4-1所示

在这里插入图片描述

图4-1ssm框架

在ssm框架中,springMVC和MyBatis的作用是由spring框架衔接起来的,因为业务层会调用持久层的数据库的数据处理,而web层会调用业务层的业务处理。因此在启动服务器时,会先加载spring容器的配置文件和mybatis对数据库的事务操作,然后再加载SpringMVC容器。

具体的加载顺序步骤是第一步先在总服务器配置文件web.xml中加载spring容器,然后加载springMVC容器。Spring容器的配置文件为application.xml,在此文件中先扫描bean到spring容器中,然后进行对mybatis持久层和事务的加载。 第二步web.xml文件加载完spring后继续加载springMVC,在springMVC.xml文件中,只会扫描controller层,因为springMVC容器是spring容器的子容器,它可以使用spring容器加载的东西,扫描完后再加载静态资源和视图解析器。总服务器的配置文件web.xml如图4-2所示

在这里插入图片描述

图4-2 web.xml配置文件

4.2系统功能模块设计

该网络投票系统分为系统管理员功能模块和系统用户功能模块。

(1)系统管理员功能模块

投票信息管理:管理员进行投票信息管理,投票主题和投票选项都可以灵活发布或修改。添加投票主题(需要填写主题名称、主题类型、开始时间、结束时间和主题简介)、查看主题、修改主题和删除主题;针对投票选项管理,可以添加选项(需要填写选项名称和选择所属主题)、查看选项、修改选项和删除选项。

用户信息管理:管理员进行用户信息管理,可以增加用户(需要填写用户名、密码、性别和状态)、查询、修改、删除用户信息,即增删改査。

投票信息统计:在投票主题选则主页面中显示所有的投票主题的统计,可以输入搜索主题名称,检索后就会显示单个主题的投票统计。

管理员登录:管理员输入root权限账号,登录进主界面进行操作。

系统管理员功能模块如图4-3所示:

在这里插入图片描述

图4-3管理员功能模块

(2)系统用户功能模块

用户注册:用户填写用户名、密码和性别,点击注册按钮进行注册。

用户登录:用户填写已经注册的用户名和密码,点击登录按钮进行登录。

浏览:用户可以浏览投票管理系统中公共开放内容。

投票:用户选择自己需要的投票,针对主题,勾选选项,进行投票操作。

投票中心:投票管理系统展示所有投票主题供用户选择。

投票历史:存储用户已经投票的历史内容,用户登陆后方可查看。

系统后台功能实现以下功能,投票信息管理、详细投票查看、用户信息管理、投票信息统计和管理员登录等功能。

系统用户功能模块如图4-4所示:

在这里插入图片描述

图4-4系统用户功能模块

4.3 系统流程图设计

4.3.1系统总体流程图

系统的总体流程图包括管理员与用户的操作流程。图4-5所示:

在这里插入图片描述

图4-5系统总体流程图

4.3.2投票操作流程图

系统用户投票流程设计如下:用户进入投票系统,进行登录操作,验证成功后登录系统,然后查看投票中心,选择投票主题,接着勾选投票选项,最后点击投票按钮即可。完成投票后可以查看投票结果。用户投票流程如图4-6所示:

在这里插入图片描述

图4-6投票操作流程图

4.4创建数据库设计

系统数据库名称为db_vote_system,数据库中包括:1)管理员表(manager)2)用户表(user)3)投票选项表(vote)4)主题表(subject)。

各表数据结构如下:

表4-1 管理员表

(1)管理员表(manager),存储管理员信息

字段名称 数据类型 主键 是否空 说明

id int(11) Y N 管理员ID

name varchar(32) N N 账号

password varchar(32) N N 密码

表4-2 用户表

(2)用户表(user),存储用户信息

字段名称 数据类型 主键 是否空 说明

id int(11) Y N 用户ID

name varchar(32) N N 用户名

password varchar(32) N N 密码

sex tinyint(1) N N 性别

status tinyint(1) N N 状态

createTime datetime N N 创建时间

表4-3 投票选项表

(3)投票选项表(vote),存储投票信息

字段名称 数据类型 主键 是否空 说明

id int(11) Y N 投票ID

userId int(11) N N 用户ID

subjectId int(11) N N 主题ID

subjectItemId int(11) N N 选项ID

voteNumber int(5) N N 投票总数

createTime datetime N Y 创建时间

表4-4 主题表

(4)主题表(subject),存储主题信息

字段名称 数据类型 主键 是否空 说明

id int(11) Y N 主题ID

name varchar(128) N N 名称

type varchar(32) N N 类型

info varchar(512) N Y 简介

startTime datetime N Y 开始时间

endTime datetime N Y 结束时间

voteNumber int(5) N N 投票总数

createTime datetime N Y 创建时间

第5章 网络投票系统实现

本章节介绍了网络投票系统的实现,包括系统管理员功能模块和系统用户功能模块的实现过程。

5.1系统管理员功能模块实现

5.1.1管理员登录

系统后台登录,管理员输入用户名、密码和验证码登录后台。

在这里插入图片描述

图5-1 管理员登录

登录后台后,后台主页如下。

在这里插入图片描述

图5-2 系统后台主页

主要代码有:数据库属性文件 jdbc.properties

datasource.connection.driver_class=com.mysql.jdbc.Driver

datasource.connection.url=jdbc:mysql://localhost:3306/db_vote_system?useUnicode=true&characterEncoding=utf-8

datasource.connection.username=root

datasource.connection.password=

#连接池保持的最小连接数,default : 3(建议使用)

datasource.connection.minPoolSize=3

datasource.connection.maxPoolSize=15

datasource.connection.maxIdleTime=0

datasource.connection.acquireIncrement=3

datasource.connection.maxStatements=0

5.1.2投票信息管理

管理员可以查看投票主题列表、可以添加投票主题、可以修改投票主题、可以删除投票主题

在这里插入图片描述

图5-3 投票主题

管理员进行添加主题操作,填写投票主题名称、主题类型、开始时间、结束时间和主题介绍。

在这里插入图片描述

图5-4 添加投票主题

管理员进行添加投票选项操作,填写选项名称和选择选项所属主题。

在这里插入图片描述

图5-5 添加投票选项

5.1.3用户信息管理

管理员进行用户管理,可以添加用户、查看用户信息、修改用户信息和删除用户。下面进行添加用户操作,填写用户名、密码、性别和状态。

在这里插入图片描述

图5-6 添加用户

5.1.4投票信息统计

投票信息统计,默认是所有的投票主题统计。

在这里插入图片描述

图5-7 所有投票主题统计

管理员搜索主题名称后,显示单个主题的投票统计。

在这里插入图片描述

图5-8 单个投票主题统计

5.2系统用户功能模块实现

本系统关键的是用户的模块,由于该系统使用springMVC,要用spring-mvc.xml来配置springMVC,作用是配置action,用户投票操作的请求处理。Spring-mvc.xml文件:

<?xml version="1.0" encoding="UTF-8"?>

<context:component-scan base-package="com.ischoolbar.programmer.controller"><context:include-filter type="annotation"expression="org.springframework.stereotype.Controller" /></context:component-scan><mvc:annotation-driven></mvc:annotation-driven><!-- 启动定时任务 --><task:annotation-driven/><!-- 静态资源处理 --><mvc:default-servlet-handler/><!-- 配置视图解析器 --><bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"><property name="prefix" value="/WEB-INF/views/"></property><property name="suffix" value=".jsp"></property></bean><!-- 文件上传 --><bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"><!-- 上传文件大小限制 --><property name="maxUploadSize"> <value>10485760</value> </property> <!-- 请求的编码格式, 和 jsp 页面一致 --> <property name="defaultEncoding"> <value>UTF-8</value> </property></bean>

5.2.1 用户登录注册页面

用户填写用户名、密码和选择性别进行注册。

在这里插入图片描述

图5-9 用户注册

用户填写用户名和密码,进行登录。

在这里插入图片描述

图5-10 用户登录

5.2.2 系统主页面代码

系统主页面代码:

<?xml version="1.0" encoding="UTF-8" ?>

<%@ page language=“java” contentType=“text/html; charset=UTF-8”

pageEncoding=“UTF-8”%>

<%@ taglib prefix=“c” uri=“http://java.sun.com/jsp/jstl/core”%>

网络在线投票<a href='/tag/系统'>系统</a> <% String path = request.getContextPath(); String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + path; %>

5.2.3 投票中心

用户进入投票中心,查看各种投票主题。

在这里插入图片描述

图5-11 投票中心

5.2.4 投票历史

用户进入投票历史,查看自己的投票记录。

在这里插入图片描述

图5-12 投票历史

第6章 系统测试

6.1 系统测试目的

系统测试的目的就如同代码出错后逐一找错的过程,期望能以最少的人力时间发现当初设计系统的漏洞和缺陷,然后用辩证的观点,从多方面多角度完善当初设计的系统,最后运行正确的程序。进行系统测试是设计系统过程中很重要的一个步骤,因为其可以尽可能确保系统总体质量和可靠性,是对当初系统设计和实际的最后复查。总的来说,系统测试是为了发现开发忽略的case,发现bug,最后降低风险。

6.2 系统测试的原则和方法

系统软件测试的原则是站在用户的角度出发,对产品进行全面的测试,更早的发现bug。总体可归纳以下几点。(1)软件测试必须要建立在用户上,并在测试之前定义好系统的质量标准。(2)尽量不要将系统的所有功能都测试,穷举测试是不可取的。(3)使用第三方测试的效果会更好,更有客观性。(4)对发现出错较多的代码段应进行多次测试。

一般的系统测试方法都是测试功能模块的,对于此小型的系统可采用黑盒测试,动态测试和手工测试。黑盒测试顾名思义则测试人员先前不清楚系统内部的逻辑和数据结构,反馈到的是显示效果和用户体验情况,这种测试大多数是要第三方测试,有利于系统功能更加客观易懂;动态测试是指先有一个预期结果,在直接实际运行系统程序,输入相应测试的数据,观看实际输出结果是否符合先抢的预期结果,这样直接就能反馈结果给用户;手工测试是指可以灵活改变测试操作和环境,比如此系统可以换一个浏览器运行或者换一个服务器地址,可以说明系统的兼容性的强度。

6.3 实例测试

6.3.1 用户登录用例测试

此用例测试是验证用户注册登录是否输入合法的信息。先给出已经注册过的用户数据作为测试数据,用户名为aaa,密码为ddd。

键入用户姓名aaa,密码留空,结果提示”用户名或密码错误”;

键入密码ddd,用户名留空,结果提示”用户名或密码错误”;

键入用户名a,密码d,结果显示“用户名或密码错误”;

键入用户名aaa,密码ddd,结果显示正确然后进入到主界面。

可以说明登录功能够正常运行。

6.3.2 投票选项用例测试

选择选项点击投票,看投票数据是否连接的上后台数据库,并且与选项相对应的票数是否增加,显示条是否增变长。若点击投票后页面跳转到你已投票显示出来,并且相应的选项票数加一,显示条边长则为成功测试投票。若投票后没任何反馈,无显示你已投票则要对数据库和投票触发事件进行修改。

6.4 系统测试结论

要想做好一个简单的系统,设计几种功能也并不容易,需要在不断的出错中逐渐完善系统,但最重要的是在这过程中要理顺自己的思维,有理有据表达自己的观点看法,不要毫无目的进行编写和整理,在做每一步之前尽量考虑更多方面的影响,出现错误找到原因,尝试多几种办法去解决,一定要重视设计过程的重要性和必然性,追求过程程序的正义。

参考文献:

[1]夏伟.中国网络投票现状与发展趋势分析[N].科技广场,2011.04.05.

[2]李建忠.中国网络投票的发展研究[N].邵阳学院院报,2003.02.16.

[3] 李曙光.JSP开发实例完全剖析.北京:中国电力出版社,2006

[4] 杨易.JSP高级程序设计.人民邮电出版社,2006

[5] Vivek Chopra.JSP高级程序设计,机械工业出版社,2001

[6] 申吉红,廖学峰,余健.JSP课程设计案例精编.北京:清华大学出版社,2007

[7] 卢潇.软件工程.北京:清华大学出版社;北京交通大学出版社,2005

[8] 萨师煊,王姗.数据库系统概论.北京:高等教育出版社,2000

[9] 马运涛.Eclipse精要与高级开发技术.北京:电子工业出版社,2003

[10] PaulJPerrone etal,张志伟,谭郁松,张明杰.J2EE构建企业系统[M] .北京:清华大学出版社,2001

[11] Chuck Cavaness.Programming Jakarta Struts,2002

致谢

毕业论文算是一个对大学学习的一次检阅和学习,在指导老师和同学的帮助下,很艰辛的完成了毕业设计和毕业论文。在这次撰写论文过程中我获得了许多知识,不仅要学以致用,还要有自己的独立思考和独立创作能力,查找文献资料的同时也开阔自己的视野,网络在线投票调查平台也是有一定的发展方向的。总而言之,非常感谢学校各位老师的指导和室友大力的帮助,因为你们提供科技知识和技术支持才能使我完成毕业设计和毕业论文。



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。