본문 바로가기

소스코드

[코딩습관잡기] - 2단계 (수정)

https://programmers-place.tistory.com/5
쌤에게 해당 글에 대한 피드백을 받고 아래 코드로 수정했다..ㅎㅎ
public class Main {

	public static void main(String[] args) {
		new Print().run();	
	}
}

 

public class Print {

	public void run() {	
		char grade = new Grade().run(new CheatingChk().run());
		System.out.println("학점은 "+grade+"입니다.");
	}
}

 

import java.util.Scanner;

public class CheatingChk {
	double score;
	public CheatingChk() {
		score = 0;
	}
	public double run() {	
		Scanner scan = new Scanner(System.in);
		System.out.print("부정행위 여부(O/X)>>");
		if(!scan.next().equals("O")) 
			score = new Input().run();		
		return score;
	}
}

 

import java.util.Scanner;

public class Input {
	
	public Input() {	
	}
	
	public double run() {
		Scanner scan = new Scanner(System.in);
		System.out.print("출석률 입력>>");
		int attendrate = scan.nextInt();
		System.out.print("총점 입력>>");
		int totalscore = scan.nextInt();
		scan.close();
		return new Driver(attendrate,totalscore).run();
	}
}

 

public class Driver {
	int attendrate;
	int totalscore;
	double total;
	
	public Driver(int att, int tot) {
		attendrate=att;
		totalscore=tot;
		total = 0;
	}
	
	public double run() {
		if(attendrate>79)
		calTotal();
		return total;
	}
	double calTotal() {
		return total = attendrate*0.2+totalscore*0.8;
	}	
}

 

public class Grade {
	char grade;
	
	public Grade() {
		grade='F';
	}
	
	public char run(double total) {	
			if(total>=90) grade = 'A';
			else if(total>=80) grade = 'B';
			else if(total>=70) grade = 'C';
			return grade;
	}		
}

 

좀 더 클래스단위로 쪼갰고 기존에 짰던 코드는 여기저기 왔다갔다가 하게 된다고 쌤한테 얘기를 들어서 다시 구성했다...ㅎㅎ