20211018 성적코드

DUUUPPAAN·2021년 10월 17일

·학원에서 진행한 성적 코드

-학원에서 성적 코드를 만들었었다. 그런데 if 안의 if 문을 쓰지 않고 같은 메소드로 +-0를 넣어주고 싶다고 적었었다. 그리고 그런 방식으로 코드를 구현해봤다. 물론, 그냥 if문 안에 if문으로 넣어주는 게 더 편할 수 있겠다 싶은 수준이었지만, 그래도 이런 방식으로도 시도해보고 싶었다.

package sungjuc;

import java.util.Scanner;

public class Sungjuk {

	public static void main(String[] args) {
		System.out.print("성적을 입력해주세요:> ");
		Scanner sc = new Scanner(System.in);
		int inputNum = sc.nextInt();
		MethodGather sg = new MethodGather();
		String grade = sg.ScoreCheck(inputNum);
		String gradePM = sg.gradeCheck(inputNum, grade);
		System.out.println("당신의 점수는 "+inputNum+"점 입니다.");
		System.out.println("당신의 학점은 "+gradePM+"입니다.");
	}

}

class MethodGather{
	String ScoreCheck(int var) {
		String grade="";
		
		if(var >=90 && var<101) {
			grade = "A";
		}else if(var>=80) {
			grade = "B";
		}else {
			grade = "C";
		}
		return grade;
	}
	
	String gradeCheck(int var, String grade) {
		String tenNum = "";
		String oneNum_1 = "8";
		String oneNum_2 = "4";
		String Num_1 = "";
		String Num_2 = "";
		
		if(var == 100) {
			grade += "+";
		}else if(grade =="A") {
			tenNum = "9";
			Num_1 = tenNum+oneNum_1;
			Num_2 = tenNum+oneNum_2;
			int range_1 = Integer.parseInt(Num_1);
			int range_2 = Integer.parseInt(Num_2);
			grade += this.opt(range_1, range_2, var);
		
		}else if(grade =="B"){
			tenNum = "8";
			Num_1 = tenNum+oneNum_1;
			Num_2 = tenNum+oneNum_2;
			int range_1 = Integer.parseInt(Num_1);
			int range_2 = Integer.parseInt(Num_2);
			grade += this.opt(range_1, range_2, var);
		}
		
		return grade;
	}
	
	String opt(int range_1, int range_2, int var) {
		String opt = "";
		if(var>=range_1) {
			opt +="+";
		}else if(var<=range_2) {
			opt +="-";
		}else{
			opt +="0";
		}
		return opt;
	}
}

-역시 예상대로 훨씬 더 복잡해졌지만, 내가 생각했던대로 구현은 됐다. 다만, 문제는 좀 더 간결하게 작성할 수는 없었나 하는 것이다. 그래도 일단 생각한대로 작성이 되었고 실제로 기능을 했기 때문에 나름 만족스러운 주말이다.

profile
비전공자란 이름으로 새로운 길을 가려 하는 신입

0개의 댓글