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;
}
}