0

0

如何用Java制作小型投票统计系统

P粉602998670

P粉602998670

发布时间:2025-10-08 09:13:02

|

581人浏览过

|

来源于php中文网

原创

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

如何用java制作小型投票统计系统

制作一个小型投票统计系统可以用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免费学习笔记(深入)”;

餐饮E站通-在线订餐系统 免费版
餐饮E站通-在线订餐系统 免费版

在线订餐系统源码,提供给设计人员参考一个小型的在线订餐管理系统源码,采用三层模式开发,代码注释详细前台可以进行用户注册、菜单管理及订餐后台管理员可以进行菜单管理、新闻管理、菜肴管理、用户管理操作数据库采用的是Sql2005(由于数据库在App_Data下,如果装了Sql2005数据库会自动配置)

下载
    // 用户投票
    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)、文件保存数据或命令行交互,让系统更完整。核心逻辑清晰,易于维护和扩展。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
treenode的用法
treenode的用法

​在计算机编程领域,TreeNode是一种常见的数据结构,通常用于构建树形结构。在不同的编程语言中,TreeNode可能有不同的实现方式和用法,通常用于表示树的节点信息。更多关于treenode相关问题详情请看本专题下面的文章。php中文网欢迎大家前来学习。

539

2023.12.01

C++ 高效算法与数据结构
C++ 高效算法与数据结构

本专题讲解 C++ 中常用算法与数据结构的实现与优化,涵盖排序算法(快速排序、归并排序)、查找算法、图算法、动态规划、贪心算法等,并结合实际案例分析如何选择最优算法来提高程序效率。通过深入理解数据结构(链表、树、堆、哈希表等),帮助开发者提升 在复杂应用中的算法设计与性能优化能力。

21

2025.12.22

深入理解算法:高效算法与数据结构专题
深入理解算法:高效算法与数据结构专题

本专题专注于算法与数据结构的核心概念,适合想深入理解并提升编程能力的开发者。专题内容包括常见数据结构的实现与应用,如数组、链表、栈、队列、哈希表、树、图等;以及高效的排序算法、搜索算法、动态规划等经典算法。通过详细的讲解与复杂度分析,帮助开发者不仅能熟练运用这些基础知识,还能在实际编程中优化性能,提高代码的执行效率。本专题适合准备面试的开发者,也适合希望提高算法思维的编程爱好者。

28

2026.01.06

golang map内存释放
golang map内存释放

本专题整合了golang map内存相关教程,阅读专题下面的文章了解更多相关内容。

75

2025.09.05

golang map相关教程
golang map相关教程

本专题整合了golang map相关教程,阅读专题下面的文章了解更多详细内容。

36

2025.11.16

golang map原理
golang map原理

本专题整合了golang map相关内容,阅读专题下面的文章了解更多详细内容。

61

2025.11.17

java判断map相关教程
java判断map相关教程

本专题整合了java判断map相关教程,阅读专题下面的文章了解更多详细内容。

42

2025.11.27

C++ 设计模式与软件架构
C++ 设计模式与软件架构

本专题深入讲解 C++ 中的常见设计模式与架构优化,包括单例模式、工厂模式、观察者模式、策略模式、命令模式等,结合实际案例展示如何在 C++ 项目中应用这些模式提升代码可维护性与扩展性。通过案例分析,帮助开发者掌握 如何运用设计模式构建高质量的软件架构,提升系统的灵活性与可扩展性。

8

2026.01.30

c++ 字符串格式化
c++ 字符串格式化

本专题整合了c++字符串格式化用法、输出技巧、实践等等内容,阅读专题下面的文章了解更多详细内容。

8

2026.01.30

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Kotlin 教程
Kotlin 教程

共23课时 | 3万人学习

C# 教程
C# 教程

共94课时 | 8万人学习

Java 教程
Java 教程

共578课时 | 53.3万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号