Notice
Recent Posts
Recent Comments
Link
«   2024/09   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
Tags
more
Archives
Today
Total
관리 메뉴

개발 일기

JAVA 코딩 연습(객체&배열 활용하여 코딩 연습 3!) 본문

JAVA 연습장

JAVA 코딩 연습(객체&배열 활용하여 코딩 연습 3!)

개발 일기 2021. 6. 12. 15:17

학생 클래스를 생성하여 캡슐화, 변수, 스레드 선언 후 메인 클래스에 배열 객체를 통한 코딩 진행!!

public class Student { // Student 클래스 생성
/*
* << 속성 >> 번호 이름 국어 영어 수학 총점 평균 평점 석차
* << 기능 >> 기본데이타입력,총점계산,평균계산,평점계산, 출력
*/

private int number, kor, eng, math, sum, rank; //private 캡슐화
private double avg;
private char grade;
private String name;

/*
 * <<생성자메쏘드 선언[오버로딩]>>
 *  - 인자 0개짜리 생성자(기본생성자선언) 
 *  - 인자 5개짜리(번호 이름 국어 영어 수학) 생성자선언
 */

public Student() {

}
public Student(int number, String name, int kor, int eng, int math){
    this.number=number;
    this.name=name;
    this.kor=kor;
    this.eng=eng;
    this.math=math;

}

/*
멤버메쏘드 선언
*/

public void setData(int number, String name, int kor, int eng, int math) { // setData 메소드 설정

    this.number=number; 
    this.name=name;
    this.kor=kor;
    this.eng=eng;
    this.math=math;

}
public void sumData() { // 총점 데이터 메소드 설정
    this.sum=kor+eng+math;
}
public void avgData() { // 평균 데이터 메소드 설정
    this.avg=(int)((this.sum)/3.0*100)/100.0;
}
/*
public void rankData(int rank) {
    this.rank=rank;
}
*/

public void grade() { // 평점 데이터 메소드 설정

    if(this.avg>80) {
        this.grade = 'A';
    } else if(this.avg>60){
        this.grade = 'B';
    } else if(this.avg>40) {
        this.grade = 'C';
    } else if(this.avg>20) {
        this.grade = 'D';
    } else {
        this.grade = 'F';
    }
}

public static void headerPrint() { // 출력 메소드 설정(static)

    System.out.println("----------------------------------------------------------------------");
    System.out.println("번호"+"\t"+"이름"+"\t"+"국어"+"\t"+"영어"+"\t"+"수학"+"\t"+"총점"+"\t"+"평균"+"\t"+"평점"+"\t"+"석차");
}

public void print() {
    System.out.println(this.number+"\t"+this.name+"\t"+this.kor+"\t"+this.eng+"\t"+this.math+"\t"+this.sum+"\t"+this.avg+"\t"+this.grade+"\t"+this.rank);
}

//getter, setter 설정

public int getNumber() {
    return number;
}
public void setNumber(int number) {
    this.number = number;
}
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 getSum() {
    return sum;
}
public void setSum(int sum) {
    this.sum = sum;
}
public int getRank() {
    return rank;
}
public void setRank(int rank) {
    this.rank = rank;
}
public double getAvg() {
    return avg;
}
public void setAvg(double avg) {
    this.avg = avg;
}
public char getGrade() {
    return grade;
}
public void setGrade(char grade) {
    this.grade = grade;
}
public String getName() {
    return name;
}
public void setName(String name) {
    this.name = name;
}

}

public class StudentArrayMain { // Student 메인 클래스 생성

public static void main(String[] args) {
    /*
     * 0.학생배열객체초기화
     */
    Student[] students = { 
            new Student(1, "KIM", 89, 93, 94),
            new Student(2, "HIM", 88, 77, 98),
            new Student(3, "AIM", 65, 87, 99), 
            new Student(4, "BIM", 75, 97, 60), 
            new Student(5, "XIM", 85, 98, 90),
            new Student(6, "TIM", 95, 88, 77), 
            new Student(7, "ZIM", 99, 93, 95), 
            new Student(8, "LIM", 83, 80, 99),
            new Student(9, "QIM", 73, 90, 80),
    };

    /*
     * 1. 전체학생총점,평균,평점계산
     */

    System.out.println("1. 전체학생총점,평균,평점계산");
    for (int i = 0; i < students.length; i++) {
        students[i].sumData();
        students[i].avgData();
        students[i].grade();
    }

    int totSum = 0;
    for (int i = 0; i < students.length; i++) {
        totSum+=students[i].getSum();

    }System.out.println("전체학생총점 : " + totSum);

    double avgSum = 0;
    for (int i = 0; i < students.length; i++) {
        avgSum+=students[i].getAvg();
    }
    avgSum=(int)avgSum/students.length;
    System.out.println("전체학생평균 : " + avgSum);

    /*
     * 2. 전체학생 총점으로 석차계산
     */

    System.out.println("2. 전체학생 총점으로 석차계산");

    for (int i = 0; i < students.length; i++) {
        students[i].setRank(1);
        for (int j = 0; j < students.length; j++) {
            if(students[i].getSum() < students[j].getSum()) {
                students[i].setRank(students[i].getRank()+1);
            }
        }
    }

    /*
     * 3. 전체학생출력
     */

    System.out.println("3. 전체학생출력 ");
    Student.headerPrint();
    for (int i = 0; i < students.length; i++) {
        students[i].print();
    }

    /*
     * 4. 번호3번 학생한명 출력
     */

    System.out.println("4.번호3번 학생한명 출력  ");
    Student.headerPrint();

    for (int i = 0; i < students.length; i++) {
        if(students[i].getNumber()==3) {
            students[i].print();
            break;
        }
    }


    /*
     * 5. 학점A인 학생들 출력
     */

    System.out.println("5. 학점A인 학생들 출력");
    Student.headerPrint();

    for (int i = 0; i < students.length; i++) {
        if(students[i].getGrade()=='A') {
            students[i].print();
        }
    }

    /*
     * 6. 학생총점으로 오름차순정렬
     */

    System.out.println("6. 학생총점으로 내림(오름)차순정렬");
    Student.headerPrint();

    for (int i = 0; i < students.length; i++) {
        for (int j = 0; j < students.length-1; j++) {
            if(students[j].getSum() > students[j+1].getSum()) {
                Student sumA = students[j+1];
                students[j+1] = students[j];
                students[j] = sumA;

            }
        }
    }
    for (int i = 0; i < students.length; i++) {
        students[i].print();

    }

    /*
     * 7. 학생학점순으로 오름차순정렬
     */

    System.out.println("7. 학생학점순으로 오름차순정렬");

    Student.headerPrint();
    for (int i = 0; i < students.length; i++) {
        for (int j = 0; j < students.length-1; j++) {
            if(students[j].getGrade() < students[j+1].getGrade() ) {
                Student grd = students[j+1];
                students[j+1] = students[j];
                students[j] = grd;
            }
        }
    }
    for (int i = 0; i < students.length; i++) {
        students[i].print();
    }
}

}

배열 객체를 생성하여 조건에 맞는 코딩을 진행해보았습니다!!

현재까지 매일매일 진도를 나가면서 스텝바이스텝으로 새로운 기능을 배우는게 재미있고 활용되어 쓰여지는게 신기하네요!!

Comments