2016-12-14 13 views
0

私は、テキストファイルから生徒の成績を計算するクラスを作成しています。メソッドとフィールドは、学校のプロジェクトであるため、正確に書かれているとおりの名前を付けてください。私の先生は、希望どおりに書かれていないとポイントを取れません。それにもかかわらず、彼女は基準に基づいて、配列の平均を計算し、別の方法でその平均値を取得する方法を作りたいと思っています(個人的に冗長なようですが、私が言ったように、私はメソッドを構築しましたが、私のgetAverage(int studentNum)メソッドで参照していますが、コンパイルすると ".class missing"というエラーが表示されます。私はなぜ正直であるか分からない。 eclipseが提供するソリューションは、メソッドのパラメータを変更することを提案したり、まったく新しいメソッドを作成することを提案したり、私の先生が望むものではありません。ここで私が働いているものです:私はそれが私が欠けている信じられないほど簡単なものだと確信している、と私はちょうどそれを見ることはありません自分のクラスをJavaの別のメソッドから呼び出すにはどうすればよいですか?

public class GradeBook 
{ 
    private final int NUM_STUDENT = 5; 
    private final int NUM_TESTS = 4; 
    private String[] names = new String[5]; 
    private char[] grades = new char[5]; 
    private double[] scores1 = new double[4]; 
    private double[] scores2 = new double[4]; 
    private double[] scores3 = new double[4]; 
    private double[] scores4 = new double[4]; 
    private double[] scores5 = new double[4]; 

    public void setName(int studentNum, String name) 
    { 
     names[studentNum - 1] = name; 
    } 

    public void setScores(int studentNum, double[] scores) 
    { 
     if (studentNum == 1) 
     { 
      copyArray(scores1, scores); 
     } 

     else if (studentNum == 2) 
     { 
      copyArray(scores2, scores); 
     } 

     else if (studentNum == 3) 
     { 
      copyArray(scores3, scores); 
     } 

     else if (studentNum == 4) 
     { 
      copyArray(scores4, scores); 
     } 

     else 
     { 
      copyArray(scores5, scores); 
     } 
    } 

    public String getName(int studentNum) 
    { 
     return names[studentNum - 1]; 
    } 

    public double getAverage(int studentNum) 
    { 
     double average; 

     if (studentNum == 1) 
     { 
      average = calcAverage(scores1[]); 

      return average; 
     } 

     else if (studentNum == 2) 
     { 
      return calcAverage(scores2[]); 
     } 

     else if (studentNum == 3) 
     { 
      return calcAverage(scores3[]); 
     } 

     else if (studentNum == 4) 
     { 
      return calcAverage(scores4[]); 
     } 

     else 
     { 
      return calcAverage(scores5[]); 
     } 
    } 

    public char getLetterGrade(int studentNum) 
    { 
     return grades[studentNum - 1]; 
    } 

    public void copyArray(double[] to, double[] from) 
    { 
     for (int i = 0 ; i < from.length ; i++) 
     { 
      from[i] = to[i]; 
     } 
    } 

    public double calcAverage(double[] scores) 
    { 
     double sum = 0; 
     double average; 

     for (int i = 0 ; i < scores.length ; i++) 
      { 
       sum = sum + scores[i]; 
      } 

     average = sum/scores.length; 

     return average; 
    } 

    public void assignGrade(int studentNum) 
    { 
      grades[studentNum - 1] = determineGrade(getAverage(studentNum)); 
    } 

    public char determineGrade(double average) 
    { 
     if (average <= 100 && average >= 90) 
     { 
      return 'A'; 
     } 

     else if (average <= 89 && average >= 80) 
     { 
      return 'B'; 
     } 

     else if (average <= 79 && average >= 70) 
     { 
      return 'C'; 
     } 

     else if (average <= 69 && average >= 60) 
     { 
      return 'D'; 
     } 

     else 
     { 
      return 'F'; 
     } 
    } 
} 

。皆さんはどう思いますか?

+0

である必要があり、私はこれを投稿と同じように、私は[]次のアレイ名に入れ馬鹿のように実現しています。それが解決されたと思います。 –

+0

私を信頼して、それはプログラミングの仕組みです。あなたは何かを永遠に見つめ、誰かが歩いて歩いて数秒で問題を見るか、あなたが離れて歩き、問題に戻るとすぐに何が間違っているかを見ます。 – nicomp

+0

うん。 **あなたがそれを投稿した後は、決して**エラーが表示されることはありません。 – rossum

答えて

3

ドロップ[]あなたのメソッドの引数に:

average = calcAverage(scores1[]); 

average = calcAverage(scores1); 
関連する問題