Файл с отображением 2 итогов - PullRequest
0 голосов
/ 02 февраля 2020

Как мне сделать так, чтобы отображалась только правильная общая ставка заработной платы? На каждом l oop он показывает ставку заработной платы первых сотрудников. Я пишу это на языке c ++ в repl.it. Все, что мне нужно, это показать общую сумму зарплаты сотрудников внизу.

#include <iostream>
#include <fstream>
#include <iomanip>
using namespace std;

const double TAX_RATE = 0.15;

int main()
{
    ifstream inFile("emp5.txt");

    char firstName[100], lastName[100];
    double payRate = 0.0,
           hrsWkd = 0.0,
           grossPay = 0.0,
           taxAmt = 0.0,
           netPay = 0.0,
           totPayRate = 0.0,
           totHrsWkd = 0.0,
           totGrossPay = 0.0,
           totTaxAmt = 0.0,
           totNetPay = 0.0, ot, otPay, regPay;
    int width = 15;
    //int counter = 0;

    cout << setw(7) << "Employee" << setw(17) << "Pay" << setw(17) << "Hours" << setw(15) << "Gross" << setw(13) << "Tax" << setw(13) << "Net" << endl;
    cout << setw(2) << "Name" << setw(22) << "Rate" << setw(17) << "Worked" << setw(12) << "Pay" << setw(18) << "Amount" << setw(10) << "Pay" << endl;
    cout << setw(2) << "========" << setw(18) << "====" << setw(17) << "======" << setw(14) << "=====" << setw(16) << "======" << setw(13) << "======" << endl;

    while (inFile >> firstName >> lastName >> payRate >> hrsWkd) {
        //counter = counter + 1;
        if (hrsWkd > 40) {
            ot = hrsWkd - 40;
        }

        otPay = ot * payRate;
        regPay = (hrsWkd - ot) * payRate;
        grossPay = regPay + otPay;
        taxAmt = grossPay * TAX_RATE;
        netPay = grossPay - taxAmt;
        totPayRate += payRate;

        cout << fixed << setprecision(2);
        cout << left << setw(9) << lastName << ", " << setw(11) << firstName << setw(width) << payRate << setw(width) << hrsWkd << setw(width) << grossPay << setw(width) << taxAmt << setw(width) << netPay << endl;

        cout << left << setw(9) << "Totals " << setw(11) << totPayRate;
    }
    cout << endl;
    inFile.close();
    return 0;
}
...