본문 바로가기

IT일반과목/java

예외처리 5 student라는곳에 예외처리를 해서 만들어보기

package jongkyu.controller;


import jongkyu.model.*;

import java.util.Scanner;


public class Controller {

Scanner sc = new Scanner(System.in);

Student s = new Student();//학생등록할거여서 미리 해놓았다.

public void main() {


while(true) {

System.out.println("===== 학생 키우기 =====");

System.out.println("1. 학생 등록");

System.out.println("2. 학생 상태보기");

System.out.println("3. 키우기");

System.out.print("선택 > ");

try {

int sel = sc.nextInt();


switch(sel) {

case 1 : insert(); break; //학생등록이여서 이렇게 했다.

case 2 : view(); break;

case 3 : manage(); break;

default : return; //그외에는 다 종료


}


}

catch (Exception e) {

System.out.println("종료!");

sc.nextLine();

}

}

}

public void insert() throws Exception {

System.out.print("학년 입력 > ");

s.setGrade(sc.nextInt()); //이렇게 바로 처리할 수도 있다.

System.out.print("학번 입력 >");

s.setsNum(sc.nextInt()); //s라는곳에 넣어주곘다.

System.out.print("이름 입력 >");

s.setName(sc.next());

System.out.print("성적 입력 >");

s.setPoint(sc.nextInt());

System.out.print("스트레스 지수 입력 > ");

s.setStress(sc.nextInt());

}

//설정용이니 세팅을 써줘야 한다.



public void view() {

if(s.getGrade()==0) {//메소드이므로 가로를 써줘야 한다.

System.out.println("학생이 등록되지 않았습니다.");

return;

}else {

System.out.println("학년 :"+s.getGrade());//원래 s.grade였는데 이걸이렇게 바꿨다.

System.out.println("학번 :"+s.getsNum());

System.out.println("이름 :"+s.getName());

System.out.println("성적 :"+s.getPoint());

System.out.println("스트레스 지수 :"+s.getStress());


}



}

public void manage() throws Exception {

while(true) {

System.out.println("1. 공부");


System.out.println("2. PC방");

System.out.println("3. 시험보기");

System.out.println("4. 먹기");

System.out.println("5. 담배");

System.out.print("선택 >");

int sel = sc.nextInt();

switch(sel) {

case 1 : s.study(); break;

case 2 : s.play(); break;

case 3 : s.test(); break;

case 4 : s.eat(); break;

case 5 : s.cigar(); break;

default : return;

}

if(s.getPoint()>=10000) {

System.out.println("장학생입니다. 프로그램 종료합니다.");

return;

}else if(s.getStress() >= 2000) {

System.out.println("스트레스과다로 사망했습니다.");

return;

}

}

}




}

=============================================================================
package jongkyu.model;

public class Student {
private int grade;
private int sNum;
private String name;
private int point;//시험점수는 50점부터
private int stress;//원래 갖고있으면서 살고있으니 100부터 시작
//입력할때 넣어주기로 하자.
//getter 
//하나는 값 읽어오는용 하나는 세팅하는용을 만들어보겠다.
//getter
public int getGrade() {
return grade;//grade의값을 리턴해준다. -> privat grade값을 리턴해준다.
}//getter
//불러올때는 getgrade를 쓰는데 리턴하고 그레이드이다. 현재값에 저장되어있는걸 반환해줘
//읽어오는 용이라고 생각하면 간단하다.
public int getsNum() {
return sNum;
}

public void setsNum(int sNum) {
this.sNum = sNum;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public int getPoint() {
return point;
}

public void setPoint(int point) {
this.point = point;
}

public int getStress() {
return stress;
}

public void setStress(int stress) {
this.stress = stress;
}

//setter
public void setGrade(int grade) {//가로안은 메소드변수 grade이고 클래스에있는 grade를 쓰고싶으니 
//grade같은경우 클래스에있는 걸 넣고싶기때문에 this라는걸썼다. this를 쓰면 클래스안에 grade를 불러오게 되어있다.
this.grade = grade;
//private에 grade를 넣고싶어서 this를 썼고 이걸 안쓴다면 가로안에있는 grade안에 넣어준다.
//이 클래스변수의 grade를 말하고싶다면 this를 써줘야한다.
}//setter
/*
* grade를 private로 선언을 한고 getter로해서 값을 리턴시킨후 쓰겠다고 해주면 된다.
* setter은 값을 
*/
public void cigar() {
stress -= 500;
}
public void study() {
stress +=500;
point -=10;//공부를 하면 성적이 감소된다.
}
public void play() {//pc방
stress -=100;
point +=50;
}
public void test() {
stress +=1000;
eat();//먹으면 스트레스가 감소한다.
}
public void eat() {
stress -= 1000;
}
/*
* 학생이니까 있어야되는것
*/
}

======================================================================

package jongkyu.run;

import jongkyu.controller.Controller;

public class Run {
public static void main(String[] args) {
Controller c = new Controller();
c.main();
}
}



'IT일반과목 > java' 카테고리의 다른 글

집공부  (0) 2018.07.31
JAVA 네트워크  (0) 2018.07.31
예외처리4 Exception 이랑 예외처리에 대해서 직접 메소드가 처리안할때  (0) 2018.07.31
예외처리3 finally까지 써보기  (0) 2018.07.31
예외처리2  (0) 2018.07.31