基于短信和邮件通信的复杂投票系统设计

时间:2022-08-26 11:15:42

基于短信和邮件通信的复杂投票系统设计

摘要:基于短信和邮件通信的复杂投票系统,适用于开展多种形式的投票活动,具有较强的通用性。系统不仅能够采用实名制投票形式,给参与投票的用户提供以短信和邮件的形式发送系统随机生成的登录密码和投票密码的多重安全保障机制;而且还提供了为同一个投票活动扩展投票轮次的功能,每一次扩展都将提供三种确定新增轮次投票活动候选人的可选方案,且每一种方案对应各自不同的计算方式。经测试和投入使用,该系统安全而可靠,不会占用参与投票用户过多的时间,极大地提高了工作效率。

关键词:投票;短信;邮件;随机密码

中图分类号:TP393 文献标识码:A 文章编号:1009-3044(2016)10-0033-03

投票活动是我们在日常生活中的各个阶层、多个方面都会时常接触到的一种实际有效的对人才和资源的筛选措施。通过各种形式收集采纳群众的意见,进行一次甚至多次相应的信息统计和结果汇总,最后筛选出符合基本要求并且满足广大群众意愿的优胜者。虽然投票的主旨是一成不变的,但是为了满足当下这种快节奏的日常生活对高效率办事风格的要求,在线投票活动已经在各种人才或资源的筛选过程中趋于大众化、普遍化,并且逐渐占据着领导地位。能够简单而灵活地控制某场筛选活动进行多轮次的投票,给活动的组织者以及参与者带来时间上的便捷、操作上的安全以及结果上的公平和公正,以追求一种更贴合实际,更具实用价值的对于人才和资源的筛选形式,已经逐渐成为目前各种投票活动中亟待解决的问题和现今多种形式筛选工作的重心

针对以上分析,设计实现一个基于短信和邮件通信的复杂投票系统,重点研究该系统在多轮次操作功能上的基本实现。

1 系统总体设计

基于短信和邮件通信的复杂投票系统是以Java语言作为系统开发语言、SSH架构作为系统开发平台,结合Struts2的MVC设计思想设计实现的。其中,Java是目前最流行的面向对象编程语言[1],具有功能强大和简单易用两个特征。SSH(Struts2+Spring+Hibernate)架构是一种具有高度的实用性和可扩展性的轻量级Java EE平台[2]。

基于目前我国大多数大中型企业都使用Oracle作为后台管理数据库,世界上很多知名企业也使用Oracle来处理存储的海量数据[3],本系统同样采用这种大型数据库来对后台存储的数据进行处理。

如图1所示,系统操作的主要流程包括:投票基本信息录入、生成随机密码、通知用户投票、用户参与投票、以及结束投票或新增下一轮。

具体描述如下:

1)投票基本信息录入:系统管理员根据需要新增或批量导入投票主题信息及其对应的投票用户和参评人基本信息。

2)生成随机密码:系统管理员选择为指定投票主题下的用户生成随机的登录密码和投票密码。

3)通知用户投票:系统自动以短信和邮件的形式通知用户有关于投票活动的相关信息。

4)用户参与投票:用户通过账号密码登录系统,在投票控制界面列举的参评人名单中勾选若干名单,输入投票密码后提交。

5)结束投票或新增下一轮:一轮投票结束后,管理员根据汇总结果决定是否需要再新增一轮投票。如需新增投票轮次,系统将提供三种可选的确定新增轮次候选人的方案,选定一种方案后将循环执行上述2)、3)、4)部分操作。

基于短信和邮件通信的复杂投票系统设计实现了系统设置、投票参数设置、投票过程管理、系统查询及结果汇总四个功能模块。具体功能结构如图2所示,其中投票参数设置和系统查询及结果汇总模块作为系统实现的重点部分。投票参数设置负责投票基本信息的录入,以及新增投票轮次的设置;系统查询及结果汇总主要包含随机密码的动态生成、短信和邮件发送设置以及各方面投票记录信息的展示。

2 系统详细设计

结合系统的操作流程和功能结构图,用户投票、结果汇总以及新增投票轮次是整个系统设计的重要部分。其中,用户投票部分采用登录权限控制,登录密码和投票密码随机生成并且以短信和邮件的形式直接发送给用户个人的多层安全保障机制;投票结果由系统依据相关算法结合指标数和投票情况自动生成;新增投票轮次由管理员灵活选择和控制。整个系统的设计功能完善,操作简单,可以很大程度地提高用户的工作效率。本节重点介绍用户投票和新增投票轮次的设计实现。

2.1 用户投票设计

用户投票设计包含了从管理员录入投票基本信息到通知用户完成投票的整个过程的实现。系统管理员录入投票主题、用户以及参评人基本信息后,在启动投票之前,点击生成待启动投票主题用户的随机登录和投票密码,并点击“邮件+短信发送给所有用户”按钮,此时系统将自动以短信和邮件的形式向该主题下的所有用户发送有关该投票主题的名称、时间区间、网址、登录账号密码以及投票密码等信息。

用户通过账号和密码登录系统,进入投票控制界面,勾选想要投票的候选人名单,输入投票密码方可进行提交。用户完成投票后可查看个人投票详情以及所有用户的投票状态,即有哪些用户已经完成投票,哪些人正在进行投票以及哪些人还未参与投票。

2.2 新增投票轮次设计

新增投票轮次设计为保证投票活动筛选出足够数量的优胜者提供了方便。待第一轮次投票活动结束后,系统会将候选人按照得票数从高到低进行排序汇总。根据当前指标数a,系统将从汇总结果中顺次选取a个人作为本轮次投票胜出者。如果汇总结果中排在第a位的候选人得票数与第a+1位候选人得票数相同,则将排在第a位前面的第a-1位、第a-2位等的得票数顺次与第a位的得票数进行比较,直到找到与第a位得票数不同的候选人所在位置b,此时系统会自动选取前b位候选人作为本轮次投票胜出者。

综合上述汇总原则可知,在一次投票活动结束后极有可能存在优胜者数目达不到指标数的情况,即当前指标数a与已用指标数b不相等。系统为解决此问题进行了重点设计:当投票指标数不达标时,系统为管理员提供了直接结束投票或新增下一轮次投票两种选择。若需要新增下一轮,系统将提供三种确认新增轮次投票候选人的选择方案,具体实现结构图如图3所示:

三种确认新增轮次候选人的具体设计说明如下:

1)默认选择方式

默认选择方式旨在由系统自行将汇总结果中所有投票未通过者划归为新增轮次投票候选人。

2)增量选择方式

增量选择方式旨在由系统结合管理员输入的增量值c,根据算法公式“A=当前指标数a-已用指标数b+增量值c”计算得出新增轮次投票候选人数量A,然后在汇总结果显示的投票未通过者名单中按得票数从高到低选取A个人划归为新增轮次投票的候选人,若处于划归边界位置的前后人员得票数相同,则一并划归到新增轮次中。

3)自定义选择方式

自定义选择方式旨在由管理员根据需要自行从展现给管理员的上一轮次所有投票未通过者得票数排名列表中选择若干人员划归为新增轮次的投票候选人。

3 系统实现与运用

根据系统的整体架构和具体功能实现的相关介绍,其实际应用效果展示如图4所示:

本系统现已作为长江大学学术委员会综合投票管理系统投入使用。以长江大学2015年岗前培训优秀学员评选投票活动为例,描述基于短信和邮件通信的复杂投票系统的实现过程。

1)系统管理员选择指定的投票主题,让系统为其生成相应的用户随机密码,如图5所示:

2)第一轮次投票结束后,如图6所示,系统自动汇总投票结果显示。

当已用指标数与当前指标数不相等时,可根据需要新增投票轮次,系统将提供如图7所示的三种确认新增轮次候选人的方案。

上述长江大学2015年岗前培训优秀学员评选投票活动展示了基于短信和邮件通信的复杂投票系统在生成随机密码、投票控制、结果汇总以及新增投票轮次几个方面的具体实现,操作简单,界面友好。从上述效果展示界面可以看出,系统为使用者提供了全方位的信息说明提示,为用户更好地操作本系统提供了方便。

另外,在管理员为系统录入投票主题、用户以及参评人等基本信息时,系统还提供了对这些基本信息的查询、修改、删除以及批量导出等功能。

4 结论

本文设计实现了一种基于短信和邮件通信的复杂投票系统,改进了以往在线投票系统安全系数低,投票主题设置不灵活,投票轮次单一,难以达到预期指标的问题。特别是在新增投票轮次功能的设计上,有多种有效的制定形式可供操作者选择,且每一种选择都有相应的制定算法或原则,让同一种投票分多次进行变得更加高效,既易于操作,又便于维护。同时采用实名制投票形式,避免了同一个人通过更换不同设备进行刷票操作的隐患,多重密码保障机制让系统的操作更安全,结果更公正。

由于在线投票系统现在越来越趋于更大程度地模拟现实生活,所以本系统还需在多方面展现候选人评选信息的功能上做进一步的深入和研究,以求用户在进行投票时能够通过简单而有效地方式去了解候选人更多更真实的参选信息,从而让投票的结果更公平和公正。

参考文献:

[1]李刚.疯狂Java讲义[M]. 2版.北京:电子工业出版社,2014.

[2]李刚.轻量级Java EE企业应用实战 [M].3版.北京:电子工业出版社,2011.

[3]丁勇.从零开始学Oracle[M].北京:电子工业出版社,2012.

上一篇:生命教育视角下中专语文课堂教学有效性探究 下一篇:论加强与推进赤峰学院学生工作改革与创新研究