• Java实例---简单的投票系统


    代码分析

     InputData.java

     1 package vote;
     2 
     3 import java.io.BufferedReader;
     4 import java.io.IOException;
     5 import java.io.InputStreamReader;
     6 
     7 public class InputData {
     8     
     9     private BufferedReader buf ;
    10     
    11     public InputData()
    12     {
    13         this.buf = new BufferedReader(new InputStreamReader(System.in));
    14     }
    15     
    16     public String getString(String info)
    17     {
    18         String str = null;
    19         System.out.println(info);
    20         try {
    21             str = this.buf.readLine();
    22         } catch (IOException e) {
    23             // TODO 自动生成的 catch 块
    24             e.printStackTrace();
    25         }
    26         return str;
    27         
    28     }
    29     
    30     public int getInt(String info,String error)
    31     {
    32         int temp = 0;
    33         String str = null;
    34         str = this.getString(info);
    35         if(str.matches("\d+")){
    36             temp = Integer.parseInt(str);
    37         }else{
    38             System.out.println(error);
    39         }
    40                 
    41         return temp;
    42     }
    43     
    44     
    45 }
    View Code

    Person.java

     1 package vote;
     2 
     3 public class Person implements Comparable<Person>{
     4     private String name;
     5     private int stu_Id;
     6     
     7     public Person(String name, int stu_Id, int voteNum) {
     8         super();
     9         this.name = name;
    10         this.stu_Id = stu_Id;
    11         this.voteNum = voteNum;
    12     }
    13     
    14     public String getName() {
    15         return name;
    16     }
    17     public void setName(String name) {
    18         this.name = name;
    19     }
    20     public int getStu_Id() {
    21         return stu_Id;
    22     }
    23     public void setStu_Id(int stu_Id) {
    24         this.stu_Id = stu_Id;
    25     }
    26     public int getVoteNum() {
    27         return voteNum;
    28     }
    29     public void setVoteNum(int voteNum) {
    30         this.voteNum = voteNum;
    31     }
    32     private int  voteNum;
    33 
    34     @Override
    35     public int compareTo(Person o) {
    36         // TODO 自动生成的方法存根
    37         if(this.getVoteNum() > o.getVoteNum())
    38         {
    39             return -1;
    40         }else if(this.getVoteNum() < o.getVoteNum())
    41         {
    42             return 1;
    43         }else
    44         {
    45             return 0;
    46         }
    47     }
    48 }
    View Code

    VoteOperate.java

      1 package vote;
      2 
      3 import java.io.File;
      4 import java.util.Arrays;
      5 
      6 public class VoteOperate {
      7     private Person[] per = {new Person("小米",001,0),new Person("大米",002,0), new Person("玉米",003,0),
      8         new Person("稀饭",004,0),new Person("刘能",005,0),new Person("逼",006,0)};
      9     
     10     private InputData input ;
     11     private boolean flag = true;
     12     private int sum;
     13     private int errorVote;
     14     
     15     public VoteOperate()
     16     {
     17         this.input =  new InputData();
     18         while(flag)
     19         {
     20             ++sum;
     21             this.voteForCandidate();
     22         }
     23         this.printInfo();
     24         this.getResulet();
     25     }
     26     
     27     public void voteForCandidate()
     28     {
     29         int temp = 0;
     30         temp = input.getInt("请输入候选人编号(0表示投票结束)", "投票只能是数字,范围0-" + per.length);
     31         switch (temp) {
     32         case 1:
     33         {
     34             this.per[0].setVoteNum(this.per[0].getVoteNum() + 1);
     35             break;
     36         }
     37         
     38         case 2:
     39         {
     40             this.per[1].setVoteNum(this.per[1].getVoteNum() + 1);
     41             break;
     42         }
     43 
     44         case 3:
     45         {
     46             this.per[2].setVoteNum(this.per[2].getVoteNum() + 1);
     47             break;
     48         }
     49 
     50         case 4:
     51         {
     52             this.per[3].setVoteNum(this.per[3].getVoteNum() + 1);
     53             break;
     54         }
     55 
     56         case 5:
     57         {
     58             this.per[4].setVoteNum(this.per[4].getVoteNum() + 1);
     59             break;
     60         }
     61         case 6:
     62         {
     63             this.per[5].setVoteNum(this.per[5].getVoteNum() + 1);
     64             break;
     65         }
     66         case 0:
     67         {
     68             System.out.println("退出系统");
     69             this.flag = false;
     70             break;
     71         }
     72         default:{
     73             System.out.println("请重新输入一个数字:");
     74             this.errorVote++;
     75         }
     76         }
     77     }
     78     
     79     //打印候选人信息:
     80         public void printInfo(){    
     81             for(int i=0;i<per.length;i++){
     82                 System.out.println(this.per[i].getStu_Id() + ":"
     83                     + this.per[i].getName() + "【"+this.per[i].getVoteNum()+"】") ;    
     84             }
     85         }
     86         
     87     //获取结果    
     88     public void getResulet(){
     89         Arrays.sort(per);
     90         if ((sum - 1 )==0)
     91         {
     92             System.out.println("投票故障...");
     93         }
     94         else 
     95         {
     96             System.out.println("投票最终结果:" + "
    共投出:" + ( this.sum  - 1 )+ "票,其中,错误投票 : " + this.errorVote + "票,有效票" + ( this.sum  - 1 - this.errorVote) + "
    " 
     97            + this.per[0].getName()+"同学,最后以"+this.per[0].getVoteNum()+"票当选班长!") ;
     98         }
     99     };
    100     
    101 }
    View Code

    Test.java

    1 package vote;
    2     
    3 public class Test {
    4     public static void main(String[] args) {
    5         new VoteOperate();
    6     }
    7 }
    View Code

    效果截图

    源码下载

    点击下载

  • 相关阅读:
    loj#2020. 「AHOI / HNOI2017」礼物
    loj#117. 有源汇有上下界最小流
    loj#6491. zrq 学反演
    loj#6261. 一个人的高三楼
    loj#528. 「LibreOJ β Round #4」求和
    2018-2019 ACM-ICPC Brazil Subregional Programming Contest
    2015-2016 ACM-ICPC, NEERC, Moscow Subregional Contest J
    2015-2016 ACM-ICPC Northeastern European Regional Contest (NEERC 15)C
    addEventListener() 和 removeEventListener()
    9个图片滑块动画
  • 原文地址:https://www.cnblogs.com/ftl1012/p/vote.html
Copyright © 2020-2023  润新知