[案例3-4]学生投票系统

案例描述:

某班级投票竞选班干部,班级学生人数为10人,每个学生只能投一票。

本任务要求,编程实现一个投票程序,每个学生只能投一次票,投票成功提示“感谢你的投票”,若重复投票,提示“请勿重复投票”。当投票总数达到10时或者主观结束投票时,同时统计投票学生人数和投票结果。

运行结果:

代码如下:

import java.util.*;

/**
 * 2022/3/13
 */
public class TouPiao {
    private static final int MAX_COUNT = 10;        // 最大投票数
    private static int count;      // 投票数

    public TouPiao() {   // 创建无参构造方法

    }

    // 投票
    public void Tou(Set<String> hs, String s) {  // 传入HashSet集合与String字符串
        if (hs.contains(s)) {    // 判断集合中是否有此元素
            System.out.println(s + "请勿重复投票");
        } else {
            count++;    // 投票数+1
            System.out.println(s + "感谢您的投票!");
        }
    }

    // 投票结果
    public void JieGuo(Set<String> a ,List<String> b) {  // 传入两个集合
        System.out.println("当前投票数为" + count);   // 输出当前投票数
        System.out.println("投票人:" + a + "\n意见为:" + b);  // 输入投票人与投票人意见
    }

    public static void main(String[] args) {
        TouPiao tp = new TouPiao();   // 创建对象
        tp.tou();   // 通过对象调用投票方法
    }
    // 投票
    public void tou(){
        Set<String> tou = new HashSet<>();   // 创建Set集合用来存投票人姓名,因为Set集合不能存放相同的元素
        List<String> yi = new ArrayList<>();    // 创建List集合存投票人意见
        Scanner in = new Scanner(System.in);
        TouPiao to = new TouPiao();     // 创建对象

        boolean b = true;   // 定义一个boolean变量
        while (b) {  // 当b为false时停止循环
            System.out.println("请输入投票人姓名:");
            String s = in.next();
            System.out.println("请输入您的意见:");
            String y = in.next();

            to.Tou(tou, s);    // 将输入的元素传给Tou方法
            ChongFu(tou,s,yi,y);  // 调用方法,如果投票人重复,则意见取消
            tou.add(s);     // 将元素添加到集合中

            System.out.println("是否继续投票:(是 或 否)");
            String sf = in.next();   // 输入是否继续投票
            if (sf.equals("否") || count == MAX_COUNT){   // 如果输入的为否,或者投票数与最大投票数相等时,投票结束
                System.out.println("投票结束!");
                to.JieGuo(tou,yi);   // 输出投票结果
                b = false;   // 停止循环
            }
        }
    }
    public void ChongFu(Set<String> st ,String name , List<String> yi , String y){
        if (st.contains(name)){     // 如果投票人重复,则不添加意见
            System.out.print("");
        }else{
            yi.add(y);   // 不重复,添加意见
        }
    }
}

  • 15
    点赞
  • 113
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小陈努力学JAVA

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值