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()

}