/*
定义一个候选人类Candidate,添加该类的姓名属性和票数属性,
添加重载构造方法;
*/
public class Candidate {
private String name;
private int voteNum;
public Candidate() {
}
public Candidate(String name, int voteNum) {
this.name = name;
this.voteNum = voteNum;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getVoteNum() {
return voteNum;
}
public void setVoteNum(int voteNum) {
this.voteNum = voteNum;
}
}
/*
定义一个参与投票的类Vote类,
添加一个候选人Candidate类型数组属性,添加重载的构造方法,
添加一个选举方法voting(),完成选举过程,同时统计每个候选的得票,
添加statistical_number()输出候选人得票,
*/
import java.util.Scanner;
public class Vote {
private Candidate []arr=new Candidate[3];
public Vote() {
}
public Vote(Candidate[] arr) {
this.arr = arr;
}
public Candidate[] getArr() {
return arr;
}
public void setArr(Candidate[] arr) {
this.arr = arr;
}
public void voting(){
System.out.println();
System.out.println("开始投票。。。。。。。。。。。输入quit结束");
System.out.print("请输入要选举的候选人:");
Scanner sc=new Scanner(System.in);
String input=sc.next();
while(!input.equals("quit")){
for (int i = 0; i < arr.length; i++) {
if(input.equals(arr[i].getName())){
arr[i].setVoteNum(arr[i].getVoteNum()+1);
}
}
System.out.print("请输入要选举的候选人:");
input=sc.next();
}
}
public void statistical_number(){
System.out.println("输出每一个候选人的票数:");
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i].getName()+"得票数为:"+arr[i].getVoteNum());
}
}
}
/*
定义测试类,在测试类中创建,
初始化候选人类数组,用该数组做实参实例化Vote类对象,Vote类对象调用voting(),
调用statistical_number()输出候选人得票,
*/
import java.util.Scanner;
public class Test02 {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
Candidate []arr=new Candidate[3];
for(int i=0;i< arr.length;i++){
System.out.println("请输入第"+(i+1)+"位候选人:");
arr[i]=new Candidate(sc.next(),0);
}
System.out.print("候选人列表:");
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i].getName()+" ");
}
Vote vote=new Vote(arr);
vote.voting();
vote.statistical_number();
}
}
结果展示: