국비학원/숙제

Day10_총점, 평균, 석차 구하기

루팽 2022. 12. 27. 21:37

연습문제-학생별 총점, 평균, 석차구하기

package dev_java.ch03;

import java.util.Arrays;
import java.util.Collections;

// 과목별 총점, 학생별 총점, 평균, 석차를 구하기
public class TwoArray4 {
  String[] subject = { "JAVA", "ORACLE", "SPRING" };
  String[][] data = {
      { "이순신", "80", "75", "70" },
      { "강감찬", "90", "85", "95" },
      { "김춘추", "65", "60", "60" }
  };
  int[] total = new int[3];
  Integer[] rank = new Integer[3];

  void subTotal() { // 각 과목의 총점
    int subTotalArr[] = new int[3];
    for (int i = 0; i < subject.length; i++) {
      for (int j = 0; j < data.length; j++) {
        subTotalArr[i] += Integer.parseInt(data[j][i + 1]);
      }
      System.out.println(subject[i] + "과목의 총점은 " + subTotalArr[i] + "입니다.");
    }
  }

  void studentTotal() { // 각 학생의 총점
    for (int i = 0; i < data.length; i++) {
      for (int j = 1; j < data[i].length; j++) {
        total[i] += Integer.parseInt(data[i][j]);
      }
      System.out.println(data[i][0] + "학생의 총점은 " + total[i] + "입니다.");
    }
  }

  void Studentavg() { // 각 학생의 평균
    for (int i = 0; i < data.length; i++) {
      System.out.println(data[i][0] + "학생의 평균은 " + (total[i] / (subject.length)) + "입니다.");
    }
  }

  void studentRank() { // 석차구하기
    for (int i = 0; i < data.length; i++) {
      rank[i] = (total[i] / (subject.length));
    }
    Arrays.sort(rank, Collections.reverseOrder());
    for (int i = 0; i < data.length; i++) {
      for (int j = 0; j < data.length; j++) {
        if (rank[i] == (total[j] / (subject.length))) {
          System.out.println(data[j][0] + "학생은 " + (i + 1) + "등입니다.");
        }
      }
    }
  }

  public static void main(String[] args) {
    TwoArray4 a4 = new TwoArray4();
    a4.subTotal();
    System.out.println("=====");
    a4.studentTotal();
    System.out.println("=====");
    a4.Studentavg();
    System.out.println("=====");
    a4.studentRank();
  }
}