方法部分代码如下:
import java.util.Scanner;
public class Elector {
//声明属性
public String name;
public int age;
public String job;
public static int VoteNum;
public Elector() {//无参构造
}
public Elector(String name, int age, String job) {//有参构造
this.name = name;
this.age = age;
this.job = job;
}
public static void showElector(Elector[] elector) {//实现投票过程
Scanner sc = new Scanner(System.in);
for (int i = 0; i < elector.length; i++) {//实例化数组每一个元素
elector[i] = new Elector();
}
for (int i = 0; i < elector.length; i++) {//循环输入每个选民的信息
System.out.println("请输入你的姓名:");
String peopleName = sc.next();
boolean isAdd=false;//判断是否投过票
for (int j = 0; j < elector.length; j++) {
if (peopleName.equals(elector[j].name) ) {
System.out.println("对不起,您已经投过票,不能重复投票!请让下一位投票");
isAdd=true;
i=i-1;//返回刚刚的循环
break;
}
}
if (!isAdd) {//输入信息
elector[i].name = peopleName;
System.out.println("请输入你的年龄:");
int peopleAge = sc.nextInt();
elector[i].age = peopleAge;
System.out.println("请输入你的职业:");
String work = sc.next();
elector[i].job = work;
VoteNum++;//票数增加
System.out.println(elector[i].name + "," + elector[i].age + "岁,职业是:" + elector[i].job + ",投一票!已有票数"+VoteNum+"票");
}
}
System.out.println("对不起,票数已满100,无法在投票!");
sc.close();
}
}
以下是测试部分代码:
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入投票箱里已有的票数:");
int oldNum=sc.nextInt();
Elector.VoteNum=oldNum;//确定已有的选票
Elector[] elector=new Elector[100-oldNum];//创建还能有几个人投票的数组
Elector.showElector(elector);//调用投票的方法
sc.close();
}
}
以下是运行结果:
注意在验证是否投过票时,比较姓名字符串是否相同要用.equals()方法,不能用“==”,不然不会运行相应的代码块。