다양한 관심 :)

배열문제 - 성적표 본문

프로그래밍 공부/JAVA예제

배열문제 - 성적표

뚜뚜:) 2020. 10. 12. 19:15

우리반 모두의 국어, 영어, 수학, 사회, 과학, oracle, java점수를 0~100까지 랜덤으로 생성,

국 영 수 사 과 오라클 자바 (8과목) 의 과목합계 평균 합계, 평균, 석차 구하기

public static void main(String[] args) {


		
		String[] name = new String[] { "학생1", "학생2", "학생3", "학생4", "학생5",
				"학생6", "학생7", "학생8", "학생9", "학생10"};
		
		String[] subjects = {"국어", "영어", "수학", "사회", "과학", "Oracle", "Java"};
		
		int[][] score = new int[name.length][subjects.length];
		int[] nameSum = new int[score.length];
		float[] nameAvg = new float[score.length];
		int[] subSum = new int[subjects.length];
		float[] subAvg = new float[subjects.length];
		int[] rank = new int[score.length];
		
		for(int i = 0; i < score.length; i++){
			for(int j = 0; j < score[i].length; j++){
				score[i][j] = (int)(Math.random() * 101);
			}
		}
		
		for(int i = 0; i < score.length; i++){
			for(int j = 0; j < score[i].length; j++){
				nameSum[i] += score[i][j];
			}
		}
		
		for(int i = 0; i < score.length; i++){
			nameAvg[i] = Math.round((float)nameSum[i] / subjects.length * 100) / 100f;
		}
		
		for(int i = 0; i < subjects.length; i++){
			for(int j = 0; j < score.length; j++){
				subSum[i] += score[j][i];
			}
		}
		
		for(int i = 0; i < subjects.length; i++){
			subAvg[i] = Math.round((float)subSum[i] / score.length * 100) / 100f;
		}
		
		for(int i = 0; i < score.length; i++){
			rank[i] = 1;
			for(int j = 0; j < score.length; j++){
				if(nameSum[i] < nameSum[j]){
					rank[i]++;
				}
			}
		}
		
		for(int i = 0; i < nameSum.length - 1; i++){
			int min = i;
			for(int j = i + 1; j < nameSum.length; j++){
				if(nameSum[j] > nameSum[min]){
					min = j;
				}
			}
            
            //값을 정렬해주기
//			int[] temp = score[i];
//			score[i] = score[min];
//			score[min] = temp;
//			
//			int temp2 = nameSum[i];
//			nameSum[i] = nameSum[min];
//			nameSum[min] = temp2;
//			
//			float temp3 = nameAvg[i];
//			nameAvg[i] = nameAvg[min];
//			nameAvg[min] = temp3;
//			
//			int temp4 = rank[i];
//			rank[i] = rank[min];
//			rank[min] = temp4;
//			
//			String temp5 = names[i];
//			names[i] = names[min];
//			names[min] = temp5;
		}
		
		for(int i = 0; i < subjects.length; i++){
			System.out.print("\t" + subjects[i]);
		}
		System.out.println("\t합계\t평균\t석차");
		for(int i = 0; i < score.length; i++){
			System.out.print(name[i] + "\t");
			for(int j = 0; j < score[i].length; j++){
				System.out.print(score[i][j] + "\t");
			}
			System.out.println(nameSum[i] + "\t" + nameAvg[i] + "\t" + rank[i]);
		}
		
		System.out.print("과목합계");
		for(int i = 0; i < subSum.length; i++){
			System.out.print(subSum[i] + "\t");
		}
		System.out.println();
		
		System.out.print("과목평균");
		for(int i = 0; i < subAvg.length; i++){
			System.out.print(subAvg[i] + "\t");
		}
	}

}

'프로그래밍 공부 > JAVA예제' 카테고리의 다른 글

생성자 실행  (0) 2020.10.12
OOP 예제  (0) 2020.10.12
quiz 4. 나누어 떨어지는 숫자배열  (0) 2020.10.12
quiz 3. 중복된 숫자 없애기  (0) 2020.10.12
quiz 2 . 그래프그리기  (0) 2020.10.12