0

我正在使用JavaBlueJ,我对它还很陌生。如果说我在 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 的数据,然后打印报告。

我希望有人能在这方面帮助我。

先感谢您。

4

1 回答 1

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 添加到中年组时,您会执行 table[1][1] += some amount。

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

于 2013-10-24T15:27:54.940 回答