과거⚰️

실습예제

아무루 2020. 12. 26. 18:54
package chap8_day03_실습1;

public class _MainTest {
	public static void main(String[] args) {
	ScoreList scoreList = new ScoreList();
		
		scoreList.addScore(new Score("홍길동", 100, 100, 99));
		scoreList.addScore(new Score("임꺽정", 88, 75, 91));
		scoreList.addScore(new Score("장길산", 65, 74, 69));
		scoreList.addScore(new Score("일지매", 85, 78, 91));
		scoreList.addScore(new Score("이몽룡", 89, 58, 73));
		
		System.out.println(scoreList);

	}	
}


package chap8_day03_실습1;

public class Score {
	public static int count;	// 객체가 생성될 때 마다 자동으로 1씩 증가시킬 변수
	private int no;				// 번호, 자동증가
	private String name;		// 이름
	private int java;			// java 점수
	private int jsp;			// jsp 점수
	private int spring;			// spring 점수
	private int total;			// 총점
	private double average;		// 평균
	private int rank = 1;		// 석차, 석차를 계산할 기억 장소의 초기치는 무조건 1로 한다.
	
	public Score() { }
	public Score(String name, int java, int jsp, int spring) {
		count += 1;
		no = count;
		this.name = name;
		this.java = java;
		this.jsp = jsp;
		this.spring = spring;
		total = java + jsp + spring;
		average = (double) total / 3;
	}
	
	public int getNo() {
		return no;
	}
	public void setNo(int no) {
		this.no = no;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public int getJava() {
		return java;
	}
	public void setJava(int java) {
		this.java = java;
	}
	public int getJsp() {
		return jsp;
	}
	public void setJsp(int jsp) {
		this.jsp = jsp;
	}
	public int getSpring() {
		return spring;
	}
	public void setSpring(int spring) {
		this.spring = spring;
	}
	public int getTotal() {
		return total;
	}
	public void setTotal(int total) {
		this.total = total;
	}
	public double getAverage() {
		return average;
	}
	public void setAverage(double average) {
		this.average = average;
	}
	public int getRank() {
		return rank;
	}
	public void setRank(int rank) {
		this.rank = rank;
	}
	
	@Override
	public String toString() {
		return String.format("%d %s %3d %3d %3d %3d %6.2f %d", no, name, java, jsp, spring, total, average, rank);
	}
	

}


package chap8_day03_실습1;

import java.util.ArrayList;

public class ScoreList {
	private ArrayList<Score> scoreList = new ArrayList<>();

	public ArrayList<Score> getScoreList() {
		return scoreList;
	}
	public void setScoreList(ArrayList<Score> scoreList) {
		this.scoreList = scoreList;
	}
	
	@Override // 마크를 붙여주면 확실히 확인가능하다. 
	public String toString() {
		String str = "";
		str += "===============================================================\n";
		str += "  번호  이름  java  jsp  spring  총점  평균  석차  \n";
		str += "===============================================================\n";
		
//		석차를 계산한다.
		for(int i=0 ; i<scoreList.size()-1 ; i++) {
			for(int j=i+1 ; j<scoreList.size() ; j++) {
				if(scoreList.get(i).getTotal() > scoreList.get(j).getTotal()) {
//					i번째 총점이 크면 j번째 석차를 증가시킨다.
					scoreList.get(j).setRank(scoreList.get(j).getRank() + 1);
				}
				if(scoreList.get(i).getTotal() < scoreList.get(j).getTotal()) {
//					j번째 총점이 크면 i번째 석차를 증가시킨다.
					scoreList.get(i).setRank(scoreList.get(i).getRank() + 1);
				}
			}
		}
		
		for(Score vo : scoreList) {
			str += vo + "\n";
		}
		
		str += "===============================================================\n";
		return str;
	}
	
//	ArrayList에 인수로 넘겨받은 성적을 추가하는 메소드
	public void addScore(Score vo) {
		scoreList.add(vo);
	}

}