LoginSignup
0
1

More than 3 years have passed since last update.

配列の練習2

Posted at

ArrayPracticeクラスのフィールド部分で
int[][]arr= new int[3][students];と入れたかったが
エラーが出たので諦め。できるだけ読みやすくなるよう努めた。
メソッドの内容は前の配列練習の文を元に少し手を加えた。

ArrayExam.java
package JavaStudy;
//メソッドを分けて配列の練習
//テスト結果(教科名・平均点・科目別最高点・生徒数)を出力

public class ArrayExam {

    public static void main(String[] args) {
        final int math = 0;
        final int english = 1;
        final int science = 2;

        ArrayPractice t = new ArrayPractice(20);
        t.startExam(math);
        t.startExam(english);
        t.startExam(science);

        t.printResult(math);
        t.printResult(english);
        t.printResult(science);
    }
}
ArrayPractice.java
package JavaStudy;
import java.util.Random;
//各項目出力用のメソッドをまとめた
public class ArrayPractice {
    final String[] SUBJECT= {"算数","英語","理科"};
    int students = 0;
    int [][] arr;
    //インスタンス生成時にクラスの生徒数を受け取る
    ArrayPractice(int students){
        this.students = students;
        arr = new int[3][students];
    }

    void printResult(int sub) {
        //結果を出力する
        System.out.println("試験科目は "+ SUBJECT[sub]+"です。");
        System.out.println("生徒数は "+ students +"人です。");
        System.out.println("平均点は "+ resultAverage(sub)+"点です。");
        System.out.println("最高点は "+ getMax(sub)+"点です。");        
        System.out.println("-----------");
    }
    int getMax(int sub) {
        //科目別の最高点を返す
        int max = 0;
        for(int i = 0;i < students;i++) {
            if(arr[sub][i] > max) 
                max = arr[sub][i];
        }
        return max;
    }
    void startExam(int sub) {
        //ランダムな点数(0〜100点)を教科の配列にいれる
        Random random = new Random();
        for(int i = 0;i < students ;i++) 
            arr[sub][i] = random.nextInt(101);      
    }
    int resultAverage(int sub) {
        //平均点を返す
        int sum = 0;
        int average = 0;
        for(int i =0;i < students;i++) 
            sum = sum + arr[sub][i];
        average = sum/students;
        return average;
    }
}
0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1