ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • JAVA_08_실습_객체(2)
    1. JAVA/1.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();
    }
    	}

     

    '1. JAVA > 1.2 실습' 카테고리의 다른 글

    JAVA_10_실습_추상  (0) 2022.03.20
    JAVA_09_실습_상속  (0) 2022.03.20
    JAVA_08_실습_객체(1)  (0) 2022.03.16
    JAVA_07_실습_함수  (0) 2022.03.16
    JAVA_06_실습_배열  (0) 2022.03.16
Designed by Tistory.