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("------------");
}
}
}