0

メソッドの呼び出しに問題があります。プログラムの基本は、data.txt からデータを読み込み、指定された名前トークンを取得し、それに続くすべての成績を取得し、成績にいくつかの操作を実装して個人の成績の詳細を提供することです。Grades クラスを含む Grades.java という名前の別のファイルですべてのメソッドを実行します。コードに testGrades メソッドを含める必要があるため、問題が発生しています(これは必要ありません)。2 つの異なる .java ファイルを使用せずに、別のプログラムで結果を完璧にするために必要なことはすべて実行しました。しかし、このようにする必要があります。私はほとんどすべてを固定していると思います.testGradesメソッドを実装して呼び出す方法について混乱しています. 私はそれをコメントアウトし、プログラムのどこにあるかについて質問があります。クラスとオブジェクト、および一般的な Java はまったく新しいものです。くだらない質問でごめんなさい。

public class Lab2 {

public static void main(String[] args) {

    Scanner in = null; //initialize scanner
    ArrayList<Integer> gradeList = new ArrayList<Integer>(); //initialize gradeList
     //grab data from data.txt 
    try {
        in = new Scanner(new File("data.txt"));
    } catch (FileNotFoundException exception) {
        System.err.println("failed to open data.txt");
        System.exit(1);
    }
    //while loop to grab tokens from data
    while (in.hasNext()) {
        String studentName = in.next();   //name is the first token
        while (in.hasNextInt()) {   //while loop to grab all integer tokens after name
            int grade = in.nextInt();   //grade is next integer token
            gradeList.add(grade);       //adding every grade to gradeList
        }

      //grab all grades in gradeList and put them in an array to work with
        int[] sgrades = new int[gradeList.size()];
        for (int index = 0; index < gradeList.size(); index++) {
            sgrades[index] = gradeList.get(index);  //grade in gradeList put into grades array 
        }

     //testGrades(sgrades);     How would I implement this method call? 

    }
}

public static void testGrades(Grades grades) {
    System.out.println(grades.toString()); 
    System.out.printf("\tName:    %s\n", grades.getName());
    System.out.printf("\tLength:  %d\n", grades.length());
    System.out.printf("\tAverage: %.2f\n", grades.average());
    System.out.printf("\tMedian:  %.1f\n", grades.median());
    System.out.printf("\tMaximum: %d\n", grades.maximum());
    System.out.printf("\tMininum: %d\n", grades.minimum());
}

   }

これは、Grades.java ファイルの冒頭の小さなスニペットです。

     public class Grades {

private String studentName; // name of student Grades represents
private int[] grades; // array of student grades

public Grades(String name, int[] sgrades) {
    studentName = name; // initialize courseName
    grades = sgrades; // store grades
} 

      public String getName() {
    return studentName;
} // end method getName

public int length() {
    return grades.length; 
}
4

2 に答える 2

1

テストの成績は Grades オブジェクトを受け取るので、データを使用して Grades オブジェクトを作成し、それをテストの成績メソッドに渡す必要があります。

Grades myGrade = new Grades(studentName,sgrades);
testGrades(myGrade);  
于 2013-09-17T00:48:01.090 に答える