20211018 성적코드

DUUUPPAAN·2021년 10월 17일
0

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

-학원에서 성적 코드를 만들었었다. 그런데 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개의 댓글

관련 채용 정보