JAVA/풀어봅시다 (eclipse)

[JAVA] 학생의 점수 합, 평균, 등급 출력하기

샛별KIM 2021. 5. 27. 11:58
import java.util.Scanner;

/*
 * 사용자에게 학생 수 입력받아
 * 학생 이름, java, jsp, spring, total점수 입력...
 * 차례차례 돌며 값 입력!
 * 합, 평균, 등급까지
 * 2차원 배열, 스위치, for, if문까지...
 */
public class MultiArray03 {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);

		System.out.print("학생 수를 입력하세요 : ");
		int input = sc.nextInt();
		int[][] score = new int[input][4];
		// [학생수],[점수 3개 + 토탈]
		String[][] stud = new String[input][3];
		// [input 명][이름, 평균, 등급]

		String[] sub = { "java", "jsp", "spring" };

		for (int i = 0; i < score.length; i++) {
			System.out.println("이름을 입력하세요.");
			stud[i][0] = sc.next(); // i번째의 0,이름

			for (int j = 0; j < score[i].length - 1; j++) { // 토탈엔 점수가 들어가지 않게!
				System.out.println(sub[j] + " 점수를 입력하세요.");
				score[i][j] = sc.nextInt();
				if (score[i][j] < 0 || score[i][j] > 100) {
					j--;
				}
			} // end of stud[i]
			
			score[i][3] = score[i][0] + score[i][1] + score[i][2]; // 토탈에 0 1 2 값 더하여 넣기
			double temp = score[i][3] / 3.0;// 평균 값 잠시 담아두기
			temp = Math.round(temp*100)/100.0;
			
			stud[i][1] = Double.toString(temp); // i번째의 평균, double값을 string으로 변환하여 넣기

			switch ((int) temp / 10) { // temp 즉 평균값 나누기 10
			case 10:
			case 9:
				stud[i][2] = "A";
				break;
			case 8:
				stud[i][2] = "B";
				break;
			case 7:
				stud[i][2] = "C";
				break;
			default:
				stud[i][2] = "F";
				break;
			}

			System.out.println(temp);
			System.out.println("");
		} // end of 외부 for

		// 명수 = input
		// total == score[i][3]
		// name == stud[i][0]
		// avg == stud[i][1]
		// grade == stud[i][2]

		
		for (int i = 0; i < input; i++) {
			System.out.println(i + 1 + ". 이름 : " + stud[i][0]);
			System.out.printf("java : %d점, jsp : %d점, spring : %d점 \n", score[i][0], score[i][1], score[i][2]);
			System.out.println("총합 : " + score[i][3]);
			System.out.println("평균 : " + stud[i][1]);
			System.out.println("등급 : " + stud[i][2]);
			System.out.println("------------");
		}
		
	}
}