GradeBook Java程序。帮忙打电话?

时间:2014-11-12 20:26:20

标签: java arrays class public

作业如下:

一位老师有五名学生参加了四次考试。教师根据他或她的四个考试成绩的平均值,使用以下成绩等级为学生分配一个字母等级。

90-100:  A
80-79:  B
70-79:  C
60-69:  D
0-59:  F

写一个在arraylist对象上使用String数组的类来保存五个学生的名字,一个包含五个字符的数组来保存五个学生的字母等级,以及五个数组,每个四个双数来保存每个学生的一组测试成绩。该课程应该有返回学生姓名,平均考试成绩和基于平均成绩的字母等级的方法。

在程序中演示课程,允许用户输入每个学生的姓名和他或她的四个考试成绩。然后它应该显示每个学生的平均考试成绩和字母等级。

程序不应接受低于0或高于100的分数

以下代码在此处:

学生班:

public class Student{
    private String name;
    private double[] test = new double[4];


    public Student(){
        name = " ";
    }

    public Student(String n, double[] t){
        name = n;
        test = t;
    }

    public void setName(String n)
    {
        name = n;
    }

    public String getName(){
        return name;
    }

    public void setTest(double t,int i)
    {
        test[i] = t;
    }

    public double getTest(int i)
    {
        return test[i];
    }


    public double getTestAvg(){

        double sum = 0;
        double avg;
        for(int i = 0; i < test.length; i++)
        {
            sum += test[i];
        }
         avg = sum / test.length;
         return avg;
    }

    public char getLetterGrade(){

        double average = getTestAvg();
        char grade=0;

        if(average >= 90)
            grade = 'A';
        else if (average >= 80)
            grade = 'B';
        else if (average >= 70)
            grade = 'C';
        else if (average >=60)
            grade = 'D';
        else if (average < 60)
            grade = 'F';

        return grade;
    }

    public String toString(){
        String str = "";
        str += "\nName of student: " + name;
        str += "\nAverage test score: " + getTestAvg();
        str += "\nLetter grade: " + getLetterGrade();
        return str;
    }
}       

主程序:

import java.util.Scanner;
import java.io.*;

public class GradeBook {

    public static void main(String[] args) throws IOException {

        Student[] students = new Student[5];

        getStudentData(students);

    }

    public static double getStudentData(Student[] array) {
        Scanner scan = new Scanner(System.in);
        String[] student = new String[5];
        double[] test = new double[4];
        for (int i = 0; i < student.length; i++) {
            System.out.println("Enter the name of the student : ");
            student[i] = scan.nextLine();
            for (int j = 0; j < test.length; j++) {
                System.out.println("Enter score " + (j + 1) + " for the student");
                test[j] = scan.nextDouble();
                scan.nextLine();
            }
            array[i] = new Student(student[i], test);

        }
        return 0;

    }
}

问题是,我可以输入所有信息,但输入所有数字后都不显示任何信息。非常感谢任何帮助!

1 个答案:

答案 0 :(得分:4)

您没有看到任何显示内容,因为您从未打过电话来显示任何内容。 您正在填充“数组”,因此您需要现在迭代它。

在外部for循环(第一个)之后,您将想要遍历填充的数组并打印出学生对象。这将起作用,因为你已经有了一个toString()方法。

例如:

for(Student student : array)
{
    System.out.println(student);
}