Java
2차원 배열을 이용하여 학생별 성적 집계 결과 프로그램 만들어보기
에어팟맥스
2022. 6. 19. 18:26
String[] name_arr = {"이순신","엄정화","서강준","이혜리"};
String[] subject_name_arr = {"국어","영어","수학"};
int[][] jumsu_arr = { {90,80,70}, // 이순신
{80,85,76}, // 엄정화
{85,70,90}, // 서강준
{60,80,50} // 이혜리
};
1. 각 학생별로 총점을 나타내어 보기
System.out.println("\n========== 학생별 성적 집계 결과 ==========\n"
+ "------------------------------------\n"
+ "학생명 국어 영어 수학 총점 평균 학점\n"
+ "------------------------------------\n");
/*
이순신 90 80 70 240 80.0
엄정화 80 85 76 241 80.3
서강준 85 70 90 245 91.7
이혜리 60 80 50 190 63.3
*/
String result = "";
for(int i=0; i<jumsu_arr.length; i++) { // 4행
String str_jumsu = "";
int sum = 0;
for(int j=0; j<jumsu_arr[i].length; j++) { // 3열
str_jumsu += " " + jumsu_arr[i][j];
sum += jumsu_arr[i][j];
} // end of for
2. 학생별 총점을 이용하여 학생별 평균과 학점 나타내기
double avg = Math.round( sum/3.0*10 )/10.0;
char hakjum;
switch ( (int)avg/10 ) {
case 9:
hakjum = 'A';
break;
case 8:
hakjum = 'B';
break;
case 7:
hakjum = 'C';
break;
case 6:
hakjum = 'D';
break;
default:
hakjum = 'F';
break;
}
result += name_arr[i] + str_jumsu + " " + sum + " " + avg + " " + hakjum + "\n";
} // end of for
System.out.println(result);
3. 이번에는 학생별이 아닌 과목별 평균 나타내어 보기
System.out.println("\n======= 과목별 평균 =======\n"
+ "------------------------");
result = "";
for( String subject : subject_name_arr ) {
result += subject + " ";
} // end of for
System.out.println(result + "\n------------------------");
result = "";
for(int i=0; i<jumsu_arr[i].length; i++) {
int subject_sum = 0;
for(int j=0; j<jumsu_arr.length; j++) {
subject_sum += jumsu_arr[j][i];
} // end of for
result += Math.round( (double)subject_sum/jumsu_arr.length*10 )/10.0 + " ";
} // end of for
System.out.println(result);
} // end of main()
}