get,set이용해서 성적입력 Ver2

개발/코딩 2013. 10. 2. 17:37

=========메인 함수===========

 

package oop.instance;
import java.util.Scanner;

public class Program2{
 public static void main(String[] args) {
  Record record = new Record();
  int total = 0;
  float avg = 0;
  int menu = 0;
  Scanner a = new Scanner(System.in);
  Scanner in = new Scanner(System.in);
  뿅:while (true) {
    
   switch (RecordView.inputMenu()) {
   
   case 1:
    RecordView.inputRecord(record);
    break;

   case 2:
    RecordView.printRecord(record);
    break;
    
   case 3:
    System.out.println("종료됩니다");
    break 뿅;
    
   default:
    System.out.println("입력이 잘못됐습니다. 다시 입력하세요");
   }
  }
 }
}

 

 

=============레코트 뷰===========================

package oop.instance;
import java.util.Scanner;


public class RecordView {
 private Record record;
 public static int inputMenu(){
  int menu;
  Scanner in = new Scanner(System.in);
  System.out.println("┌─────────────────────────────┐");
  System.out.println("│           메인 메뉴             │");
  System.out.println("└─────────────────────────────┘");
  System.out.println("1.성적 입력");
  System.out.println("2.성적 출력");
  System.out.println("3.종료");
  System.out.print("선택>");
  menu = in.nextInt();
  return menu;
 }

 public static void inputRecord(Record record){
  int kor,eng,math;
  Scanner a = new Scanner(System.in);
  System.out.println("┌─────────────────────────────┐");
  System.out.println("│           성적 입력             │");
  System.out.println("└─────────────────────────────┘");

  do {
   System.out.print("국어:");
   kor = a.nextInt();

   if (kor < 0 || kor > 100)
    System.out.println("성적 범위를 벗어났습니다,다시 입력하세요");
  } while (kor < 0 || kor > 100);

  do {
   System.out.print("영어:");
   eng = a.nextInt();

   if (eng < 0 || eng > 100)
    System.out.println("성적 범위를 벗어났습니다,다시 입력하세요");
  } while (eng < 0 || eng > 100);

  do {
   System.out.print("수학:");
   math = a.nextInt();

   if (math < 0 || math > 100)
    System.out.println("성적 범위를 벗어났습니다,다시 입력하세요");
  } while (math < 0 ||math > 100);

  record.setKor(kor); //record는 객체, 값을 담을수 있는 공간
  record.setEng(eng); //record에 eng을 세팅해줄래?(eng)값으로
  record.setMath(math); //record.math(30);으로 해도 되는데, 구조 바뀔까바
 }
 
 public static void printRecord(Record record){
  int total = record.total(); //다른클래스의 이름을 변경(kor=>kor1)하면 여기에서만 오류 날 수 있도록(?)
  float avg = total / 3.0f;    
  System.out.println("┌─────────────────────────────┐");
  System.out.println("│           성적 출력              │");
  System.out.println("├────┬────┬────┬────┬────┬────┤");
  System.out.println("│ 번호 │ 국어 │ 영어 │ 수학 │ 총점 │ 평균 │");
  for (int i = 0; i < 3; i++) {
   System.out.println("├────┼────┼────┼────┼────┼────┤");
   System.out.printf("│%3d │%3d │%3d │%3d │%3d │%6.2f │\n",i + 1,
 record.getKor(), record.getEng(),record.getMath(), total, avg);
  }       //Racord 클래스에 과목(값)을 얻어주라는 뜻.get
  System.out.println("└────┴────┴────┴────┴────┴────┘"); 
 }
}
 

=====================레코트 클래스=======================

package oop.instance; //코드의 캡슐화

public class Record {
  int kor;
  int eng;
  int math;
 

 

 public int total() {
  return this.kor + this.eng + this.math;
 }

 public void setKor(int kor){
  this.kor=kor;
 }
 public int getKor() {
  return this.kor;
 }
 public void setEng(int eng){
  this.eng=eng;
 }
 public int getEng() {
  return this.eng;
 }
 public void setMath(int math){
  this.math=math;
 }
 public int getMath() {
  return this.math;
 }
}
//static 을 지우면 인스턴스 함수(객체 함수)가 된다

 

 

 

 

 

 

'개발 > 코딩' 카테고리의 다른 글

그림 파일불러오기  (0) 2013.10.10
캡슐 이해 (오목)  (0) 2013.10.07
상속(예제)  (0) 2013.10.01
get,set이용해서 성적입력.  (0) 2013.10.01
입력 단어와 일치하면 그 라인에 있는 문자 출력하기(자막)  (0) 2013.09.30