IT/Programming / / 2023. 4. 21. 17:32

[JAVA] Package를 활용한 성적 관리 클래스 예제

반응형
package pcksrc;

public class student {
	private String name;
	private int kr;
	private int en;
	private double avg;
	private char grade;
	
	public student(){}
	public student(String name, int kr, int en){
		setName(name);
		setKr(kr);
		setEn(en);
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public int getKr() {
		return kr;
	}
	public void setKr(int kr) {
		if(kr > 0 && kr <= 100) this.kr = kr;
		else this.kr = 0;
		setAvg();
	}
	public int getEn() {
		return en;
	}
	public void setEn(int en) {
		if(en > 0 && en <= 100) this.en = en;
		else this.en = 0;
		setAvg();
	}
	public double getAvg() {
		return avg;
	}
	private void setAvg() {
		this.avg = (kr+en)/2;
		setGrade();
	}
	public char getGrade() {
		return grade;
	}
	private void setGrade() {
		if(avg>90.0) this.grade = 'A';
		else if(avg>80) this.grade = 'B';
		else if(avg>70) this.grade = 'C';
		else if(avg>60) this.grade = 'D';
		else this.grade = 'F';
	}
	
}

 


 

package pckmain;

import javax.swing.JOptionPane;

import pcksrc.student;
/*
 * pcksrc에 student클래스 선언
 * 	필드는 모두 private
 * 		- 이름, 국어, 영어, 평균 , 등급..
 *  멤버 메소드
 *  	- 생성자
 *  		이름, 국어 , 영어를 넣고 생성할 수 있게..
 *  	- setter,getter..
 *  		set : setName. setKr : 0이상 100이하만 저장, setEn : 0이상  100이하만 저장
 *  		setAvg : 
 *  		setGrade : 꼼수 부리지 못하게.. 국어와 영어점수에 결정되야한다. 사용자 접근 막아야함
 *  	
 *  		get : 
 *  			getName, getKr, getEn, getAvg, getGrade.. 
 * 
 * 		- main 클래스 Quiz01에서 메뉴 생성
 * 			1. 등록  2. 보기 - 이름, 평균, 등급..  3. 합격확인(평균 60이상이면..) 4. 종료 
 */

public class Quiz01 {
	public static void main(String[] args) {
		String name = "";
		int kr = 0 ;
		int en = 0 ;
		
		while (true) {
			String tmp = "1. 등록\n2. 보기\n3. 합격확인\n4. 종료\n";
			tmp = JOptionPane.showInputDialog(tmp);
			int tmp2 = Integer.parseInt(tmp);
			student st = new student(name, kr, en);
			
			switch (tmp2) { //tmp2.equals("1")방식 사용 가능...
			case 1:
				tmp = JOptionPane.showInputDialog("이름을 입력하세요.");
				name = tmp;
				tmp = JOptionPane.showInputDialog("국어점수를 입력하세요.");
				kr = Integer.parseInt(tmp);
				tmp = JOptionPane.showInputDialog("영어점수를 입력하세요.");
				en = Integer.parseInt(tmp);
				continue;
			case 2:
				tmp = "이름 : "+st.getName()  + "\n평균 : "+st.getAvg() + "\n등급 : "+st.getGrade()+"\n";
				JOptionPane.showMessageDialog(null, tmp);
				continue;
			case 3:
				if(st.getAvg() > 60) JOptionPane.showMessageDialog(null, "합격입니다~");
				else JOptionPane.showMessageDialog(null, "불합격입니다.");
				continue;
			case 4:
				JOptionPane.showMessageDialog(null, "종료합니다.");
				return;
			}
		}

	}

}
반응형
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유