ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [JAVA/자바] 학점계산기 예제
    Language/Java 2018. 2. 24. 13:50
    반응형

    학점 계산기 


    만들고 싶은 기능

    1. 100점 만점 기준

     0보다 작거나 100보다 큰 값을 넣을수 없게 하고 싶다.

    2. 점수 입력시 문자를 입력하면 재입력을 요청 한다.

    3. 총점으로 평균을 구하여 등급을 얻고 싶다.


    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    import java.io.*;
     
    class GradeCalculator{    // 학점 계산기
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int total;
        
        // 입력
        void input(String subject){
            System.out.print(subject + " : ");
            try{
                String line = br.readLine();
                line = line.trim();
                int point = Integer.parseInt(line);
                if(point < 0 || point > 100){
                    System.out.println("점수가 0보다 작거나 100보다 클 수 없습니다.");
                    input(subject);
                }else{
                    total += point;
                }
            }catch(IOException ioe){
            }catch(NumberFormatException nfe){
                System.out.println("숫자만을 입력해주세요.");
                input(subject);
            }
        }
        
        // 출력
        void output(){
            int avg = total/4;
            String grade = "";
            switch(avg/10){
                case 10: grade = "천재"break;
                case 9: grade = "A"break;
                case 8: grade = "B"break;
                case 7: grade = "C"break;
                case 6: grade = "D"break;
                default : grade = "F";
            }
            System.out.println("당신의 학점은 "+ grade +" 입니다.");
            System.out.println("(총점 : " + total + " , 평균 : " + avg + ")");
        }
     
        public static void main(String[] args){
            GradeCalculator gc = new GradeCalculator();
            System.out.println("학점 계산기 입니다. 점수를 입력해 주세요.");
            gc.input("국어");
            gc.input("수학");
            gc.input("영어");
            gc.input("자바");
            gc.output();
        }
    }
    cs



    String line = br.readLine();

    은 입력을 받는 로직이다.

    line = line.trim();

    은 입력 받은 내용들의 들여쓰기 ( ,    ) (=스페이스바 , 탭)

    을 예외 하는 로직이다.

    Integer.parseInt(line);

    은 입력받은 문자를 정수형으로 파싱(분석/번역/변환) 해준다.

    try{}catch(NumberFormatException nfe){}

    은 입력받은 내용이 숫자가 아닐경우 발생하는 예외내용 이다.

    과목을 추가하거나 제거 하려는 경우

    main메소드의 gc.input("과목"); 을 수정하면 된다.


    참고 링크 ↓

    1. BufferedReader 이 무엇인지 알고 싶다.

    2. try{}catch(){} Exception 이 무엇인지 알고 싶다.

    3. if(){}else{} , switch 가 무엇인지 알고 싶다.

    반응형
Designed by Tistory.