〖JAVA IO〗_实例操作:投票程序笔记

〖JAVA IO〗_实例操作:投票程序笔记

分类: Java
〖JAVA IO〗_实例操作:投票程序笔记

[java]  view plain copy print ?
  1. public class Student implements Comparable<Student>{  
  2.    private int stuNo ;    // 学生编号  
  3.    private String name ;    // 学生姓名  
  4.    private int vote ;    // 学生票数  
  5.    public Student(int stuNo,String name,int vote){  
  6.        this.setStuNo(stuNo) ;  
  7.        this.setName(name) ;  
  8.        this.setVote(vote) ;  
  9.    }  
  10.    public int compareTo(Student o){  
  11.        if(this.vote<o.vote){  
  12.            return 1 ;  
  13.        }else if(this.vote>o.vote){  
  14.            return -1 ;  
  15.        }else{  
  16.            return 0 ;  
  17.        }  
  18.    }  
  19.    public void setStuNo(int stuNo){  
  20.        this.stuNo = stuNo ;  
  21.    }  
  22.    public void setName(String name){  
  23.        this.name = name ;  
  24.    }  
  25.    public void setVote(int vote){  
  26.        this.vote = vote ;  
  27.    }  
  28.    public int getStuNo(){  
  29.        return this.stuNo ;  
  30.    }  
  31.    public String getName(){  
  32.        return this.name ;  
  33.    }  
  34.    public int getVote(){  
  35.        return this.vote ;  
  36.    }  
  37. };  


[java]  view plain copy print ?
  1. import java.io.BufferedReader ;  
  2. import java.io.InputStreamReader ;  
  3. import java.io.IOException ;  
  4. public class InputData{  
  5.     private BufferedReader buf = null ;        // 接收数据  
  6.     public InputData(){  
  7.         this.buf = new BufferedReader(new InputStreamReader(System.in)) ;  
  8.     }  
  9.     public String getString(String info){    // 得到字符串  
  10.         String temp =  null ;    // 接收输入内容  
  11.         System.out.print(info) ;  
  12.         try{  
  13.             temp = this.buf.readLine() ;    // 接收数据  
  14.         }catch(IOException e){  
  15.             e.printStackTrace() ;  
  16.         }  
  17.         return temp ;  
  18.     }  
  19.     public int getInt(String info,String err){    // 得到整型数据  
  20.         int temp = 0 ;  
  21.         String str = null ;  
  22.         boolean flag = true ;    // 定义一个循环标记  
  23.         while(flag){  
  24.             str = this.getString(info) ;  
  25.             if(str.matches("\\d+")){  
  26.                 temp = Integer.parseInt(str) ;  
  27.                 flag = false ;    // 更改标志位,将退出循环  
  28.             }else{  
  29.                 System.out.println(err) ;  
  30.             }  
  31.         }  
  32.         return temp ;  
  33.     }  
  34. };  

[java]  view plain copy print ?
  1. public class Operate{  
  2.     private Student stu[] = {new Student(1,"张三",0),new Student(2,"李四",0),  
  3.         new Student(3,"王五",0),new Student(4,"赵六",0)} ;// 侯选人信息  
  4.     private boolean flag = true ;  
  5.     public Operate(){  
  6.         this.printInfo() ;    // 先输出候选人信息  
  7.         while(flag){  
  8.             this.vote() ;    // 循环调用投票  
  9.         }  
  10.         this.printInfo() ;    // 输出投票之后的侯选人信息  
  11.         this.getResult() ;    // 得到结果  
  12.     }  
  13.     private void getResult(){    // 得到最终的投票结果  
  14.         java.util.Arrays.sort(this.stu) ;    // 排序  
  15.         System.out.println("投票最终结果:" + this.stu[0].getName()+"同学,最后以"+this.stu[0].getVote()+"票当选班长!") ;  
  16.     }  
  17.     public void vote(){    // 此方法完成投票功能  
  18.         InputData input = new InputData() ;    // 输入数据  
  19.         int num = input.getInt("请输入班长侯选人代号(数字0结束):","此选票无效,请输入正确的侯选人代号!") ;  
  20.         switch(num){  
  21.             case 0:{  
  22.                 this.flag = false ;    // 中断循环  
  23.                 break ;  
  24.             }  
  25.             case 1:{  
  26.                 this.stu[0].setVote(this.stu[0].getVote() + 1) ;  
  27.                 break ;  
  28.             }  
  29.             case 2:{  
  30.                 this.stu[1].setVote(this.stu[1].getVote() + 1) ;  
  31.                 break ;  
  32.             }  
  33.             case 3:{  
  34.                 this.stu[2].setVote(this.stu[2].getVote() + 1) ;  
  35.                 break ;  
  36.             }  
  37.             case 4:{  
  38.                 this.stu[3].setVote(this.stu[3].getVote() + 1) ;  
  39.                 break ;  
  40.             }  
  41.             default:{  
  42.                 System.out.println("此选票无效,请输入正确的候选人代号!") ;  
  43.             }  
  44.         }  
  45.     }  
  46.     public void printInfo(){      
  47.         for(int i=0;i<stu.length;i++){  
  48.             System.out.println(this.stu[i].getStuNo() + ":"  
  49.                 + this.stu[i].getName() + "【"+this.stu[i].getVote()+"】") ;      
  50.         }  
  51.     }  
  52. };  

[java]  view plain copy print ?
  1. public class ExecDemo{  
  2.     public static void main(String args[]){  
  3.         new Operate() ;  
  4.     }  
  5. };  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值