/*
*
* 국어 영어 수학 사회 과학 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]; // j가 바로 바로 바뀌는 가로값을 더한것
}
nameAvg[i] = Math.round((double)nameSum[i] / subjects.length * 100) / 100.0;
//평균은 합계를 과목 길이로 나눈것(소숫점 2째자리 까지 표현한것)
}
//과목 합계, 과목 평균 구하기
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];// i가 바로 바로 바뀌는 가로값을 더한것
}
subAvg[i] = Math.round((double)subSum[i] / score.length * 100) / 100.0;
//과목 평균은 과목 합계를 과목 길이로 나눈것(소숫점 2째자리 까지 표현한것)
}
//석차구하기
int[] rank = new int[score.length]; //사람 수 만큼 석차 구하기
for(int i = 0; i < score.length; i++){
rank[i] = 1; //석차에 기본값으로 1을 준것
for(int j = 0; j < score.length; j++){
if(nameSum[i] < nameSum[j]){
rank[i]++;
}
}
}
//나머지 출력
System.out.print("이름");//이름 쓰고
for(int i = 0; i < subjects.length; i++){//과목 길이 만큼
System.out.print("\t" + subjects[i]);//과목 배열 탭하면서 나열
}
System.out.println("\t합계\t평균\t석차"); // \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]); // 합계\t 평균\t석차를 출력하고 다음줄
}
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"); //과목 평균 가로로 출력
}