项目名称:投票系统
功能:进行投票,并输出投票意见
两个类:一个用来存放投票的信息,一个用来存放用户相关信息
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++)
报错如下: