2016-11-21 69 views
-7

我正在編寫這個程序來計算員工工作的小時數。如果員工的工作時間超過40小時,那麼他將獲得額外的時間,並且每過40小時就會有一半的時間。我的問題是涉及到輸出。在輸出中,它顯示銷售稅,聯邦稅,總收入和淨額;然而,如果員工認爲他工作時間少於40小時,則所有事情都可以正常顯示;然而,一旦員工投入,他出於某種原因已經工作了超過40小時,它顯示了稅收,淨額,毛額爲0.00。陣列沒有顯示正確的輸出

例如,如果小於40,將顯示以下內容。

F-名稱:L-名稱:HorsWrked:HrlyRate:TimeHalf:S-稅:F-稅:FICA:毛重:

員工最後39.00 22.00 1.50 60.06 128.70 34.32 858.00

如果超過40,正在顯示以下內容。

F-名稱:L-名稱:HorsWrked:HrlyRate:TimeHalf:S-稅:F-稅:FICA:毛重:

員工最後45.00 22.00 1.50 0.00 0.00 0.00 0.00

任何提示,提示,建議是appreciated.``

#include <iostream> 
#include <iomanip> 

using namespace std; 

int main() 



{ 
//Set variables 
int const size = 2; 
double timeHalf = 0.0, hoursWorked[size], gross[size], net[size], hourlyRate[size], totalTax; 
string firstName[size], lastName[size]; 
const double stateTax = 0.07, fedTax = 0.15, fica = 0.04; 
double sTax = 0.0, fTax = 0.0, fiTax; 




for(int i = 0; i < size; i++)   //Initialize for loop 
{ 

    cout<<"Please enter your first name? " <<endl;   //Display first name 
    cin>>firstName[i]; 
    cout<<"Please enter your last name? " <<endl;   //Display last name 
    cin>>lastName[i]; 
    cout<<"How many hours did you work? " <<endl;   //Dispaly hours worked 
    cin>>hoursWorked[i]; 
    cout<<"What's the hourly rate? " <<endl;    //Display hourly rate 
    cin>>hourlyRate[i]; 




    if(hoursWorked[i] < 40) 
    { 
     gross[i] = hoursWorked[i] * hourlyRate[i]; 

    } 


    else if(hoursWorked[i] > 40) 
    { 
     gross[i] = hoursWorked[i] * (hourlyRate[i] * timeHalf); 


    } 
} 

cout<<" \t\tXYX \n "; 
cout<<"F-Name: L-Name: HorsWrked: HrlyRate: TimeHalf: S-Tax: F-Tax: Fica: Gross: Net: \n"; 

for(int i = 0; i < size; i++) 
{ 

    sTax = gross[i] * stateTax; 
    fTax = gross[i] * fedTax; 
    fiTax = gross[i] * fica; 
    totalTax = gross[i] * (stateTax + fedTax + fica); 
    timeHalf = 1.5; 
    net[i] = gross[i] - totalTax; 


    cout<<firstName[i]<<"\t " << setw(10) <<fixed <<setprecision(2) << lastName[i]<<"\t " 
    << hoursWorked[i]<<"\t " <<hourlyRate[i] <<"\t " <<timeHalf<<"\t " <<sTax <<"\t " 
    <<fTax <<"\t " <<fiTax <<"\t " <<gross[i] <<"\t " <<net[i] <<"\t "; 
} 
} 
+0

你確定你給'timeHalf'設置了一個值,因爲它確實看起來不像它。另外,如果工作時間爲ARE 40,僅高於或低於 – Tas

+0

,如果員工工作時間超過40小時,那麼特殊處理的前40小時還是特殊處理,還是隻有40以上的小時數需要特殊處理? – Jonas

+0

你會得到「額外的時間和一半通過40小時的每一小時」,但你在所有的時間裏都花了一半時間。 – molbdnilo

回答

0

因爲在你的條件,你檢查if(hoursWorked[i] < 40)if(hoursWorked[i] > 40),但對於if(hoursWorked[i] == 40)沒有條件。您可能想在這些條件之一(>=<=)上使用 - 或 - 等號運算符。