2012-12-08 3 views
-1

이 메서드는 직원 데이터를 .txt 파일에서 가져 와서 해당 데이터를 사용하여 순 임금을 계산하는 큰 프로그램의 일부입니다. 나의 CalcPay 방법은 40 시간 이상 40 시간뿐만 아니라 < 시간까지 계산하지만, 40 시간 이상인 직원에게는 40 시간 이상 걸릴 때보 다 단 몇 시간에 임금을받는 것으로 나타났습니다. 그 (것)들에게 시간과 반을 ... 만드는 어떤 제안든지?메서드가 제대로 작동하지 않습니다.

public double CalcPay() 
    { 

     double pay = hoursWorked * hourlyWage; 
     double overTimeHours = hoursWorked - FULL_TIME; 

     if (overTimeHours > 0) 
     { 
      pay += overTimeHours * (hourlyWage * OVER_TIME_RATE); 
     } 
     double tax1 = pay * FED_TAX; 
     double tax2 = pay * STATE_TAX; 
     return ((pay - tax1) - tax2); 
    } 
+0

저는 직원 급여를 계산하는 코드를 작성해야한다고 생각합니다. – Euphoric

+0

글쎄, 그건 예의예요 :) 나는 임무를 수행하는 학생입니다. – BXL

+0

@ 행복감 나는 이것이 숙제라고 생각하고있다. – Alan

답변

1

나는 이런 식으로 뭔가를 할 것입니다. 많은 사람들이, 내가 출력이 초과 근무의 경우에 잘못이 발생 된 순서가 입력을 읽고 있던해야 같은 방법 작동 지적

public double CalcPay() 
    { 
     double regularHours = Math.Min(hoursWorked, FULL_TIME); 
     double overTimehours = Math.Max(hoursWorked - FULL_TIME, 0); 

     double regularPay = regularHours * hourlyWage; 
     double overTimePay = overTimehours * hourlyWage * OVER_TIME_RATE; 
     double pay = regularPay + overTimePay; 

     double tax1 = pay * FED_TAX; 
     double tax2 = pay * STATE_TAX; 
     return ((pay - tax1) - tax2); 
    } 
+0

도와 주셔서 감사합니다. 수정 된 방법을 내 프로그램에 넣었을 때 이전에 얻은 것과 같은 결과를 반환합니다. 그래서 나는 아직도 조금 길을 잃어버린다. – BXL

+0

아마도 수학이 잘못되어 프로그램의 수학이 옳은가요? 50 시간, $ 10/hr, 1.5 시간 초과로 예제를 시도했지만 $ 550이 있습니다. 그것은 $ 400 (40x10) + (10 * $ 10 * 1.5)이어야합니다. – Alan

+0

두 번째 생각에 입력/상수를 확인하십시오. 어쩌면 그 중 하나가 당신이 생각한 것이 아니겠습니까? – Alan

0

나는 문제를 해결했다. 도움을 주신 모든 분들께 감사드립니다.

관련 문제