Daily coding

Java Basic : day 5 - Example 02 : 학생 성적입력 프로그램(sorting) 본문

Language/Java_basic

Java Basic : day 5 - Example 02 : 학생 성적입력 프로그램(sorting)

sunnnkim 2019. 11. 22. 19:14
package day5;

import java.util.Scanner;

public class Ex02_2dArray_answer {
	public static void main(String[] args) {
		
		// 강사님 답
		
		Scanner sc = new Scanner(System.in);
		
		// student[학생수][이름+과목수]
		String student[][] = null;
		int count;
		
		// 1. 학생 수 
		System.out.println("학생 수를 입력하세요 :");
		count = sc.nextInt();
		
		// 2. 동적할당
		student = new String[count][4];
		
		// 3. 이름, 성적 입력 : 이름 국어 영어 수학
		for (int i = 0; i < student.length; i++) {
			
			System.out.println("이름 : ");
			String name = sc.next();
			
			System.out.println("국어 : ");
			String lang = sc.next();
			
			System.out.println("영어 : ");
			String eng = sc.next();
			
			System.out.println("수학 : ");
			String math = sc.next();
			
			student[i][0] = name;
			student[i][1] = lang;
			student[i][2] = eng;
			student[i][3] = math;
		}
		
		// 4. 각 학생의 총점
		int sum[] = new int[student.length];
		for (int i = 0; i < student.length; i++) {
			for (int j = 1; j < student[0].length; j++) {
				// 국어부터 점수를 더하기 위해서 j=1 로 설정
				sum[i] += Integer.parseInt(student[i][j]);
			}
		}
		
		// 5. 전체 학생의 총점
		int allSum = 0;
		for (int i = 0; i < student.length; i++) {
			for (int j = 1; j < student.length; j++) {
				allSum += Integer.parseInt(student[i][j]);
			}
		}
		
		// 5-1. 학생의 총점의 평균점수 구하기
		double avg = 0.0;
		avg = (double)allSum / student.length;
		
		// 6. 총점의 1등 & 꼴찌
		int max = sum[0];
		// 누구인지 맞추기
		int findIndex = -1;	// 없으면 -1로 해둬서 검색시 나오지 않도록 한다.
		for (int i = 0; i < sum.length; i++) {
			if(sum[i] > max) {
				max = sum[i];
				findIndex = i;
			}
		}
		for (int i = 0; i < sum.length; i++) {
			if(max == sum[i]) {
			}
		}
		// 출력
		// 각 학생의 총점
		for (int i = 0; i < sum.length; i++) {
			System.out.println((1+i)+"번째 학생의 총점 : " + sum[i]);
		}
		// 전체 학생의 총점
		System.out.println("전체 학생의 총점 : " + allSum);
		// 학생총점의 평균점수
		System.out.println("학생총점의 평균  : " + avg);
		// 총점의 1등
		for (int i = 0; i < sum.length; i++) {
			System.out.println(" 1등 : " + student[findIndex][i]);
			
		}

}
}