업무시간 때 졸려서 잠도 깰겸 재미삼아 만들어 봄.

 

1. 기본 년 단위이다.

2. 상여금을 포함해서 연봉 인상률에 적용하거나 상여금은 제외하고 적용할수도 있다.

3. 기본 인상율은 3%이고 상여금을 몇회 이상 받았을 경우 연봉 인상률이 1~3% 더 증가한다.

(상여금 수령여부는 그냥 랜덤으로 처리했다.)

4. 퇴직금은 퇴사하는 해의 평균월급을 산정해 일한 기간만큼 지급한다.

 

 

1. CLASS

import java.util.Scanner;


public class t0320_1124 {

  static int moGu;


  public static void main(String[] arg){
    Scanner sc = new Scanner(System.in);
  
    System.out.print("입사년도 (단위 년) : ");
    int inYear = sc.nextInt();
    System.out.print("초봉(단위 천만원) : ");
    int mo = sc.nextInt();
    System.out.print("상여금 포함여부(0:포함, 1:비포함) : ");
    moGu = sc.nextInt();
    System.out.print("근속 년수 (단위 년): ");
    int year = sc.nextInt();
  
    int nMo = 0;

    int totMo = 0;
    int totOut = 0;

 

    for(int i = 0; i < year; i++){
      int num[] = new int[12];


      int j = 0;
      int k = 0;

      int addNum = 0;
      nMo = 0;


      System.out.println("\n" + (i + 1) + "년차 기본연봉 : " + mo + "만원");

      while(j < 12){
        int ran = (int)(Math.random() * 100 + 1);
        // int ran = (int)(Math.random() * 4);
        System.out.print("|" + (int)(j + 1) + "월| "); 
        // System.out.print("확율 : " + ran + "% "); // 매달 성과금 받을 확율.


        if(ran >= 80){
          num[j] = 50;
          k++;
        }else if(ran > 80 && ran <= 60){
          num[j] = 30;
          k++;
        }else if(ran < 60 && ran > 40){
          num[j] = 10;
          k++;
        }else{
          num[j] = 0;
        }
        // System.out.println((i + 1) + "년 " + j + "월 순위 " + (num[j] == 0? "없음" : num[j]));
        System.out.print("성과급 : " + (num[j] == 0? "없음" : (num[j]) + "만원") + ", ");
        nMo += num[j];
        j++;
    
        if(j == 6){
          System.out.println("");
        }
      }
      addNum = (k < 5 ? 0 : (k < 7 && k >= 5) ? 1 : (k < 9 && k >= 7) ? 2 : 3);


      try{
        totMo += moGu == 0 ? (mo += nMo)  : (moGu == 1 ? mo + nMo : null);

      }catch(Exception e){

        for (int l = 0; l < 100; l++) System.out.println();

        System.err.print("연봉인상율에 상여금 포함여부는 '0'과 '1'만 입력 가능!");

        return;

      }

 

      System.out.println("\n" + inYear + "년도 인센티브 : " + k + "회, 연봉증가율 " + (addNum + 3) + "% 증가(기본 3%), " + (i + 1) + "년차에 지급한 연봉 : " + (mo + (moGu == 1? nMo : 0)) + "만원");


      if(i != year - 1){
        mo += mo * ((3 + addNum) * 0.01);
      }
      inYear++;
    }
    totOut = ((moGu == 0 ? mo : (mo + nMo)) / 12) * year;
    System.out.println("\n" + year + "년동안 받은 총 급여액 : " + totMo + "만원, 퇴사년도 : " + inYear + "년, 퇴직금 : " + totOut + "만원");
  }
}

 

 

2. RUN

 

입사년도 (단위 년) : 2010
초봉(단위 천만원) : 3000
상여금 포함여부(0:포함, 1:비포함) : 1
근속 년수 (단위 년): 4

 

1년차 기본연봉 : 3000만원
|1월| 성과급 : 50만원, |2월| 성과급 : 없음, |3월| 성과급 : 50만원, |4월| 성과급 : 50만원, |5월| 성과급 : 50만원, |6월| 성과급 : 10만원,
|7월| 성과급 : 없음, |8월| 성과급 : 50만원, |9월| 성과급 : 50만원, |10월| 성과급 : 10만원, |11월| 성과급 : 없음, |12월| 성과급 : 없음,
2010년도 인센티브 : 8회, 연봉증가율 5% 증가(기본 3%), 1년차에 지급한 연봉 : 3320만원

 

2년차 기본연봉 : 3150만원
|1월| 성과급 : 없음, |2월| 성과급 : 10만원, |3월| 성과급 : 없음, |4월| 성과급 : 없음, |5월| 성과급 : 없음, |6월| 성과급 : 없음,
|7월| 성과급 : 50만원, |8월| 성과급 : 없음, |9월| 성과급 : 없음, |10월| 성과급 : 50만원, |11월| 성과급 : 없음, |12월| 성과급 : 없음,
2011년도 인센티브 : 3회, 연봉증가율 3% 증가(기본 3%), 2년차에 지급한 연봉 : 3260만원

 

3년차 기본연봉 : 3244만원
|1월| 성과급 : 없음, |2월| 성과급 : 50만원, |3월| 성과급 : 없음, |4월| 성과급 : 없음, |5월| 성과급 : 50만원, |6월| 성과급 : 없음,
|7월| 성과급 : 없음, |8월| 성과급 : 50만원, |9월| 성과급 : 없음, |10월| 성과급 : 없음, |11월| 성과급 : 50만원, |12월| 성과급 : 없음,
2012년도 인센티브 : 4회, 연봉증가율 3% 증가(기본 3%), 3년차에 지급한 연봉 : 3444만원

 

4년차 기본연봉 : 3341만원
|1월| 성과급 : 없음, |2월| 성과급 : 50만원, |3월| 성과급 : 없음, |4월| 성과급 : 10만원, |5월| 성과급 : 없음, |6월| 성과급 : 없음,
|7월| 성과급 : 50만원, |8월| 성과급 : 없음, |9월| 성과급 : 없음, |10월| 성과급 : 없음, |11월| 성과급 : 없음, |12월| 성과급 : 10만원,
2013년도 인센티브 : 4회, 연봉증가율 3% 증가(기본 3%), 4년차에 지급한 연봉 : 3461만원

 

4년동안 받은 총 급여액 : 13485만원, 퇴사년도 : 2014년, 퇴직금 : 1152만원


 

'course > 자바' 카테고리의 다른 글

간단한 가변인자 활용법.  (0) 2017.03.31
지저분한 파일 Move  (0) 2017.02.26
객체 상속에 대한 간단한 예제..  (0) 2016.10.12