该系统用Java实现了候选人管理、投票记录与结果统计。1. 定义候选人名单并初始化得票数;2. 使用Map存储候选人及其票数,Set记录已投票用户防止重复;3. 提供vote方法校验用户是否重复投票及候选人有效性,成功则更新票数;4. showResults方法按票数降序显示结果;5. 主程序测试创建候选人、模拟投票,输出最终排名。核心逻辑清晰,便于扩展图形界面或持久化功能。

制作一个小型投票统计系统可以用Java实现基本的候选人管理、投票记录和结果统计功能。下面是一个简单但完整的实现思路和代码示例,适合初学者理解和扩展。
1. 系统需求分析
这个小型系统需要实现以下功能:
定义候选人名单接收用户投票防止重复投票(可选)统计各候选人的得票数显示最终投票结果
2. 候选人与投票数据结构设计
使用Map来存储候选人及其得票数,键为候选人姓名,值为票数。同时可以使用Set记录已投票的用户ID,防止重复投票。
import java.util.*;public class VoteSystem { // 存储候选人姓名 -> 得票数 private Map votes = new HashMap(); // 记录已投票的用户ID,防止重复投票 private Set votedUsers = new HashSet(); // 初始化候选人 public VoteSystem(List candidates) { for (String candidate : candidates) { votes.put(candidate, 0); } }
3. 投票与统计功能实现
提供投票方法,检查用户是否已投过票,并更新计数。
立即学习“Java免费学习笔记(深入)”;
// 用户投票 public boolean vote(String userId, String candidate) { if (votedUsers.contains(userId)) { System.out.println("用户 " + userId + " 已经投过票了!"); return false; } if (!votes.containsKey(candidate)) { System.out.println("候选人 " + candidate + " 不存在!"); return false; } votes.put(candidate, votes.get(candidate) + 1); votedUsers.add(userId); System.out.println("用户 " + userId + " 成功投票给 " + candidate); return true; } // 显示当前投票结果 public void showResults() { System.out.println("n=== 当前投票结果 ==="); votes.entrySet().stream() .sorted(Map.Entry.comparingByValue().reversed()) .forEach(entry -> System.out.println(entry.getKey() + " : " + entry.getValue() + " 票") ); }}
4. 主程序测试
编写主函数进行测试。
public class Main { public static void main(String[] args) { // 定义候选人 List candidates = Arrays.asList("张三", "李四", "王五"); // 创建投票系统 VoteSystem system = new VoteSystem(candidates); // 模拟用户投票 system.vote("user1", "张三"); system.vote("user2", "李四"); system.vote("user3", "张三"); system.vote("user1", "李四"); // 重复投票,应被拒绝 system.vote("user4", "王五"); system.vote("user5", "张三"); // 显示结果 system.showResults(); }}
运行结果示例:
用户 user1 成功投票给 张三用户 user2 成功投票给 李四用户 user3 成功投票给 张三用户 user1 已经投过票了!用户 user4 成功投票给 王五用户 user5 成功投票给 张三=== 当前投票结果 ===张三 : 3 票李四 : 1 票王五 : 1 票
基本上就这些。你可以在此基础上加入图形界面(Swing/JavaFX)、文件保存数据或命令行交互,让系统更完整。核心逻辑清晰,易于维护和扩展。
以上就是如何用Java制作小型投票统计系统的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/32043.html
微信扫一扫
支付宝扫一扫