2017-12-12 6 views
-1

5人の従業員全員のグロスペイの合計を取得するにはどうすればよいですか?私はオブジェクトの作成を含むすべてを試しましたが、うまくいかないようです。また、すべてのデータをEmpDataという1つの配列に格納する必要がありますので、変更することはできません。私は援助が必要です。これは私が作成したコードで、これまで実行され正常に動作しています。クラスオブジェクトを使用する配列の合計

#include<iostream> 

using namespace std; 
class Employee { 
private: 
    double hourswrk; 
    double payrate; 
    double grosspay; 
    int empno; 
    char empname[20]; 
    double netpay; 
    double tax; 
    double overt; 
    double overtime; 
    double taxdeduct; 

public: 
    void getdetails(); 
    void calculatepay(); 
    void showdetails(); 
}; 
void Employee::getdetails() 
{ 
    cout << "\nEnter employee name:\n"; 
    cin >> empname; 
    cout << "\nEnter employee number:\n"; 
    cin >> empno; 
    cout << "Enter hours worked:"; 
    cin >> hourswrk; 
    cout << "Enter rate of pay"; 
    cin >> payrate; 
} 
void Employee::calculatepay() 
{ 
    tax = 0.25; 
    overt = 1.5; 
    if(hourswrk >= 60) 
    { 
     grosspay = 0; 
     netpay = 0; 
     taxdeduct = 0; 

     cout << "You have exceeded the amount of hours!"; 
    } 
    else if(hourswrk <= 40) 
    { 
     grosspay = hourswrk * payrate; 
    } 
    else if(hourswrk > 40 && hourswrk < 60) 
    { 
     overtime = hourswrk - 40; 
     grosspay = overt * payrate*overtime + hourswrk * payrate; 
    } 
    taxdeduct = tax * grosspay; 
    netpay = grosspay - taxdeduct; 
} 

void Employee::showdetails() 
{ 
    cout << "Employee Payslip\n"; 
    cout << "Name: " << empname; 
    cout << "Employee number:" << empno; 
    cout << "Basic Salary" << payrate; 
    cout << "Hours work" << hourswrk; 
    cout << "Grosspay" << grosspay; 
    cout << "Tax: " << taxdeduct; 
    cout << "Net Salary" << netpay; 
    cout << endl; 
} 

int main() 
{ 
    Employee EmpData[5]; 
    int i; 
    double hourswrk; 
    double payrate; 
    double grosspay; 
    int empno; 
    char empname[20]; 
    double netpay; 
    double tax = 0.25; 
    double taxdeduct; 
    double overt = 1.5; 
    double overtime; 

    for(int i = 0; i < 5; i++) 
    { 
     EmpData[i].getdetails(); 
     EmpData[i].calculatepay(); 
     EmpData[i].showdetails(); 
    } 
    system("pause"); 
    return 0; 
} 
+0

に追加された入力totgrosspayはすべての時間を持つグローバル変数を追加しましたか? –

+0

gah!書式設定してください –

+0

いいえ、エラーはありません、私はちょうど5人すべての従業員によって生成された総グロスペイを見つける必要があります – Naya

答えて

1

は、私はちょうどあなたがエラーがありますgrosspaygrosspaytotgrosspay

#include<iostream> 
    long totgrosspay=0; 
    using namespace std; 
    class Employee { 
    private: 
     long grosspay=0; 
     double hourswrk; 
     double payrate; 
     int empno; 
     char empname[20]; 
     double netpay; 
     double tax; 
     double overt; 
     double overtime; 
     double taxdeduct; 

    public: 
     void getdetails(); 
     void calculatepay(); 
     void showdetails(); 

    }; 
    void Employee::getdetails() 
    { 
     cout << "\nEnter employee name:\n"; 
     cin >> empname; 
     cout << "\nEnter employee number:\n"; 
     cin >> empno; 
     cout << "Enter hours worked:"; 
     cin >> hourswrk; 
     cout << "Enter rate of pay"; 
     cin >> payrate; 

    } 
    void Employee::calculatepay() 
    { 
     tax = 0.25; 
     overt = 1.5; 
     if(hourswrk >= 60) 
     { 
      grosspay = 0; 
      netpay = 0; 
      taxdeduct = 0; 

      cout << "You have exceeded the amount of hours!"; 
     } 
     else if(hourswrk <= 40) 
     { 
      grosspay = hourswrk * payrate; 
     } 
     else if(hourswrk > 40 && hourswrk < 60) 
     { 
      overtime = hourswrk - 40; 
      grosspay = overt * payrate*overtime + hourswrk * payrate; 
     } 
     taxdeduct = tax * grosspay; 
     netpay = grosspay - taxdeduct; 
     totgrosspay= totgrosspay+grosspay; 
    } 

    void Employee::showdetails() 
    { 
     cout << "Employee Payslip\n"; 
     cout << "Name: " << empname; 
     cout << "Employee number:" << empno; 
     cout << "Basic Salary" << payrate; 
     cout << "Hours work" << hourswrk; 
     cout << "Grosspay" << grosspay; 
     cout << "Tax: " << taxdeduct; 
     cout << "Net Salary" << netpay; 
     cout << endl; 
    } 

    int main() 
    { 
     Employee EmpData[5]; 
     int i; 

     for(int i = 0; i < 5; i++) 
     { 
      EmpData[i].getdetails(); 
      EmpData[i].calculatepay(); 
      EmpData[i].showdetails(); 

     } 
     cout<<totgrosspay;// it prints gross pay value 
     system("pause"); 

     return 0; 

} 
+0

エラーが発生しました。私は既にグロスペイを出力しました。計算された5つのグロスペアの合計を – Naya

+0

で返します。答えは –

+0

ですが、5人の従業員全員によって生成されたグロスペア合計は、各従業員の総支払額。私はこれら5つのグロスペアを合計してそれを出力しなければなりません – Naya