1. JAVA/1.2 실습
JAVA_08_실습_객체(2)
마느링
2022. 3. 20. 23:07
문제 : Student클래스를 생성하여 5명의 데이터를 배열로 만들기.
멤버 변수는 private로 구현(국어점수,영어점수,수학점수, 합계, 평균, 등수)
등수 기준 오름차순 정렬
1) Student 클래스 작성
public class Student
{
private int kor, eng, math,rank,total;
private double avg;
Student(){}
Student(int kor, int eng, int math){
this.kor = kor;
this.eng = eng;
this.math = math;
this.rank = 1;
setTotal();
setAvg();
}
public void setTotal() {
this.total = kor+math+eng;
}
public void setAvg() {
this.avg = getTotal()/3.0;
}
public int getBan() {
return ban;
}
public void setBan(int ban) {
this.ban = ban;
}
public int getNo() {
return no;
}
public void setNo(int no) {
this.no = no;
}
public int getKor() {
return kor;
}
public void setKor(int kor) {
this.kor = kor;
}
public int getEng() {
return eng;
}
public void setEng(int eng) {
this.eng = eng;
}
public int getMath() {
return math;
}
public void setMath(int math) {
this.math = math;
}
public int getRank() {
return rank;
}
public void setRank(int rank) {
this.rank = rank;
}
public int getTotal() {
return total;
}
public void setTotal(int total) {
this.total = total;
}
public double getAvg() {
return avg;
}
public void setAvg(double avg) {
this.avg = avg;
}
@Override
public String toString() {
return rank + "등 ==> 총점 : " + total + ", 평균 : " + avg+
"\n\t국어점수 : " + kor + ", 영어점수 : " + eng + ",
수학점수 : " + math;
}
}
2) 배열을 셋팅하고 출력해주는 메인 클래스 작성
public class studPrint{
int kor, eng, math,rank;
Student s[]; // 학생 5명을 담을 배열 변수 선언
studPrint(){
setting();
setRank();
System.out.println("<<<< 정렬 전 >>>>");
toPrint();
setArr();
System.out.println("<<<< 정렬 후 >>>>");
toPrint();
}
// 국,영,수 점수 랜덤으로 셋팅
public void setting() {
s = new Student[5]; //5명으로 배열 갯수 셋팅
for(int i = 0; i<s.length;i++) {
kor = (int)(Math.random()*41+60);
eng = (int)(Math.random()*41+60);
math = (int)(Math.random()*41+60);
s[i] = new Student(kor,eng,math);
}
}
//학생 개개인별로 등수 설정
public void setRank() {
for(int i = 0; i<s.length;i++) {
rank =s[i].getRank();
for(int j = 0; j<s.length;j++) {
if(s[i].getTotal()<s[j].getTotal()) {
s[i].setRank(rank+=1);
}
}
}
}
//등수별로 오름차순 정렬
public void setArr() {
for(int i = 0; i<s.length;i++) {
for(int j = i+1; j<s.length;j++) {
if(s[i].getRank()>s[j].getRank()) {
Student temp = s[i];
s[i] = s[j];
s[j] = temp;
}
}
}
}
//출력
public void toPrint() {
for(Student stud : s) {
System.out.println(stud.toString());
}
}
public static void main(String[] args) {
new studPrint();
}
}