思路:
学生投票系统 实现投票程序,班级总人数100,每人一票 投票成功提示“已成功投票,感谢您的支持” 重复投票提示“请勿重复投票” 当投票总数达到100或者主观结束投票时,同时统计投票学生人数和投票结果 1.学生类Voter 姓名 最大投票数 当前投票数 投票意见 2.票次数,静态成员变量,private static int count 保证数据只有一份 3.防止学生重复投票,必须保存参与投票的学生信息,可采用一个集合来存放已经投票的学生对象。 private static Set<Voter>voters = new HashSet<Voter>(); 4.编写测试类
代码:
代码结构:
测试类:
public class Test06 {
public static void main(String[] args) {
Voter v1 = new Voter("周自珩");
Voter v2 = new Voter("夏习清");
Voter v3 = new Voter("shoogy");
v1.voterFor("同意");
v1.voterFor("反对");
v2.voterFor("反对");
v3.voterFor("同意");
v1.printResult();
// v2.printResult();
// v3.printResult();
}
}
学生类Voter:
package base.base006;
/*
1.学生类Voter
姓名 name
最大投票数 MAX_COUNT
当前投票数 count
投票意见 answer
2.票次数,静态成员变量,private static int count
保证数据只有一份
3.防止学生重复投票,必须保存参与投票的学生信息,可采用一个集合来存放已经投票的学生对象。
private static Set<Voter>voters = new HashSet<Voter>();
*/
import java.util.HashSet;
public class Voter {
private String name;
private static final int MAX_COUNT = 100;
private static int count;
private static HashSet<Voter> voters = new HashSet<>();
private String answer;
public Voter(String name) {
this.name = name;
}
//投票
public void voterFor(String answer){
if(count == MAX_COUNT){
System.out.println("投票数已达上限!");
return;
}
if(voters.contains(this)){
System.out.println(name+" 请勿重复投票");
}else{
this.answer = answer;
count ++;
voters.add(this);
System.out.println("投票成功,感谢您的支持!");
}
}
//投票结果统计
public void printResult(){
System.out.println("已有"+count+"人参与投票");
System.out.println("参与投票的结果如下:");
for (Voter voter:voters){
System.out.println(voter.name+":"+voter.answer);
}
}
}