投票系统java

时间:2014-12-03 14:03:33

标签: java arrays methods counter voting

我正在尝试用Java创建一个投票系统,我在其中输入候选人的姓名和他们收到的投票数,然后我希望能够输出最高投票以及该候选人的姓名。到目前为止,我所掌握的是收集姓名和投票数量的主要方法。它将此信息放入两个数组中。名称的一个字符串数组,以及一个投票数的int数组。我可以通过使用返回int数组中最大数字的值方法来计算最高投票。然后我打印返回的值没有任何问题,但我也希望能够从字符串数组打印出胜利者的名字,所以我想知道有没有什么方法可以将字符串数组中的信息引用到int阵列。我需要使用两个单独的数组才能完成程序。这就是我到目前为止所拥有的

import java.util.Scanner;
public class VotingCounter1
{
    public static void main(String [] args){
        Scanner userInput = new Scanner(System.in);
        final int SIZE = 6;
        int[] votes = new int[SIZE];
        String[] names = new String[SIZE];

        for (int i = 0; i < names.length && i < votes.length; i++){
            System.out.print("Enter candidate's name: ");
            names[i] = userInput.next( );
            System.out.print("Enter number of votes: ");
            votes[i] = userInput.nextInt( );
        }

        System.out.println("And the Winner is: " + highest(votes));
    }
    public static int highest(int[] votes){
        int high = votes[0];

        for (int i = 1; i < votes.length; i++){
            if (votes[i] > high){
                high = votes[i];
            }
        }
        return high;
    }
}

5 个答案:

答案 0 :(得分:0)

最高投票数的索引与候选人名称的索引相同,因为您使用i在同一循环中添加了它们。因此,获得最高投票数的索引,您就可以得到相应候选人的名字。

答案 1 :(得分:0)

以下内容将为您提供投票率最高的人的姓名。

names[Arrays.asList(names).indexOf(highest(votes))];

请记住,这将找到最高(投票)的第一个实例。即。如果两个人都有50票,这也是最多票数。将找到带有投票的名字。

或者,使用具有名称和投票属性的对象。更好的设计

答案 2 :(得分:0)

int pointer; // a class variable

public static int highest(int [] votes){         int high = votes [0];

    for (int i = 1; i < votes.length; i++){
        if (votes[i] > high){
            high = votes[i];
           pointer = i;
        }
    }
    return high;

现在您可以在打印时使用指针使用名称数组的索引。

System.out.println("And the Winner is: " +names[pointer]+"with"+ highest(votes)+"votes");

答案 3 :(得分:0)

投票和候选人是相同的,因为你加入了相同的循环。最高投票指数是获得最高投票的候选人

      System.out.println("And the Winner is: " + highest(votes,names));


     public static String highest(int[] votes,String names[]){
    int high = votes[0];
    String s= names[0];
    for (int i = 1; i < votes.length; i++){
        if (votes[i] > high){
            high = votes[i];
            s=names[I];
        }
    }
    s=s+""+high;
    return s;
} 

答案 4 :(得分:-2)

  System.out.println("And the Winner is: " + highest(votes,names));

     public static String highest(int[] votes,String names[]){
    int high = votes[0];
    String s= names[0];
    for (int i = 1; i < votes.length; i++){
        if (votes[i] > high){
            high = votes[i];
            s=names[I];
        }
    }
    s=s+""+high;
    return s;
}