2017-04-12 9 views
0

を印刷する私は、Javaに非常に新しいですし、私の先生は、私たちはコードが動作するように取得する方法をオンラインで見ることができるという考えを持つこの割り当てを与えました。私は一度だけ配列と二重配列で一度だけ作業したので、とても失われていると感じています。私は実際にこのプログラムを稼働させる方法について、いくつかの助けと説明を使用することができます。グレーディングスキーマ:2次元配列と平均

は、これまでのところ、私の教師が生徒や成績を分割する方法を見せてくれたしている、しかし、彼は成績を印刷する方法を私を示しませんでした。また、二重配列を取ったときの各学生の列ではなく、行だけで平均を計算するにはどうすればよいですか?

等級スキーマ:別の関数では、あなたはグレーディングスキーマを実装します。 プログラムを書くと、ユーザーが与えたファイルから自分のテストスコアと共に学生の名前を読み上げることができます。 ファイルの最初の2つの値は、受験者数に続いてテスト数を表します。 プログラムは、各学生の平均試験スコアを計算し、適切な グレード(A、B、C、D、EまたはF)、ならびに各試験の平均値を割り当てる必要があります。あなたのプログラムは以下の機能を実行する必要があります。 a)各生徒のテスト得点の平均を求めるvoid関数calculateAverage。

相続人TXTファイル:

トム91 67 84 50 69

スージー74 78 58 62 64

ピーター55 95 81 77 61

ポール91 95 92 77 86

ダイアン91 54 52 53 92

エミリー82 71 66 68 95

ナタリー97 76 71 88 69

ベン62 67 99 85 94

マーク53 61 72 83 73

アンナ64 91 61 53 68

ここで私は持っているものです遠く:

public class Grades { 



private static final String FILENAME2 = "/Users/Jarvis/Documents/Students.txt"; 

public static void main(String[] args) { 
    BufferedReader br = null; 
    FileReader fr = null; 

    try { 

     fr = new FileReader(FILENAME2); 
     br = new BufferedReader(fr); 

     String students [] = new String[10]; 
     int [][] grades = new int [10][5]; 
     String[] words; 
     String sCurrentLine; 
     int counter=0; 
     br = new BufferedReader(new FileReader(FILENAME2)); 

     while ((sCurrentLine = br.readLine()) != null) { 

      words = sCurrentLine.split(" "); 
      students[counter]=words[0]; 
      System.out.print(students[0]+ " "); 

      for (int i=1; i < words.length; i++){ 
       grades[counter][i-1]=Integer.parseInt(words[i]); 

      } //end of outer for loop 


      System.out.println(); 

     } // end of while loop 



     } catch (IOException e) { 

     e.printStackTrace(); 

    } 

}//end of main 

public static void calculateAverage (int grade [][]){ 

    int temp; 
    int sum; 


} // end of calculateAverage() 
+0

カウンタはカウンタ++でなければなりません。 – Omore

答えて

0

最初にcounter++;を追加する必要がありますop。

平均化されるように、これは各生徒の成績の平均値を計算し、その平均グレードgrades.get();続い生徒の数grade[student]を印刷するよりも(このフォーマットgrade[student][grade]を想定)。

public static void calculateAverage (int grade[][]){ 

    ArrayList<Double> averageGrades = new ArrayList<Double>(); 
    int sum = 0; 

    for(int student = 0; student < grade.length; student++){ 
    for(int i = 0; i < grade[student].length; i++){ 

     if(i == 0){ 
      sum = grade[student][i]; 
     }else if(i == grade[student].length - 1){ 

      sum += grade[student][i]; //Add next grade to sum 

      averageGrades.add((double) (sum/i)); //Divide the sum by the number of grades (average) 

     }else{ 

     sum += grade[student][i]; //Add next grade to sum 

     } 

    } 
} 

    for(int counter = 0; counter < averageGrades.size(); counter++){ 
     //Cycle through the grades and print them after the student name (grade[counter]) 
     System.out.println(grade[counter] + " " + averageGrades.get(counter)); 

    } 



    }