1

这是家庭作业。我正在尝试使用数组,这是第一个使用它们的项目。我的书展示了各种示例,但他们编写示例的方式并不能完全满足作业的要求。

我正在尝试编写一个程序,要求用户将学生输入系统。该程序首先询问您将输入多少,然后它会提示您输入名字、姓氏和分数。

我试图用这部分代码完成的是询问用户他们将输入多少学生。那行代码说

    getStudentCount();

是一种收集该信息然后返回 studentCount 的方法

我试图将其编码为数组的长度将成为用户输入的数字,但它不起作用,所以我想寻求指导。理想情况下,如果这有效并且用户输入 3,那么系统将提示您输入信息 3 次。如果用户输入 0,那么程序不会询问您任何内容。

    public static void main(String[] args)
{

    System.out.println("Welcome to the Student Scores Application.");

    int studentCount = 1;

    getStudentCount();
    studentCount = sc.nextInt();

    String [] students = new String[studentCount];
    for (int i = 0; i < students.length; i++)
    {

        Student s = new Student();
        String firstName = getString("Enter first name: ");
        s.setFirstName(firstName);

        String lastName = getString("Enter last name: ");
        s.setLastName(lastName);

        int score = getScore("Enter score: ");
        s.setScore(score);


    }

}

在我尝试编码之前,我在程序中所拥有的一切都正常工作

    String [] students = new String[studentCount];
    for (int i = 0; i < students.length; i++)

这告诉我我这样做的方式有问题。

作业还要求我将信息存储在数组中。我不清楚如何调用它,或者我猜想存储它......我还有另一个带有 setter 和 getter 的课程。这足以存储它吗?我该怎么称呼它?同样,这是家庭作业,因此感谢您提供任何指导。谢谢!

4

4 回答 4

4

好吧,这至少是一个家庭作业示例,显示了被问者的一些工作(并且写得很好),所以这里有一些帮助:

您将 studentCount 设置为 1 然后调用getStudentcount(),但从不将返回值分配给您的变量,因此变量保持为 1 (尽管您稍后会用sc.nextInt()它覆盖它,如果您已经有一个不错的方法,这可能不是您想要的)。修复只是将方法的返回值分配给变量 [1]

[1] 是的,我知道我不应该完全回答家庭作业问题,但我真的看不出有什么办法只能回答部分问题——尽管欢迎提出建议 :)

于 2012-04-04T00:29:19.713 回答
3

我的提示:

  1. 仔细看看你是如何计算学生人数的,以及你把它放在哪里。您似乎以两种不同的方式获得计数,这充其量是多余的,并且可能是一个错误。

  2. 大概有一个堆栈跟踪。阅读!!

    堆栈跟踪将告诉您抛出了什么异常、它的诊断消息是什么、抛出的位置以及问题发生时它在代码中执行的位置。

  3. 如果您难以想象正在发生的事情,请使用 Java IDE 的调试器并单步执行程序。


根据您的后续评论,没有堆栈跟踪。但是,如果有的话,您应该阅读它:-)

于 2012-04-04T00:34:49.260 回答
0

我不明白你的台词

getStudentCount();
studentCount = sc.nextInt();

如果 getStudentCount() “返回”他们输入的数字(如您在文本中描述的那样),似乎您应该这样做

int studentCOunt = getStudentCount();
于 2012-04-04T00:32:16.343 回答
0

我试图不完全为您完成作业,但请查看下面的代码以了解如何执行此操作:

    /* Some Declarations You're Going to Need */
private static Scanner scan = new Scanner(System.in); //Private, only need it in here
public static Student[] students; //Public, access it from any class you may need

public static void main(String[] args) {
    System.out.println("Welcome to the Student Scores Application.");
    System.out.print("Amount of students:");
    int studentCount = scan.nextInt();
    students = new Student[studentCount];
    for (int i = 0; i < students.length; i++) {
        students[i] = new Student();

        System.out.print("Enter first name:");
        String firstName = scan.next();
        students[i].setFirstName(firstName);

        System.out.print("Enter last name:");
        String lastName = scan.next();
        students[i].setLastName(lastName);

        System.out.print("Enter score:");
        int score = scan.nextInt();
        students[i].setScore(score);
    }
    scan = null; //Done with scanner
}
于 2012-04-04T01:02:36.563 回答