【青岛恒星科技学院毕业设计】在线投票系统的设计与实现

摘 要
随着全球互联网的快速发展和计算机应用的广泛普及,特别是无线网络的广泛覆盖和无线终端设备的爆炸性增长,人们现在可以随时随地访问网络,获取最新信息、参与网络活动和与他人在线互动。为了及时了解民意和关注点,政府机构和门户网站等单位现在会将一些热点话题以投票的形式发布在网站上供人们在线投票。因此,在线投票系统应运而生。
本文主要讨论了在线投票系统的设计和实现过程。首先,基于实际应用开发情况,对该系统进行了详细的需求分析。然后,分析了该系统的结构和各功能模块,并通过详细的数据库表设计构建出一个基于Web的、以SSM框架和MySQL数据库为基础的、具有管理员登录管理、投票话题设置管理、话题库生成管理、在线网络投票和投票结果管理等功能的在线投票系统。
本文系统地阐述了基于Web的在线投票系统的分析、设计和实现过程,介绍了相关的理论知识。最后,对系统进行了全面的功能测试,总结了其优点和不足之处,并提出了几点改进建议,展望了该应用的前景。
关键词:在线投票系统;需求分析;SSM框架;
Abstract
With the rapid development of the global internet and the widespread use of computers, especially the explosive growth of wireless terminal devices and the wide coverage of wireless networks, people can now access the internet anytime and anywhere to obtain the latest information, participate in online activities, and interact with others online. In order to timely understand public opinion and concerns, government agencies and portal websites now publish some hot topics in the form of online voting on their websites for people to vote online. Therefore, online voting systems have emerged.
This article mainly discusses the design and implementation process of an online voting system. Firstly, based on the actual development situation, a detailed requirement analysis is carried out on the system. Then, the structure and various functional modules of the system are analyzed, and a web-based, SSM framework-based, and MySQL database-based online voting system with functions such as administrator login management, voting topic setting management, topic bank generation management, online network voting, and voting result management is constructed through detailed database table design.
This article systematically elaborates on the analysis, design, and implementation process of the web-based online voting system, introducing relevant theoretical knowledge. Finally, the system is comprehensively functionally tested, the advantages and shortcomings are summarized, and several improvement suggestions are put forward, looking forward to the future of this application.
Keywords : online voting system; requirement analysis; SSM framework.
目 录
摘 要
Abstract
目 录
第1章 绪 论
1.1研究背景
1.2研究目的
1.3研究意义
1.4 国内外研究现状
第2章 相关理论与技术
2.1 IntelliJ IDEA简介
2.2 SSM框架简介
2.3 MySQL数据库简介
2.4 JAVA编程语言简介
2.5 B/S架构
2.6MySQL环境配置
2.7本章小结
第3章 系统分析
3.1 系统设计目标
3.2 系统的可行性分析
3.3 需求分析
3.3.1 业务环境
3.3.2 用户需求分析
3.3.3 功能需求分析
3.3.4 用户操作流程
3.3.5 管理员操作流程
3.3.6系统性能需求分析
3.4系统维护分析
3.5 本章小结
第4章 系统的详细设计
4.1 系统功能模块设计
4.2数据库设计
4.3本章小结
第5章 系统实现
5.1登录
5.2 管理员功能模块
5.3用户功能模
5.4 本章小结
第6章 系统测试
6.1 测试目的
6.2 测试内容
6.2.1 用户注册功能测试
6.2.2 用户登录功能测试
6.2.3 上传个人信息功能测试
6.2.4 修改个人信息功能测试
6.2.5 投票功能测试
结 论
参考文献
致 谢
第1章 绪 论
1.1研究背景
电子信息时代正在经历着互联网的急剧膨胀。随着计算机和网络设备的普及,上网的条件变得更加便捷。现在,互联网已经成为人们生活中不可或缺的一部分,并在政治、经济、文化、科技、生活和社会等方面对整个世界产生着深远的影响。最新数据显示,在网民中,约69%的人选择在家里上网,约25%的人选择在单位上网,而在这两者之间有65%的人使用手机进行无线上网。这些数据表明,网民数量庞大,而这些网民已成为一股非常重要的社会力量。[1]他们不仅可以利用传统的门户网站,还可以通过博客、BBS、QQ、微博、人人网和Facebook等社交平台进行交流、发表见解、进行娱乐互动、参与活动等,在影响着现代社会的政治、经济、科技、文化和生活等各个领域产生着深远的影响。
此外,在线投票成为了收集民情和民意的新方法。通过利用互联网技术,在线投票将一些热点话题发布至Web上,并提供多个选项供网络用户在线选择。[2]在线投票结果可以实时自动统计,投票者不仅能随时查看统计结果,还可以针对参与的投票话题进行热点讨论。[3]在线投票已广泛应用于学校、公司、组织机构和各大网站,并且由于在线投票软件系统具有功能强大、系统稳定、用户使用简单方便以及快速公正的特点,因此应用越来越普及。
1.2研究目的
就在线投票系统的设计与实现而言,参与成本的结构相对较低。[4]尽管进入在线投票市场的成本较低,但由于投票的持续时间长,监督在线投票过程的成本相对较高。投票的范围也非常广泛,除了政治和社会问题外,还包括日常生活中的各种投票需求,从选美活动到产品评级等。在线投票系统一般能够延续数天到数周,并且随着投票的发展,投票数目也可能增加。在线投票系统的研究包括设计和实现投票流程、实现安全机制、管理数据、设计用户界面、进行业务拓展、优化系统性能、分析投票数据以及制定营销策略等方面。[5]在线投票系统的实现非常重要,能够帮助人们更有效地表达意见和参与社会事务,也能够提供给政府和企业更多的反馈和决策参考[6]。
然而,由于在线投票系统的普及程度越来越高,一些安全问题也开始浮出水面。例如,黑客可能会在系统中植入恶意程序,从而窃取投票数据和个人信息。此外,人们容易受到网络攻击和欺诈的影响,比如被恶意软件感染、遭受网络诈骗等。因此,在设计和实现在线投票系统时,安全问题是一个需要高度重视的方面。
为确保在线投票的安全性,系统应该具备完善的安全机制,包括对用户身份的认证、加密数据传输、防范DDoS攻击等措施。对于黑客入侵和漏洞利用等问题,应该采取预防和应对措施,例如定期更新软件、加强防火墙设置等。此外,定期进行系统安全审计也是保证在线投票安全的重要手段。
在实施在线投票系统时,必须严格遵守相关的法律法规和规定[7]。例如,需要明确数据使用和保护的责任,应该得到选民的知情和认可,以保护其个人信息和隐私。与之相应的,应该建立完善的数据备份和恢复机制,以便在系统故障或其他突发情况下对数据进行有效保护。
总体来说,随着网络技术的不断发展和社会治理的深入推进,在线投票系统在政治、社会和商业领域中的作用愈加明显。在此背景下,有关方面应积极推动在线投票系统的开发和完善,加强对其安全性和可信度的监管,以保障人民的利益和社会的稳定。
1.3研究意义
在线投票系统是一种基于互联网和计算机技术的投票工具,它将传统的投票方式数字化,极大方便了人们的投票行为。在线投票系统的研究和使用具有以下的意义:
1. 方便快捷:在线投票系统可以随时随地进行投票,省去了人们去现场或邮寄投票的时间和金钱成本,方便快捷。
2. 环保节能:在线投票系统可以大量减少纸张的消耗,减少对环境的影响,符合全球可持续发展的趋势。
3. 提高投票效率:在线投票系统可以提高投票的效率和准确性,同时也能够减少投票失误的情况。
4. 降低操作成本:在线投票系统可以降低投票的运营成本,使得组织者可以更加轻松地管理投票过程。
5. 增强民主参与:在线投票系统使得民众可以更方便地参与投票过程,增加了民主参与和公众决策的程度。
综上所述,在线投票系统是一种便捷、高效、环保和节能的投票工具,可以促进公众参与和决策的透明度和公正性,具有重要的研究意义和现实意义。同时,通过在线投票系统的研究和应用,也可以进一步推动互联网技术和计算机技术的发展和应用,促进信息社会和数字经济的发展。
1.4 国内外研究现状
在线投票系统是一项利用互联网进行投票的技术,将传统的投票方式转化为更加便捷、高效和安全的网络投票方式。当前,随着互联网普及率的不断提高,越来越多的社会机构和政府部门选择在线投票系统作为其选举和评选活动的投票方式。下面是对在线投票系统在国内外的发展现状做一个简要概述。
中国的在线投票系统刚刚起步,市场上的在线投票系统也比较少。目前,中国的在线投票系统主要应用于企业内部的评选活动、机构内部的选举以及政府部门的投票。相比于国外,中国的在线投票系统的技术和服务水平还较为落后,但是随着技术的发展和市场的开拓,中国的在线投票系统有着广阔的市场前景,目前已有不少投票服务提供商,其中较具代表性的有微信、易发网络、问卷星、投票阁等。这些企业提供了一系列在线投票解决方案,根据客户不同需求,选择不同的投票方式。
总的来说,国内的在线投票系统市场虽然发展较晚,但显然有着广阔的市场前景和应用前景。
在线投票系统在国外发展已相对较早,目前已发展成熟并得到广泛应用。主要应用于政治选举、学术评选、公共投票等方面,尤其在政治选举和公共投票方面的应用比较广泛。下面是主要地区的发展现状。
美国和加拿大是在线投票系统的主要生产国家,多年来已积累了丰富的经验和技术,并广泛地应用于各行各业,其中政治选举是最主要的应用领域。随着科技的不断进步和投票人口不断增加,未来在像选举、网上调查等大规模网络投票方面,美国和加拿大等国将站在更加重要的地位。
欧洲是在线投票系统的主要应用地区。欧洲各个国家已逐步实现了在线投票的全面普及和广泛应用。在线投票的主要应用领域包括企业评选、政治选举、公共投票、学术评选等等。
亚洲在线投票的普及率仍比较落后,但亚洲国家普遍拥有着庞大的选民和选举人,从而引发了在线投票系统的出现。目前,亚洲的在线投票系统主要应用于企业内部自评选、省级选举、网上问卷调查等。
总的来说,随着互联网技术的飞速发展,在线投票系统市场还将不断拓宽,同时也将面对各种技术和安全挑战。此外,为了满足用户更多的需求,未来的在线投票系统将不断加强用户体验和数据安全性。
第2章 相关理论与技术
为了实现在线投票系统的基本功能,并确保系统具有较高的安全性和易维护性,本系统采用WEB实现技术,将系统设计为B/S结构,用户可通过WEB浏览器访问服务器上的投票题目并进行远程控制与维护。在众多服务器端程序实现技术中,本系统选择了目前流行的JSP技术作为主要实现手段,辅以HTML、SSM框架、Java Servlet、JavaBean确保投票过程安全且结果客观,且可实现跨平台运行。此外,本系统采用IntelliJ IDEA作为开发平台,使用主流的SSM框架,MySQL作为数据库,并使用HTML+CSS,编程语言为JAVA进行开发。
2.1 IntelliJ IDEA简介
IntelliJ IDEA是一款由JetBrains公司开发的,用Java编写的,适用于Java开发的集成开发环境(IDE)。
IntelliJ IDEA的主要特点是智能化和高效率。它具有强大的代码提示、自动补全、代码重构等功能,还有丰富的插件和工具支持,可以为Java开发提供最佳的开发体验。同时,它也支持其他语言的开发,如Kotlin、 Groovy、Scala等语言的开发。
IntelliJ IDEA在开发效率上也非常出色,具有强大的构建系统(Gradle、Maven)、版本控制、调试工具等。
总之,IntelliJ IDEA是一款功能强大、易用性高的Java开发工具,受到了Java开发者的广泛欢迎和使用。
IntelliJ IDEA是一款由JetBrains开发的集成开发环境(IDE),适用于Java、Kotlin、Groovy和Scala等语言的开发。IntelliJ IDEA具有强大的代码编辑、代码导航和自动补全功能,并支持各种常见框架和技术,如Spring、Hibernate、Maven、Gradle等。同时,IntelliJ IDEA还具有代码重构、代码分析、测试和调试等功能,可以在开发过程中提供全面的支持和帮助。
IntelliJ IDEA的优点有很多。首先,它的智能代码提示和错误检查功能可以大大提高代码编写效率和代码质量。其次,它支持多种常见的版本控制系统,如Git和SVN,方便团队协作开发。此外,IntelliJ IDEA还支持各种插件和扩展,可帮助开发人员更好地适应不同项目的需求和工作流程。
总体而言,IntelliJ IDEA是一个强大、灵活和易于使用的开发工具,被广泛认为是Java开发中最好的IDE之一。
2.2 SSM框架简介
Spring是一个开源的轻量级的JavaEE开发框架,提供了依赖注入(DI)和AOP(切面编程)等功能,简化了Java应用开发的复杂性。
SpringMVC是Spring框架中的一个模块,是基于MVC设计模式的Web框架,负责请求的分发和响应的处理。
MyBatis是一个持久化框架,可以将Java对象映射到数据库中的表,使得开发人员能够通过对象操作数据库而不必写SQL语句。
SSM框架将这三个框架组合起来,能够快速地开发Web应用,并且保证了应用的高效性、可维护性和可扩展性
SSM是Spring、SSM和Mybatis的缩写,是由Spring与Mybatis框架整合的一个Web应用程序开发框架集,其中SSM属于Spring框架。
Spring它是一个分层的JavaEE full-stack(一站式)轻量级开源框架,无需特殊容器支持,不依赖特定规范等,为开发Java应用程序提供全面的基础架构支持。Spring框架的核心为IoC容器和AOP。IoC通过依赖注入来实现控制反转,从而实现把创建对象过程交给Spring进行管理。AOP指的是面向切面的编程,利用AOPA可以对业务逻辑的各个部分的隔离,提高代码复用率,也便于开发人员不修改源代码进行功能增强,从而提高开发效率。
此次系统整体采用SSM框架,Spring容器框架将Java类统一进行装配,采用注入的方式生成实例。SpringMVC将业务分成三层:控制、处理和视图,各个层的分工非常明确,功能划分清晰。MyBatis解耦了业务处理逻辑与数据访问逻辑,同时实现SQL语句与逻辑代码相互分离,有高度的灵活性,可优化性,便于后期维护。
2.3 MySQL数据库简介
MySQL是一个开源的关系型数据库管理系统(RDBMS),广泛用于Web应用程序开发和网络服务器端的数据存储。MySQL由MySQL AB公司开发并维护,现在是Oracle公司的一部分。MySQL具有性能高、免费、易用、可靠性高等优点,并且支持多种操作系统(如Windows、Linux、UNIX等)。MySQL支持SQL语言和多种编程语言(如Java、PHP、Python等),支持多用户和多线程,并且可扩展性好。在以上特性和优点的基础上,MySQL已经成为当前最流行的开源数据库之一。对于任何一个全新开发的系统应用设计而言,都需要进行数据库的匹配安装,而此次所设计开发的智能点餐系统的数据库就是MySQL,之所以会选择该数据库,主要原因是它能够进行关联数据,而且数据库的稳定性非常强;同时还因为该数据库具有相对优越的使用性能,尤其是在开发环境的应用上,能够体现出其极致的优越性和良好的安全性、灵活的性能。除此以外,还因为MySQL数据库在编辑完成之后,可以在任何的系统环境当中进行使用说明它的兼容性是非常强的,同时它支持多线编程,能够节省CPU的暂存空间,同时它的运行速度和安全稳定性也是非常强的,更重要的是,它是一款免费的数据库应用产品,可以在系统建设和应用阶段省下一些设计成本。
2.4 JAVA编程语言简介
该项目是在JAVA的基础上开发的。编程语言是面向对象的。JAVA的推出使得整个互联网上的交互式应用程序展现出一个新的“世界”。
Java程序在计算机操作系统软件程序的具体过程中是不可或缺的应用软件,因为它的质量和性能都比较高,能够用于各种空间领域。在常用的工具软件程序中,应用比较广泛。Java编程并没有那么复杂,借助进一步提升系统设计本身的基础知识,对于优化工作效率也能起到非常强大的作用,同时也是大多数软件开发工程师的首选。
在此次进行系统设计开发研究的过程当中,还发现Java程序语言之所以能够得到市场上更多用户的好评和青睐,其根本原因在于他能够具备各种语言的优点又有自己的特色,也就是说它的兼容性是常强的,这是Java程序,非常独特的另一个优点。
平台独立性、语言灵活性、多线程编辑是Java语言程序的最强展现,可以用虚拟机来翻译一些比较重要的中间翻译码,使Java语言程序在虚拟机当中进行正常运行,而且,外语言程序的灵活性也是非常高的,多线程的特性可以实现不同系统和相同语言程序的共同操作,使得互联网技术能够呈现系统功能应用的更多样化。
Java编程语言是一种面向对象的编程语言。它最初是由Sun Microsystems开发的,目的是解决嵌入式系统中的硬件和软件间的通信问题。Java凭借其跨平台的特点,在互联网应用方面得到了广泛应用。Java的主要特点包括:
(1)简单易学:Java语言舍去了C++中的一些复杂的特性,降低了学习Java的门槛。
(2)跨平台性:Java可以在不同的操作系统平台上运行。Java的跨平台特性是通过Java虚拟机实现的。
(3)面向对象:Java是一种面向对象的编程语言,它提供了封装、继承和多态等面向对象特性。
(4)安全性:Java提供了一些安全机制,如不允许未经授权的访问系统资源,不允许将指针操作等,从而提高了程序的安全性。
(5)高性能:在运行速度方面,Java与C++相比略逊一筹,但它的高性能主要体现在运行速度和程序开发时的效率方面。
Java的主要应用领域包括企业级应用、Web应用、移动应用和游戏开发等。在企业级应用领域,Java技术已被广泛应用于服务器系统和数据库开发等方面,在Web应用领域,Java语言也是最广泛使用的一种语言。
2.5 B/S架构
B/S架构是一种将客户设计和服务器分开,以便客户可以使用浏览器访问服务端并进行操作。
当今,B/S结构在许多系统的搭建中得到了应用,该结构去除了C/S结构的弊端,因此拥有了更多的优点:
(1)B/S标准的确立是通过标准化组织实现的,它适用于绝大多数系统的构建,并且可以在不同应用场景之间使用。
(2)通过将客户端和服务器端分离,有效减轻了两端的压力,特别是在客户端方面,其对设备、硬件和软件的要求相对较低。此外,当系统需要升级或维护时,只需在服务器端进行升级或维护即可,从而实现了相应费用的降低。
2.6MySQL环境配置
MyEclipse是一款基于Eclipse平台的商业化Java开发工具,支持Web、企业级、桌面应用程序等多种应用的开发。以下是MyEclipse环境配置的步骤:
1. 下载MyEclipse
在官网上下载MyEclipse的安装包,可以试用30天或者购买正式版。
2. 安装MyEclipse
解压下载的安装包,双击运行安装程序,一路点击“Next”即可。
3. 配置Java环境变量
在系统环境变量中配置Java的变量。找到系统环境变量里的“Path”,添加Java的bin目录路径。
4. 启动MyEclipse
双击MyEclipse图标启动软件,选择“create a new workspace”或者直接打开一个已有的工作空间。
5. 配置Tomcat
在MyEclipse菜单栏里选择“Window” -> “Preferences”,在左侧项目中找到“Server” -> “Runtime Environments”,点击“Add”按钮,添加Tomcat的安装目录。
6. 扩展MyEclipse
可以在MyEclipse市场中心下载和安装各种插件和扩展包,扩展软件的功能和方便性。
以上是MyEclipse环境配置的简要步骤,可根据个人需要作相应调整。
2.7本章小结
这个部分讲述了网站所用到的一些技术支撑,对这些技术从自己理解的层面结合网上官方的回答向读到这篇论文的学者呈现出来,从而让读到该项目论文的读者了解该系统的技术支撑,同时最后也大概的描述了网站的主要内容。
第2章 系统分析
3.1 系统设计目标
设计并开发一个基于Java的在线投票系统,包括用户管理、投票管理、统计分析等模块。实现用户的注册、登录、个人信息管理等功能,确保用户信息的隐私和准确性。实现投票的创建、编辑、删除等功能,确保投票信息的完整性和准确性。实现投票流程控制,包括投票的开始、结束、延期等功能,确保投票的公平性和透明度。实现投票的计数和数据分析功能,包括投票的参与度、最受欢迎的选项、投票结果等指标,为系统运营提供数据支持。实现系统的稳定性和安全性,包括数据备份、系统监控、异常处理等功能,确保系统的可靠性和可用性。对系统进行性能测试和优化,确保系统的响应速度和并发能力。提供友好的用户界面和操作体验,提高用户满意度和使用体验。
3.2 系统的可行性分析
(1)技术可行性
在线投票的系统设计选择了IntelliJ IDEA作为开发平台,采用主流的SSM框架作为开发框架,MySQL作为数据库,开发了这个在线投票系统,该系统技术上使用HTML+CSS,编程语言是JAVA语言进行开发。技术上这几种语言已经非常完善和成熟了,是能够很好地完成在线投票系统技术上的开发,技术方面的可行度还是相当高的。[9]由于在线投票系统的实现是对硬件的要求相当低的,并且相对于现如今人们所使用的计算机均可满足使用,所以在当前技术上考虑该系统开发是可行性的。
(2)操作可行性分析
随着计算机的普及和生活水平的提高,如今基本人手一台笔记本电脑,而该系统几乎现如今所有的电脑都能运行,同时在不同机型的笔记本上均不会改变它的设置和布局,在线投票系统使用B/S架构,基于浏览器的设计模式,系统对于管理人员的计算机水平要求并不高。[10]简洁的图形操作界面,清晰明了的布局,让用户几乎不需要太多的理解成本,简单地说明指导后,用户就可以十分方便快捷进行使用操作。所以在操作上考虑该系统开发是可行的[11]。
(3)经济可行性分析
在线投票系统的开发过程中所使用的IntelliJ IDEA、MySQL、Tomcat这些都是开源免费的软件,成本非常低,其系统运行对设备配置的要求也不算太高,用自己的电脑就可以完成,所以开发成本非常低。而且该系统极大地提高了教学完整度[12]。因此从经济方面考虑该系统开发是可行的。
3.3 需求分析
3.3.1 业务环境
可以涵盖政治投票、学校评选、活动投票等各个方面。例如,政治投票中可以对政治候选人进行投票;学校评选中可以对优秀学生、杰出教师等进行评选;活动投票中可以对活动方案、主持人、表演节目等进行投票。在线投票系统的应用范围广泛,可以满足各种投票需求,提高投票的效率和准确性。
在政治投票中,该系统可以实现多种选举方式,如单选、多选、复杂投票等。管理员可以创建选举话题、设置投票规则、设定选举候选人、开启投票等操作。候选人可以展示自己的个人信息、选举纲领、竞选宣言等,吸引选民的支持。投票结果可以实时统计,并进行可视化展示、导出等操作,以便分析和使用。
在学校评选中,该系统可以实现对学生、教师、辅导员等候选人进行评选和投票。管理员可以设定评选节目、设置评选标准、设定候选候选人名单,支持多轮投票和优秀评选等实现。候选人可以展示自己的获奖经历、成绩等,并吸引投票者的认同和支持。
在活动投票中,该系统可以实现对活动主持人、方案、节目等进行投票。管理员可以创建投票话题、设定投票规则、设定投票选手名单、关联活动场次等操作。选手可以展示自己的节目创意、表演技巧等,引起投票者喜欢。
综上所述,在线投票系统的应用场景十分广泛,可以满足各种投票需求,提高投票的效率和准确性,节约成本和节约时间。
3.3.2 用户需求分析
本设计是在线投票系统,主要是通过用户和投票者实现投票项目的发起和投票的展开,然后研究开发出一个在线投票系统,该投票系统在投票的管理模块里,管理员可以设置当前投票的主题、添加投票主题、删除投票的主题、修改投票、管理投票的相关信息等。在投票功能模块里可以实现用户投票、显示投票的结果、统计投票的数量等,还可以对用户的投票数量进行限制,用户投完票后还可以对其进行留言等操作。
3.3.3 功能需求分析
通过对在线投票系统进行了全面的调查,以及在分析的基础上制定出了在线投票系统的系统总体的规划。系统功能模块包括有:用户模块、投票者模块、管理员模块。用户模块:该模块用于管理系统的注册、登录、修改密码等功能。具体功能包括:
(1)用户注册:用户可以进行注册并填写个人信息。注册信息包括用户名、密码、电子邮箱等必填项。注册成功后系统会自动向用户的邮箱发送一封确认邮件,用户需要根据邮件内容进行验证并激活账号。
(2)用户登录:已注册的用户可以使用用户名和密码进行登录,登录成功后可以进行下一步操作。
(3)修改密码:用户可以在登录后进行密码的修改,需要输入旧密码和新密码两次进行确认。
投票者模块:该模块用于管理投票者的投票、查看投票结果等功能。具体内容包括:
(1)投票功能:投票者可以在投票选项中进行选择并进行投票,投票后可以查看当前的投票结果。
(2)查看投票结果:投票者可以查看当前投票选项的投票结果,了解当前的投票情况。
管理员模块:该模块用于管理整个系统的后台管理,包括用户管理、投票管理、在线留言管理、论坛区管理、系统配置等功能。具体内容包括:
(1)用户管理:管理员可以对注册用户进行管理,包括用户信息的修改、删除等操作。
(2)投票管理:管理员可以对系统中的投票进行管理,包括投票选项的添加、修改、删除等操作。
(3)系统配置:管理员可以对系统进行配置,包括网站名称、网站LOGO、SEO信息等设置。同时还可以设置投票规则、参与者身份等其他参数。
管理员登录成功,进入系统后,管理员的功能有个人中心、投票者的管理、用户的管理、投票主题的管理、投票信息的管理、投票结果的管理、在线留言、论坛区、系统管理等功能。管理员用例图如图1所示

用户登录成功进入系统后,可以使用个人中心、投票信息管理、投票结果管理。用户用例图如图3-2所示。

投票者成功登录,进入系统后,投票者可以使用的功能有:个人中心、投票信息管理、投票结果管理。投票者用例图如图3-3所示。

3.3.4 用户操作流程
在线投票系统分为用户界面和管理界面两个部分。为了确保数据的安全性,用户提交登录信息,系统通过数据验证后,用户才可以使用系统中的一些功能。
用户登录流程图如图3-3-1所示。

3.3.5 管理员操作流程
管理员主要是对账号信息、投票者、进行添加、删除、编辑、查询、对用户投票者的设置。该功能实现后台用户的登录功能,不同用户对应的角色是不同的,不同的角色对应不同的权限,系统管理员会给予分配。不同的角色根据自己不同的权限进行相应的操作,若想改变角色只有获得管理员的权限才能进行角色的更改。管理员对新增投票的流程图如3-3-2所示

管理员添加用户流程图如3-3-3所示。

管理员管理投票流程图如3-3-4所示

3.3.6系统性能需求分析
该在线投票系统在主要功能方面应该达到如下要求:
1可扩展性
该系统的设计是在目前所需要的功能为目标的基础上进行设计研发的,为了适应未来实际的需求的变化,给未来的功能提供更便捷的扩展和维护,我们必须去考虑到系统的扩展问题,在现有的基础上去增加功能时,系统原本的框架和功能点不会被太大的影响。
2稳定性
在线投票系统的使用度十分的广泛,因此,该系统的运行必须要稳定,可靠的同时,也要高效,因此,在按照功能进行划分时,要使得他们不会有强烈的依赖,这样才能保持系统的稳定性,提高用户的使用舒适度。
3易用性
该在线投票系统是为了在线投票系统所开发,因此必须开发一个易操作且高效的系统,避免有些用户未使用过电脑系统而不会操作,同时在易操作和的基础上,我们还应该做到界面的美观,这样才能让用户有更好的体验感。
4流畅性
一个好的系统,它的流畅性是必须要好的,要想有一个好的流畅性,需要考虑的地方无疑是需要更加全面的,不是简单的程序运行起来就可以,我们还应该更多的去考虑代码的运行效率即合理的算法设置等,通过这些操作来提高内存与系统同用户之间的一个响应速度,让使用者拥有一个全新且舒适的使用效果。对此,我们可以删除不需要的一些属性,提高布局复用,同时通过线程等方法去优化该系统的启动速度。
5安全性
该在线投票系统由于可以应用于所有的浏览器,因此,这个应用程序有很多关于用户和管理员的信息,其中应用程序必须建立安全机制和权限设置,以确保操作用户身份的合法性,并防止未经授权的操作。它可以保证用户连接的真实性,提高用户连接的真实性,同时也保护了用户的个人信息,让用户个人信息的安全得到了具体的保障。
3.4系统维护分析
近几年来,随着系统的崛起,越来越多的店铺开始对系统进行了研发,随着系统的日益增多,系统的维护也成为了一个无法逃避的问题,因此,本块对系统的维护进行了简单的介绍。系统维护包括以下几个方面的工作:
在系统的维护过程中,常常会遇到问题,使得程序需要做出相应改动,这些问题基本是没有办法去避免的,所以务必在每次维护的同时进行最大限度的改进,否则一旦问题堆积后,完后对程序的改动会比较大,增加了维难度和维护工作量。例如:常见的系统会遇到不符合要求的错误数据,那么系统就会出现错误,从而导致整个系统的中断。系统长时间被用户使用,用户会对其系统日渐了解,相应的会反馈一些我们未发现的漏洞,或者随着社会发展随着时间,环境,大势变化,用户会要求台添加相应需求项目,到了这个阶段,一些软件就要进行维修了。
(2)进行实时更新和维护的数据库:当因为一些操作和需求的改变,这个时候我们就需要对现在的这个数据库进行一个与各种操作的改变同时发生的一个转变,并需要对库进行一个随时的保养和维护。
(3)代码的保养与维护:随着社会发展随着时间,环境,大势变化,系统长时间被用户使用,相应的会反馈一些我们未发现的漏洞,然后需要改进代码,在原有的基础上改进代码,或者重新编写代码。一般来说,运行新代码是代码维护的难点,所以系统需要专业人员来负责代码维护。
3.5 本章小结
本章主要内容为系统需求分析工作,通过系统情况概述明确了系统的用户和使用场景,利用系统功能性分析明确系统的核心功能,非功能行分析主要包括网站的可行性分析,数据分析,同时网站的可行性分析中又分为3大部分,分别为:经济可行性,技术可行性,操作可行性,根据前面针对系统情况、功能和非功能方面的分析结果,对系统的用例图进行了简要说明,通过这几部分工作共同完成了系统需求分析工作,为系统设计开发工作做准备。
第4章 系统的详细设计
4.1 系统功能模块设计
本文的软件设计目标是建立一个在线投票系统,该系统需要满足用户对系统功能的需求,同时也要保证系统和使用者之间具有良好的互动。为此,我们采用了模块化设计理念,将整个系统划分为多个相对独立又相互关联的子项目,每个项目都有相应的接口与之相连。这样的设计可以保证系统的安全性和稳定性,同时提高用户的使用体验。
在这个体系结构下,我们将每个功能都做了细致的划分,并从功能、接口以及逻辑等方面进行了细致解剖。通过这样的设计,可以将一堆作品分解成若干个小块,每个小块包含着大量的细节内容。将这些细枝末节处理好了,一切都将变得完满起来。
通过模块化设计,可以对系统软件进行扩展,面向管理员对管理方案进行模块扩展。例如在在线投票系统中,我们设计了投票者和管理员两种角色,每个角色拥有不同的功能模块。这样的设计可以帮助管理员根据需要进行操作、调整和维护,并最终根据需要完成任务,系统的功能结构图如图4.1所示。

4.2数据库设计
MySQL数据库是本系统所采用的数据存储方式,具体展示了主要数据表的结构如下:
在线留言表是网站上一种允许访问者留言反馈的表单工具。在线留言表结构如表 4-2所示。

论坛区表格是一种在线数据表格工具,可以用于收集、整理和分析用户提交的信息或数据,论坛区表格结构如表 4-3所示。

用户信息表记录了系统中所有用户的基本信息及相关属性。用户信息表结构如表 4-4所示。

投票主题表是用于组织投票,记录投票开始时间和截止时间并收集和整理投票结果。投票主题表结构如表 4-5所示。

投票信息表是用于记录投票活动中投票选项、票数、参与人员等相关信息的数据表。投票信息表结构如表 4-6所示。

投票结果表是一种记录选举或投票活动中各项选项得票情况的统计表。投票结果表结构如表 4-7所示。

4.3本章小结
该章主要介绍了网站的设计原则,工作原理,功能的操作流程,需求分析以及数据库的设计,以及用户对数据的增删改查的流程进行了展示。
第5章 系统实现
5.1登录
系统内的管理员或者普通用户进入系统都需要通过账号密码输入进行登录,用户根据自己的角色进行选择同时输入正确的账号和密码即可进入系统,实现界面见图5-1。

登录页面实现代码如下:
/**
* 登录
*/
@IgnoreAuth
@RequestMapping(value = "/login")
public R login(String username, String password, String captcha, HttpServletRequest request) {
YonghuEntity u = yonghuService.selectOne(new EntityWrapper<YonghuEntity>().eq("yonghuzhanghao", username));
if(u==null || !u.getMima().equals(password)) {
return R.error("账号或密码不正确");
}
if(!"是".equals(u.getSfsh())) return R.error("账号已锁定,请联系管理员审核。");
String token = tokenService.generateToken(u.getId(), username,"yonghu", "用户" );
return R.ok().put("token", token);
}
5.2 管理员功能模块
管理员可以查看用户和投票者的账户信息,管理员还可以对用户的账号信息进行添加、删除、修改、查询。该模块功能实现了后台用户的登录功能,不同的用户对应的角色是不同的,同理不同的角色对应的权限也是不同的,系统管理员可以对角色进行修改。角色管理界面如图5-2,5-3所示。


5.3用户功能模块
投票主题管理界面主要功能包括设置投票的主题,进行添加、查询、修改、删除。当管理员在点击投票主题管理菜单时,默认显示的是投票主题的信息列表,还可以对投票主题进行查询,点击相应的菜单进入详情页面,可以编辑投票主题的信息,点击删除按钮将会移除投票主题的信息。投票主题管理界面如图5-4所示。

实现代码如下:
/**
* 列表
*/
@RequestMapping("/lists")
public R list( ToupiaozhutiEntity toupiaozhuti){
EntityWrapper<ToupiaozhutiEntity> ew = new EntityWrapper<ToupiaozhutiEntity>();
ew.allEq(MPUtil.allEQMapPre( toupiaozhuti, "toupiaozhuti"));
return R.ok().put("data", toupiaozhutiService.selectListView(ew));
}
/**
* 查询
*/
@RequestMapping("/query")
public R query(ToupiaozhutiEntity toupiaozhuti){
EntityWrapper< ToupiaozhutiEntity> ew = new EntityWrapper< ToupiaozhutiEntity>();
ew.allEq(MPUtil.allEQMapPre( toupiaozhuti, "toupiaozhuti"));
ToupiaozhutiView toupiaozhutiView = toupiaozhutiService.selectView(ew);
return R.ok("查询投票主题成功").put("data", toupiaozhutiView);
}
5.4 本章小结
本章节介绍了在线投票系统的各种功能,并且在这章节里面我详细的介绍了网站的这些页面所能执行的一些操作,当第一次操作该网站的用户可以迅速上手,同时,让读者对网站的实现的具体功能有一个大概的了解。
第6章 系统测试
6.1 测试目的
完成在线投票系统的程序代码编写并不能代表软件开发工作已经结束。在软件项目中,开发人员通常对软件开发过程的一些细节缺乏了解,导致程序编写方面存在许多失误。为了确保在线投票系统的正常运行,测试工作是软件工程学领域中不可或缺的一部分,也是提高软件质量的重要途径之一。通过设计有效的测试用例,测试人员可以及时发现程序编写中的各种错误,分析错误的位置以及其对其他部分的可能影响,最终提高投票系统的完整性、完善性,以及提高实现最初设计的目标性。
测试工作在开发在线投票系统时也是必不可少的一项任务。我们将采用测试用例的方式进行测试。测试用例是一项根据软件可靠性理论提出的性能测试操作,它针对特定的软件进行性能测试,包括测试目标、环境、数据、步骤、预期和结果等方面。测试用例的质量好坏将直接影响到整个投票系统的优劣。测试用例包括用例标题、前置条件、测试流程和预期成果这四个核心要素。在整个软件开发过程中,测试用例具有非常关键的地位,如果没有完善有效的测试用例,就无法完成对在线投票系统的可靠性与安全性的测试工作。测试软件的某个功能在用例标题中得到了详细描述,而前置条件则是指用例所需满足的条件。测试步骤着重描述了用例的操作步骤,预期结果则是测试结果是否符合开发设计的预期要求。
针对在线投票系统的测试用例的设计与执行,将能够帮助我们发现并改进系统的漏洞,提高系统的整体性能。因此,测试工作的重要性不容忽视,只有这样才能确保在线投票系统能够高效、稳定、安全地运行。
6.2 测试内容
6.2.1 用户注册功能测试
在在线投票系统上检查用户注册功能是否正常运作,输入用户个人信息,并填写测试用户名和密码。随后,填写用户信息注册模块的测试用例表,如表6-1用户信息注册功能测试用例。

6.2.2 用户登录功能测试
在线投票系统需要测试其登录功能是否正常可用。为此,需要先测试输入有效的登录凭证是否能成功登录系统,以确保系统登录功能无问题。同时,还需要测试当用户输入无效的凭证时,是否仍可成功登录系统,以验证系统具有容错功能。如表6-2用户信息登录功能测试用例。

6.2.3 上传个人信息功能测试
验证在线投票系统的信息上传功能是否正常。即当用户填写相关信息进行投票时,是否可以成功提交。如表6-3上传信息功能测试用例所示。

6.2.4 修改个人信息功能测试
个人信息修改功能是否正常使用,信息被选中后是否可以输入和修改,系统是否可以正确修改,个人信息模块测试用例表是否可以修改,如表6.4所示。

6.2.5 投票功能测试
检查投票功能是否正常。用户在填写投票时,是否能成功提交。投票管理模块测试用例表如表6-5所示。

结 论
该在线投票系统是经过详细的需求分析和各功能模块的精细设计,在规范的编码实现和严格的功能测试后完成的。在用户使用和经过测试、修改和调试后,该系统的运行情况良好,各项功能均达到设计要求。除了在校、公司、组织等局域网络环境中供内部人员使用,还可以以插件形式嵌入门户网站供广大互联网用户使用。因此,该系统具有庞大的市场需求和非常广泛的应用前景。
该系统利用了SSM框架技术及其他Java语言基础技术(如JSP、JavaBean、拦截器、数据库连接等),MySQL作为数据库,使系统开发高效快速地完成。其中系统实现系统管理员登录以提供身份认证功能,采用的是流行的JSP+MySQL组合技术实现动态页面编程。系统页面采用紫色图片背景,前台投票页面题目列表显示清晰,后台管理页面采用左右框架式设计,十分美观。制作工具主要有Dreamweaver和Photoshop等网页制作工具以及图片处理软件。
该系统具有投票题目管理、用户身份验证、新增图片投票模块、投票结果饼状图显示、防止恶意刷票等优点,具有实用性强、移植性好、可扩展性高、界面简单易用的特性。然而,由于时间和精力的限制,该系统还存在功能不够全面、界面不够美观以及突发性故障处理不够好等不足之处。
参考文献
[1]周敏.基于区块链的安全电子投票方案研究[D].导师:王化群.南京邮电大学,2022.
[2]胡南方.基于区块链的电子投票技术研究与实现[D].导师:沈苏彬.南京邮电大学,2022.
[3]李艺佳.恶意环境下投票系统可靠性分析[D].导师:胡潇潇.兰州大学,2022.
[4]张忠孝,李双远,丁勤.基于Web的高校职称评审投票系统的设计与实现[J].吉林化工学院学报,2021,(07):29-35.
[5]曾国强,王楚虹,黄江,师文庆.基于微信小程序投票系统设计[J].机电工程技术,2020,(01):159-161.
[6]杨成义,林煌,李楚贞.基于ASP.NET的在线投票系统的设计与实现[J].信息与电脑(理论版),2019,(11):106-107.
[7]蒋嵩林.基于微信支付平台的在线投票系统[J].软件,2019,(03):118-121.
[8]李中帅.基于WEB的职称评聘投票系统的研发[J].长春工程学院学报(自然科学版),2018,(04):90-94.
[9]刘瑾.基于MVC的投票系统的实现[J].电脑知识与技术,2018,(29):117-118.
[10]刘超.基于Spring Boot+Mybatis的在线投票管理系统的设计与实现[D].导师:孙永雄.吉林大学,2018.
[11]陈海辉,余杰,秦栋.基于PHP的有线投票系统[J].中国有线电视,2018,(08):952-954.
[12]吴三柱.基于ASP的在线投票系统设计与实现[J].价值工程,2018,(19):203-204.
[13]Alves João,Pinto António. On the Implementation of a Blockchain-Assisted Academic Council Electronic Vote System[J]. Smart Cities,2023,6(1).
[14]Dragoș Cătălin BARBU, Gabriela DOBRIȚA (ENE), Simona Vasilica OPREA, Adela BÂRA, Vlad DIACONIȚA. Challenges and benefits of Blockchain-based Electronic Voting System[J]. Romanian Journal of Information Technology and Automatic Control (RRIA),2022,32(4).
参考文献
[1]周敏.基于区块链的安全电子投票方案研究[D].导师:王化群.南京邮电大学,2022.
[2]胡南方.基于区块链的电子投票技术研究与实现[D].导师:沈苏彬.南京邮电大学,2022.
[3]李艺佳.恶意环境下投票系统可靠性分析[D].导师:胡潇潇.兰州大学,2022.
[4]张忠孝,李双远,丁勤.基于Web的高校职称评审投票系统的设计与实现[J].吉林化工学院学报,2021,(07):29-35.
[5]曾国强,王楚虹,黄江,师文庆.基于微信小程序投票系统设计[J].机电工程技术,2020,(01):159-161.
[6]杨成义,林煌,李楚贞.基于ASP.NET的在线投票系统的设计与实现[J].信息与电脑(理论版),2019,(11):106-107.
[7]蒋嵩林.基于微信支付平台的在线投票系统[J].软件,2019,(03):118-121.
[8]李中帅.基于WEB的职称评聘投票系统的研发[J].长春工程学院学报(自然科学版),2018,(04):90-94.
[9]刘瑾.基于MVC的投票系统的实现[J].电脑知识与技术,2018,(29):117-118.
[10]刘超.基于Spring Boot+Mybatis的在线投票管理系统的设计与实现[D].导师:孙永雄.吉林大学,2018.
[11]陈海辉,余杰,秦栋.基于PHP的有线投票系统[J].中国有线电视,2018,(08):952-954.
[12]吴三柱.基于ASP的在线投票系统设计与实现[J].价值工程,2018,(19):203-204.
[13]Alves João,Pinto António. On the Implementation of a Blockchain-Assisted Academic Council Electronic Vote System[J]. Smart Cities,2023,6(1).
[14]Dragoș Cătălin BARBU, Gabriela DOBRIȚA (ENE), Simona Vasilica OPREA, Adela BÂRA, Vlad DIACONIȚA. Challenges and benefits of Blockchain-based Electronic Voting System[J]. Romanian Journal of Information Technology and Automatic Control (RRIA),2022,32(4).