2017-03-16 58 views
1

我正在制作一个简单的工资计算器,由于某些原因,我的“税”不计算。当我运行程序时,他们只是在输出中显示$ 0。任何想法是什么造成这种情况?我在没有计算的行上评论“//不计算。显示$ 0”。计算不处理C++

#include <iostream> 
using namespace std; 

int main() 
// Parameters: None 
// Returns: Zero 
// Calls:  None 
{ 
int const hourly_wage = 16.78, overtime_rate = 25.17, social_security = 0.06, federal_income = 0.14, state_income = 0.05, union_dues = 10; 
int  gross_pay, hours_worked, number_of_dependents, ss_withheld, federal_withheld, state_withheld, net_pay, insurance, overtime_pay, again; 

cout << "This program will calculate payroll for an employee." << endl; 

    do 
    { 
     cout << "\n\nEnter the number of hours the employee worked: " << endl; 
     cin >> hours_worked; 
     if (hours_worked > 40) { 
      overtime_pay = (hours_worked - 40) * overtime_rate; 
      gross_pay = (40 * hourly_wage) + overtime_pay; 
     } 
     else { 
      gross_pay = hours_worked * hourly_wage; 
     } 

     cout << "\n\nEnter the number of dependents for employee: " << endl; 
     cin >> number_of_dependents; 

      if (number_of_dependents >= 3) { 
       insurance = 35; 
      } 
      else { 
       insurance = 0; 
      } 

      // Payroll Calculation 
      ss_withheld = gross_pay * social_security; 
      federal_withheld = gross_pay * federal_income; 
      state_withheld = gross_pay * state_income; 
      net_pay = gross_pay - (ss_withheld + federal_withheld + state_withheld + insurance + union_dues); 

      cout << "\n\nGross Pay:     $" << gross_pay << endl; 
      cout << "Social Security Withhholding: $" << ss_withheld << endl; // Not calculating. Shows $0 
      cout << "Federal Withholding:   $" << federal_withheld << endl; // Not calculating. Shows $0 
      cout << "State Withholding:    $" << state_withheld << endl; // Not calculating. Shows $0 
      cout << "Union Dues:     $" << union_dues << endl; 
      cout << "Insurance Deduction:   $" << insurance << endl; 
      cout << "Net Pay:      $" << net_pay << endl; 

      cout << "\nDo you want to do another employee(Y/N)? "; 
      cin >> again; 
    } while (again == 'y' || again == 'Y'); 

    cout << "\nHope they enjoy the money!" << endl; 

    return 0; 

}

+0

并非所有的显示0他们呢? –

+0

是的。 “ss_withheld,federal_withheld和state_withheld都计算为$ 0,其他都计算正常 –

+0

不知道什么是错,我会去运行并看到 –

回答

1

它看起来像你的双重价值创造INT常量。即。

#include "stdafx.h"; 

#include <iostream> 
using namespace std; 

int main() 
// Parameters: None 
// Returns: Zero 
// Calls:  None 
{ 
    int const union_dues = 10;  
    double const hourly_wage = 16.78, overtime_rate = 25.17, social_security = 0.06, federal_income = 0.14, state_income = 0.05; 
    double gross_pay, hours_worked, number_of_dependents, ss_withheld, federal_withheld, state_withheld, net_pay, insurance, overtime_pay, again; 


    cout << "This program will calculate payroll for an employee." << endl; 

    do { 
     cout << "\n\nEnter the number of hours the employee worked: " << endl; 
     cin >> hours_worked; 
     if (hours_worked > 40) { 
      overtime_pay = (hours_worked - 40) * overtime_rate; 
      gross_pay = (40 * hourly_wage) + overtime_pay; 
     } 
     else { 
      gross_pay = hours_worked * hourly_wage; 
     } 

     cout << "\n\nEnter the number of dependents for employee: " << endl; 
     cin >> number_of_dependents; 

     if (number_of_dependents >= 3) { 
      insurance = 35; 
     } 
     else { 
      insurance = 0; 
     } 

     // Payroll Calculation 
     ss_withheld = gross_pay * social_security; 
     federal_withheld = gross_pay * federal_income; 
     state_withheld = gross_pay * state_income; 
     net_pay = gross_pay - (ss_withheld + federal_withheld + state_withheld + insurance + union_dues); 

     cout << "\n\nGross Pay:     $" << gross_pay << endl; 
     cout << "Social Security Withhholding: $" << ss_withheld << endl; // Not calculating. Shows $0 
     cout << "Federal Withholding:   $" << federal_withheld << endl; // Not calculating. Shows $0 
     cout << "State Withholding:    $" << state_withheld << endl; // Not calculating. Shows $0 
     cout << "Union Dues:     $" << union_dues << endl; 
     cout << "Insurance Deduction:   $" << insurance << endl; 
     cout << "Net Pay:      $" << net_pay << endl; 

     cout << "\nDo you want to do another employee(Y/N)? "; 
     cin >> again; 
    } while (again == 'y' || again == 'Y'); 

    cout << "\nHope they enjoy the money!" << endl; 

    return 0; 
}