-
220314_JAVA_문제 풀어보기1. JAVA/1.3 문제 2022. 3. 14. 11:49
<<문제>>
1. Student 클래스를 생성한 후 5명의 국어, 영어, 수학 데이터를 입력한다.
2. 과목 합계 구하기
3. 과목 평균 구하기
4. 5명 등수 정하기
5. 1등부터 등수별로 정렬
<<조건>>
1. 한개의 함수내에서 처리하기..
2. 기능별로 분리해서 함수 만들어서 처리...public class Student { private String name; private int rank, total,ban,no,kor,eng,math; private double avg; Student(){} Student(int kor,int eng,int math){ this.kor = kor; this.eng = eng; this.math = math; this.rank = 1; this.total = getTotal(); this.avg = getAvg(); this.ban = ban; this.no = no; this.name = name; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getRank() { return rank; } public void setRank(int rank) { this.rank = rank; } public int getTotal() { return kor+eng+math; } public void setTotal(int total) { this.total = total; } 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 double getAvg() { return getTotal()/3.0; } public void setAvg(double avg) { this.avg = avg; } }
public class Ex01 { String name; int ban, no, kor, eng, math,total,rank; double avg; Student [] stud; Ex01_01(){ setting(); setRank(); toPrint(); setArr(); System.out.println("*******************정렬 후*******************"); toPrint(); } public void setting() { stud = new Student[5]; for(int i = 0; i<stud.length;i++) { kor = (int)(Math.random()*41+60); eng = (int)(Math.random()*41+60); math = (int)(Math.random()*41+60); stud[i] = new Student(kor,eng,math); no = (int)(Math.random()*31+1); ban = (int)(Math.random()*11+5); name =(char)(Math.random()*('Z'-'A'+1)+'A')+"학생"; stud[i].setName(name); stud[i].setNo(no); stud[i].setBan(ban); } } public void setRank() { for(int i = 0; i<stud.length;i++) { for(int j = 0; j<stud.length;j++) { rank = stud[i].getRank(); if(stud[i].getAvg()<stud[j].getAvg()) { stud[i].setRank(rank+1); } } } } public void toPrint() { for(int i = 0; i<stud.length;i++) { Stud st = stud[i]; kor = st.getKor(); eng = st.getEng(); math = st.getMath(); no = st.getNo(); ban = st.getBan(); name = st.getName(); avg = st.getAvg(); total = st.getTotal(); rank = st.getRank(); System.out.println("============================================================="); System.out.printf(" [%d등] ==> %s (3학년 %d반 %d번) 총점 : %d , 평균 : %6.2f\n",rank,name,ban,no,total,avg); System.out.printf("\t성적>> 국 : %d / 영 : %d /수 : %d\n", kor,eng,math); } System.out.println("============================================================="); } public void setArr() { for(int i = 0; i<stud.length;i++) { for(int j = i+1; j<stud.length;j++) { if(stud[i].getRank()>stud[j].getRank()) { Stud temp = stud[i]; stud[i] = stud[j]; stud[j] = temp; } } } } public static void main(String[] args) { new Ex01();} }
'1. JAVA > 1.3 문제' 카테고리의 다른 글
220419_JAVA_문제풀어보기(정보 입력프로그램) (0) 2022.04.19 220418_JAVA_문제풀어보기 (0) 2022.04.18 22041_JAVA_문제풀어보기(자판기프로그램2) (0) 2022.04.10 220403_JAVA_문제풀어보기(자판기프로그램1) (0) 2022.04.03 220305_JAVA_문제 풀어보기 (0) 2022.03.05