CODE/JAVA1

Scores

maskan 2021. 1. 27. 15:46
public class Scores_1 {

	public static void main(String[] args) {
		/*
		 * 우리반 모두의 국어, 영어, 수학, 사회, 과학, Oracle, Java 점수를
		 * 0 ~ 100까지 랜덤으로 생성해주시고, 아래와 같이 출력해주세요.
		 * 
		 * 			국어		영어		수학		사회		과학		Oracle	Java	합계		평균		석차
		 * 홍길동		90		90		90		90		90		90		90		630		90.00	1
		 * 홍길동		90		90		90		90		90		90		90		630		90.00	1
		 * 홍길동		90		90		90		90		90		90		90		630		90.00	1
		 * 홍길동		90		90		90		90		90		90		90		630		90.00	1
		 * 홍길동		90		90		90		90		90		90		90		630		90.00	1
		 * 과목합계	450		450		450		450		450		450		450
		 * 과목평균	90.00	90.00	90.00	90.00	90.00	90.00	90.00
		 */
		
		String[] names = {"홍길동", "홍길동", "홍길동", "홍길동", "홍길동"
				  		, "홍길동", "홍길동", "홍길동", "홍길동", "홍길동"
				  		, "홍길동", "홍길동", "홍길동", "홍길동", "홍길동"
				  		, "홍길동", "홍길동", "홍길동", "홍길동", "홍길동"
				  		, "홍길동", "홍길동", "홍길동", "홍길동", "홍길동"};
		String[] subjects = {"국어", "영어", "수학", "사회", "과학", "Oracle", "Java"};
		int[][] score = new int[names.length][subjects.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);
			}
		}
		
		int[] nameSum = new int[score.length];
		double[] nameAvg = new double[score.length];
		for(int i = 0; i < score.length; i++){
			for(int j = 0; j < score[i].length; j++){
				nameSum[i] += score[i][j];
			}
			nameAvg[i] = Math.round((double) nameSum[i] / subjects.length * 100) / 100.0;
		}
		
		int[] subSum = new int[subjects.length];
		double[] subAvg = new double[subjects.length];
		for(int i = 0; i < subjects.length; i++){
			for(int j = 0; j < score.length; j++){
				subSum[i] += score[j][i];
			}
			subAvg[i] = Math.round((double)subSum[i] / score.length * 100) / 100.0;
		}
		
		int[] rank = new int[score.length];
		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 max = i;
			for(int j = i + 1; j < nameSum.length; j++){
				if(nameSum[max] < nameSum[j]){
					max = j;
				}
			}
			int[] temp = score[i];
			score[i] = score[max];
			score[max] = temp;
			
			int temp2 = nameSum[i];
			nameSum[i] = nameSum[max];
			nameSum[max] = temp2;
			
			double temp3 = nameAvg[i];
			nameAvg[i] = nameAvg[max];
			nameAvg[max] = temp3;
			
			int temp4 = rank[i];
			rank[i] = rank[max];
			rank[max] = temp4;
			
			String temp5 = names[i];
			names[i] = names[max];
			names[max] = 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(names[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("과목합계\t");
		for(int i = 0; i < subSum.length; i++){
			System.out.print(subSum[i] + "\t");
		}
		System.out.println();
		
		System.out.print("과목평균\t");
		for(int i = 0; i < subAvg.length; i++){
			System.out.print(subAvg[i] + "\t");
		}
	}

}

 

 

 

 

 

 

public class Scores {

	public static void main(String[] args) {
		/*
		 * 우리반(25명) 모두의 국어, 영어, 수학, 사회, 과학, Oracle, Java 점수를 0~100까지 랜덤으로 생성하고
		 * 아래와 같이 출력하라
		 * 
		 * 			국어		영어		수학		사회		과학		Oracle	Java	합계		평균		석차
		 * 홍길동		90		90		90		90		90		90		90		630		90.00	1
		 * 홍길동		90		90		90		90		90		90		90		630		90.00	1
		 * 홍길동		90		90		90		90		90		90		90		630		90.00	1
		 * 홍길동		90		90		90		90		90		90		90		630		90.00	1
		 * 홍길동		90		90		90		90		90		90		90		630		90.00	1
		 * 과목합계	450		450		450		450		450		450		450
		 * 과목평균	90.00	90.00	90.00	90.00	90.00	90.00	90.00
		 */

		String[] names = {"홍길동", "홍길동", "홍길동", "홍길동", "홍길동"
		  		, "홍길동", "홍길동", "홍길동", "홍길동", "홍길동"
		  		, "홍길동", "홍길동", "홍길동", "홍길동", "홍길동"
		  		, "홍길동", "홍길동", "홍길동", "홍길동", "홍길동"
		  		, "홍길동", "홍길동", "홍길동", "홍길동", "홍길동"};
		String[] subjects = {"국어", "영어", "수학", "사회", "과학", "Oracle", "Java"};
		int[][] scores = new int[names.length][subjects.length];
		for (int i = 0; i < names.length; i++) {
			for (int j = 0; j < subjects.length; j++) {
				scores[i][j] = (int) (Math.random() * 101);
			}
		}
		int[] name_sum = new int[names.length];
		int[] subject_sum = new int[subjects.length];
		double[] name_avg = new double[names.length];
		double[] subject_avg = new double[subjects.length];
		for (int i = 0; i < names.length; i++) {
			for (int j = 0; j < subjects.length; j++) {
				name_sum[i] += scores[i][j];
			}
			name_avg[i] = Math.round(name_sum[i] * 100 / 7) / 100.0;
		}
		for (int i = 0; i < subjects.length; i++) {
			for (int j = 0; j < names.length; j++) {
				subject_sum[i] += scores[j][i];
			}
			subject_avg[i] = Math.round(subject_sum[i] * 100 / 7) / 100.0;
		}
		int[] rank = new int[names.length];
		for (int i = 0; i < names.length; i++) {
			rank[i] = 1;
			for (int j = 0; j < names.length; j++) {
				if (name_sum[j] > name_sum[i]) {
					rank[i]++;
				}
			}
		}
		for (int i = 0; i < subjects.length; i++) {
			System.out.print("\t" + subjects[i]);
		}
		System.out.println("\t합계\t평균\t석차");

		for (int j = 0; j < rank.length; j++) {
			for (int i = 0; i < rank.length; i++) {
				if (rank[i] == j + 1) {
					System.out.print(names[i]);
					for (int p = 0; p < scores[i].length; p++) {
						System.out.print("\t" + scores[i][p]);
					}
					System.out.println("\t" + name_sum[i] + "\t" + name_avg[i]
							+ "\t" + rank[i]);
				}
			}
		}

		System.out.print("과목 합계\t");
		for (int i = 0; i < subject_sum.length; i++) {
			System.out.print(subject_sum[i] + "\t");
		}
		System.out.println();
		System.out.print("과목 평균\t");
		for (int i = 0; i < subject_avg.length; i++) {
			System.out.print(subject_avg[i] + "\t");
		}

	}

}

'CODE > JAVA1' 카테고리의 다른 글

Sort  (0) 2021.01.27
SetComma  (0) 2021.01.27
ChangeQuiz  (0) 2021.01.27
MultiDimensionalArray  (0) 2021.01.27
Array  (0) 2021.01.27