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