package netpay_review;
import java.util.Scanner;
// 실수령액을 구하는 프로그램
// 입력 : 성명, 직책(B:부장 , K:과장 , D:대리 , S:사원) , 야근시간
// 변수명: name,grade,night
// 처리 및 계산 : 직책코드에 해당하는 직책을 출력할 수 있어야 한다
// 야근 수당 = 야근시간 * 20000
// 공제액 = 총 받는 금액의 10%
// 실수령액 = 본봉 + 수당 - 공제액
// 본봉 테이블 : 부장 - 5000000
// 과장 - 4000000
// 대리 - 3000000
// 사원 - 2000000
public class Netpay_review_Run {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
String name;
String grade;
char gradecode;
int night;
int nightpay;
int tax;
int netpay;
int pay;
System.out.print("이름을 입력하세요. ");
name=sc.next();
System.out.print("직급코드를 입력하세요. "); // abcdefg ==> a ==> A
// 문자열 변환 : 영문대문자 변경 : toUpperCase(), 영문소문자 변경 : toLowerCase()
// 문자 1개만을 발췌 : charAt(인덱스 번지)
// grade=sc.next().toUpperCase();
grade=sc.next();
grade=grade.toUpperCase();
gradecode=grade.charAt(0);
System.out.println("직급: "+grade);
System.out.println("직급코드: "+gradecode);
System.out.print("야근시간을 입력하세요.");
night=sc.nextInt();
Netpay_review netpay_review=new Netpay_review(name, grade, night);
pay=netpay_review.paymethod();
nightpay=netpay_review.nightpaymethod(night);
netpay=netpay_review.netpaymethod();
grade=netpay_review.grademethod();
System.out.println(""+name+" "+netpay_review.grademethod()+"님의 이번달 월급은 "+netpay+"입니다.");
sc.close();
}
}
첫댓글 다양한 시도와 생각들이 좋습니다.
일단 paymethod()메소드와 grademethod()메소드부분이 중복되죠?... 그부분의 비교를 1번에 처리하면서 변수에 값을 넣어도 되겠네요.
분리된 계산들은 다 좋습니다.
47,48,50의 변수는 값을 받아두고 사용은 하지 않았군요. 체크해 보시고요.
52번에서 netpay_review.grademethod()로 직접받아도 되고, 50번에서 이미 사용했으니, grade변수로 사용해도 되겠죠~
앞으로 메소드 처리부분의 분리부분을 여러각도로 생각하게 될거예요. 수고하셨습니다.