초급JAVA 8 - 과제

voilà!·2021년 11월 1일
0

초급JAVA

목록 보기
17/24

Class에 메서드를 사용해서 성적처리 프로그램 만들기

 public class Score {
 public static void main(String[] args) {
	//성적처리 프로그램 만들기
	//Student에 있는 메서드를 호출해서 사용
	String[] studentNames = {"이름"};
	
	Student[] students = new Student[studentNames.length];
	
	for(int i = 0; i < students.length; i++){
		students[i] = new Student();
		students[i].name = studentNames[i];
		students[i].createRandomScore();
		students[i].getSum();
		students[i].getAverage();
	}
	for(int i = 0; i < students.length; i++){
		students[i].getRank(students);
	}
	
	//석차순 정렬
			for(int i = 0; i < students.length - 1; i++){
				int min = i;
				for(int j = i + 1; j < students.length; j++){
					if(students[j].rank < students[min].rank){
						min = j;
					}
				}
				Student temp = students[i];
				students[i] = students[min];
				students[min] = temp;
			}
			
			//과목별 합계, 평균
			int[] sums = new int[3];
			for(int i = 0; i < students.length; i++){
				sums[0] += students[i].kor;
				sums[1] += students[i].eng;
				sums[2] += students[i].math;
			}
			double[] avgs = new double[3];
			for(int i = 0; i < avgs.length; i++){
				avgs[i] = Math.round((double)sums[i] / students.length * 100) / 100.0;
			}
			
			//출력
			System.out.println("이름\t국어\t영어\t수학\t합계\t평균\t석차");
			for(int i = 0; i < students.length; i++){
				System.out.println(students[i].getInfo());
			}
			System.out.print("과목합계");
			for(int i = 0; i < sums.length; i++){
				System.out.print("\t" + sums[i]);
			}
			System.out.print("\n과목평균");
			for(int i = 0; i < avgs.length; i++){
				System.out.print("\t" + avgs[i]);
                	}
                }
                


public class Student {	
int kor;
int eng;
int math;
int sum;
double avg;
int rank;
String name;

void createRandomScore(){
	kor = (int)(Math.random()*101);
	eng = (int)(Math.random()*101);
	math = (int)(Math.random()*101);
}

int getSum(){
	return sum = kor + eng + math;
}

double getAverage(){
	return avg = Math.round(getSum() / 3.0 * 100)/100.0 ;
}

int getRank(Student[] students){
	rank = 1;
	for(int i = 0; i < students.length; i++){
		if(getSum() < students[i].getSum()){
			rank++;
		}
	}
	return rank;
}
String getInfo(){
	return name + "\t" + kor + "\t" + eng + "\t" + math + "\t" + sum + "\t" + avg + "\t" + rank;
	}
}

0개의 댓글