二维阵列问题。希望得到帮助

时间:2013-10-24 15:17:21

标签: java arrays

我在Java中使用BlueJ,我对它很陌生。如果有一件事我在Java中不太擅长,那就是数组,更不用说二维数组了。希望有人可以帮助我参与这个项目,因为我觉得有点不知所措,我不确定从哪里开始。

此程序的目的是使用二维来计算.TXT文件中的政治民意调查结果。 输入文件“PROG4IN.TXT”包含每个轮询的选民的一行。每行包含受欢迎候选人的姓名和选民的年龄。 使用一个有两行三列的数组,我必须通过有利的候选人和年龄组来统计选民;三个年龄组分别是18-29岁,30-49岁和50-99岁。

这就是所需的最终输出结果:

Candidate   18-29   30-49   50-99   Total
Krook          2       4       6      12
Leyer          3       3       2       8

作为参考,这是“PROG4IN.TXT”文件中的内容:

Krook   45
Leyer   40
Krook   76
Leyer   55
Krook   20
Krook   50
Leyer   28
Krook   30
Leyer   23
Krook   72
Krook   42
Krook   81
Leyer   64
Krook   52
Leyer   18
Leyer   34
Krook   60
Krook   26
Leyer   49
Krook   37

我必须使用这个模板:

public class Table {
    private int[][] table;
    private String[] names;

    public Table() {
        // Create the two-dimensional tally array "table"
        // having 2 rows and 3 columns.  Row 0 corresponds
        // to candidate Krook and row 1 to candidate Leyer.
        // The columns correspond to the three age groups
        // 18-29, 30-49, and 50-99.  Initialize all the
        // tallies to zero.  Create the array "names" to
        // hold the candidate names: names[0]="Krook" and
        // names[1]="Leyer".
    }

    public void tally(String name, int age) {
        // Add one to the tally in the "table" array that
        // corresponds to the name and age passed as arguments.
        // Hint: Use the equals method to determine whether
        // two strings are equal: name.equals("Krook") is
        // true when name is "Krook".
    }

    public void report() {
        // Use nested loops to print a report in the format
        // shown above.  Assume that the tallies have already
        // been made.
    }
}

然而,毕竟,我必须创建一个创建Table对象的主类,从PROG4IN.TXT中计算数据,并打印报告。

我希望有人可以帮助我。

提前谢谢。

1 个答案:

答案 0 :(得分:0)

您的数组将如下所示:

table = new int[2][3]();

并且里面会是这样的:

{
{count for 1st age group for krook, for 2nd age group for krook, last group for krook}
{count for 1st age group for leyer, for 2nd age group for leyer, last group for leyer}
}

因此,当您想要为leyer添加到中年组时,您可以使用表[1] [1] + =一些金额。

或者对于krook的第三年龄组,你做表[0] [2] + = someamount。