项目名称:投票系统
功能:进行投票,并输出投票意见
两个类:一个用来存放投票的信息,一个用来存放用户相关信息
package VOTER;
public class POLL {
private static int count;//投票数
private String name;//投票人名
private String answer;//投票意见
private static POLL[] POLLs=new POLL[10];//创建10个数组元素
public POLL(String name){//定义有参构造方法
this.name=name;//初始化人名
}
//投票
public void vote_answer(String answer){
if(POLL.count==10)
System.out.println("投票结束!");
//投票未结束----进入投票
int flag=0;
for(int i=0;i<count;i++){
//equals比较两个字符串是否相等,相等返回true,否则返回false
if(this.name.equals(POLLs[i].name)) {
flag=1;
}
}
if(flag==1){
System.out.println("您已经投过票了,不能再进行投票!");
}
else{
this.answer=answer;
POLLs[count]=this;
count++;
System.out.println(this.name+"感谢您的投票");
}
}
public static void printResult(){//投票结果
System.out.println("总票数为:"+count);
System.out.println("参与学生和结果如下:");
for(int i=0;i<count;i++){
System.out.println(POLLs[i].name+"投票结果是"+POLLs[i].answer);
}
}
}
package VOTER;
public class TEST {
public static void main(String[]args){
POLL.printResult();//未有人员参与投票
POLL tom=new POLL("Tom");
POLL lisa=new POLL("Lisa");
POLL mike=new POLL("Mike");
tom.vote_answer("YES");
tom.vote_answer("NO");
lisa.vote_answer("YES");
mike.vote_answer("YES");
POLL.printResult();//参与结束
}
}
输出:
总票数为:0
参与学生和结果如下:
Tom感谢您的投票
您已经投过票了,不能再进行投票!
Lisa感谢您的投票
Mike感谢您的投票
总票数为:3
参与学生和结果如下:
Tom投票结果是YES
Lisa投票结果是YES
Mike投票结果是YES
需要注意的是,这里的i小于的是count,比较常见的错误是将其写成小于POLL.length,会出现空指针的报错,而出现这种的原因是因为出现了空堆现象。
for(int i=0;i<count;i++)
报错如下: