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;
}
}
좀 더 클래스단위로 쪼갰고 기존에 짰던 코드는 여기저기 왔다갔다가 하게 된다고 쌤한테 얘기를 들어서 다시 구성했다...ㅎㅎ
'소스코드' 카테고리의 다른 글
jdbc 이클립스 - db 연동 (mysql/sqlite/oracle) (0) | 2022.12.30 |
---|---|
[미니프로젝트] 시나리오01 커피 주문프로그램 (0) | 2022.09.22 |
[코딩습관잡기] - 2.9단계 (0) | 2022.09.19 |
[JAVA 코딩습관잡기] 2단계 (2) | 2022.09.16 |
[주말과제] JAVA 클래스배열을 이용한 연락처입력프로그램 (0) | 2022.09.05 |