Java

[Java-๊ธฐ์ดˆ] ์‹ค์Šต (ํ•ฉ๊ณ„, ํ‰๊ท , ์„์ฐจ ์‚ฐ์ถœ ํ”„๋กœ๊ทธ๋žจ)

์ฝ”๋”ฉํ•˜๋Š” ๋ถ•์–ด 2021. 2. 24. 04:41
๋ฐ˜์‘ํ˜•

Subject.java

package subject;

public class Subject {
	protected int kor, eng, math, sum;
	protected double avg;

	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 double getAvg() {
		return avg;
	}

	public void setAvg(double avg) {
		this.avg = avg;
	}

	public Subject(int kor, int eng, int math) {
		this.kor = kor;
		this.eng = eng;
		this.math = math;
		this.sum = kor + eng + math;
		this.avg = Math.round((double) sum / 3);
	}

	public void sum() {
		this.sum = kor + eng + math;
	}

	public void average() {
		this.avg = Math.round((double)sum / 3);
	}

	public void showSubjectInfo() {
		System.out.println("*๊ธฐ๋ณธ๊ต๊ณผ* ๊ตญ์–ด:" + kor + ", ์˜์–ด:" + eng + ", ์ˆ˜ํ•™:" + math + " | [ํ•ฉ๊ณ„:" + sum + ", ํ‰๊ท :" + avg + "]");
	}
}

 

 

LiterarySubject.java

package subject;

public class LiterarySubject extends Subject {
	private int his;

	public int getHis() {
		return his;
	}

	public void setHis(int his) {
		this.his = his;
	}

	public LiterarySubject(int kor, int eng, int math, int his) {
		super(kor, eng, math);
		this.his = his;
		this.sum = kor + eng + math + his;
		this.avg = Math.round((double) sum / 4);
	}

	@Override
	public void sum() {
		this.sum = kor + eng + math + his;
	}

	@Override
	public void average() {
		this.avg = Math.round((double)sum / 4);
	}

	@Override
	public void showSubjectInfo() {
		System.out.println("*๊ธฐ๋ณธ๊ต๊ณผ* ๊ตญ์–ด:" + kor + ", ์˜์–ด:" + eng + ", ์ˆ˜ํ•™:" + math + " | *๋ฌธ๊ณผ ๊ต๊ณผ* ์—ญ์‚ฌ:" + his + " | [ํ•ฉ๊ณ„:"
				+ sum + ", ํ‰๊ท :" + avg + "]");
	}
}

 

 

ScienceSubject.java

package subject;

public class ScienceSubject extends Subject {
	private int phy, chemi;

	public int getPhy() {
		return phy;
	}

	public void setPhy(int phy) {
		this.phy = phy;
	}

	public int getChemi() {
		return chemi;
	}

	public void setChemi(int chemi) {
		this.chemi = chemi;
	}

	public ScienceSubject(int kor, int eng, int math, int phy, int chemi) {
		super(kor, eng, math);
		this.phy = phy;
		this.chemi = chemi;
		this.sum = kor + eng + math + phy + chemi;
		this.avg = Math.round((double) sum / 5);
	}

	@Override
	public void sum() {
		this.sum = kor + eng + math + phy + chemi;
	}

	@Override
	public void average() {
		this.avg = Math.round((double)sum / 5);
	}

	@Override
	public void showSubjectInfo() {
		System.out.println("*๊ธฐ๋ณธ๊ต๊ณผ* ๊ตญ์–ด:" + kor + ", ์˜์–ด:" + eng + ", ์ˆ˜ํ•™:" + math + " | *์ด๊ณผ ๊ต๊ณผ* ๋ฌผ๋ฆฌ:" + phy + ", ํ™”ํ•™:"
				+ chemi + " | [ํ•ฉ๊ณ„:" + sum + ", ํ‰๊ท :" + avg + "]");
	}
}

 

 

SubjectTest.java

package subject;

import java.util.ArrayList;

public class SubjectTest {
	public static void main(String[] args) {
		ArrayList<Subject> list = new ArrayList<Subject>();

		list.add(new Subject(90, 80, 100));
		list.add(new ScienceSubject(80, 80, 100, 80, 90));
		list.add(new LiterarySubject(80, 70, 75, 86));

		for (int i = 0; i < list.size(); i++) {
			list.get(i).showSubjectInfo();
			System.out.println();
		}
	}
}

<๊ฒฐ๊ณผ๊ฐ’>

โ€‹

โ€‹

 

Student.java

package subject;

public class Student {
	int studentNum;
	Subject subject;
	int rank = 1;

	public Student() {
	}

	public Student(int studentNum, int kor, int eng, int math) {
		this.studentNum = studentNum;
		this.subject = new Subject(kor, eng, math);
	}

	public Student(int studentNum, Subject subject) {
		this.studentNum = studentNum;
		this.subject = subject;
	}
}

 

 

CalcRank.java

package subject;

import java.util.ArrayList;

public class CalcRank {

	public ArrayList<Student> calcRank(ArrayList<Student> list) {
		int[] rank = new int[3];
		int[] avg = new int[3];
		for (int i = 0; i < 3; i++) {
			avg[i] = (int) list.get(i).subject.getAvg();
		}
		for (int i = 0; i < 3; i++) {
			rank[i] = 1;
			for (int j = 0; j < avg.length; j++) {
				if (avg[i] < avg[j])
					++rank[i];
			}
		}
		for (int i = 0; i < 3; i++) {
			list.get(i).rank = rank[i];
		}
		return list;
	}
}

 

 

Main.java

package subject;

import java.util.ArrayList;

public class Main {
	public static void main(String[] args) {
		ArrayList<Student> list = new ArrayList<Student>();

		list.add(new Student(1, 90, 90, 90));
		list.add(new Student(2, new Subject(88, 97, 90)));
		list.add(new Student(3, 70, 70, 70));

		CalcRank calc = new CalcRank();
		list = calc.calcRank(list);

		for (int i = 0; i < list.size(); i++) {
			System.out.println((i + 1) + "๋ฒˆ ํ•™์ƒ : ");
			list.get(i).subject.showSubjectInfo();
			System.out.println("์„์ฐจ : " + list.get(i).rank);
			System.out.println();
		}
	}
}

<๊ฒฐ๊ณผ๊ฐ’>

 

๋ฐ˜์‘ํ˜•