diff options
| author | Tyler Taormina <[email protected]> | 2021-11-24 00:44:47 -0800 |
|---|---|---|
| committer | Tyler Taormina <[email protected]> | 2021-11-24 00:44:47 -0800 |
| commit | 87b5096fc3099702d2a0c887d9b2c7efe99afdb1 (patch) | |
| tree | f08f347108628afb1b46484a2a78b1d597df0dbd /11.14_exercise | |
| parent | Update (diff) | |
| download | cst115-lab8-till-t-87b5096fc3099702d2a0c887d9b2c7efe99afdb1.tar.xz cst115-lab8-till-t-87b5096fc3099702d2a0c887d9b2c7efe99afdb1.zip | |
Diffstat (limited to '11.14_exercise')
| -rw-r--r-- | 11.14_exercise/num3.cpp | 140 |
1 files changed, 140 insertions, 0 deletions
diff --git a/11.14_exercise/num3.cpp b/11.14_exercise/num3.cpp index 139597f..d5a9778 100644 --- a/11.14_exercise/num3.cpp +++ b/11.14_exercise/num3.cpp @@ -1,2 +1,142 @@ +#include <iostream> +#include <fstream> // For the files!!!! +#include <iomanip> // For manipulators & formatting options +using std::cin; +using std::cout; +using std::endl; +using std::setw; +using std::ios; +using std::resetiosflags; +using std::setiosflags; +using std::ifstream; +using std::ofstream; + +const int EMPLOYEES = 20; +const int MAX = 21; + +int ReadData ( ifstream &inFile, char name[][MAX], char lname [][MAX], char social[][MAX], float wage[], + float hours[], char status[]); +void PrintTotalsAndSummary (char name[][MAX], char lname [][MAX], char social[][MAX], float wage[], + float hours[], char status[], float pay[], float Opay[], float NetPay[], int record_counter); + +int main ( ) +{ + char name[EMPLOYEES][MAX]; + char lname[EMPLOYEES][MAX]; + char social[EMPLOYEES][MAX]; + float wage[EMPLOYEES]; + float hours[EMPLOYEES]; + float pay[EMPLOYEES]; + float Opay[EMPLOYEES]; + float NetPay[EMPLOYEES]; + char status[EMPLOYEES]; + int record_counter ( 0 ); + + ifstream inFile; + + // Notice how this automatically opens the file + + inFile.open ( "bus.txt"); + + if ( inFile.is_open ( ) ) + { + record_counter = ReadData (inFile, name, lname, social, wage, hours, status); + inFile.close ( ); + } + + else + { + cout << "Trouble Opening File: inFile"; + cout << "\n\n\t\t ** About to EXIT NOW! ** "; + } + + PrintTotalsAndSummary (name, lname, social, wage, hours, status, pay, Opay, NetPay, record_counter); + + + return 0; +} + + +int ReadData ( ifstream & inFile, char name[][MAX], char lname [][MAX], char social[][MAX], float wage[], + float hours[], char status[]) +{ + int counter = 0; + inFile >> name[counter] >> lname[counter] >> social[counter] >> wage[counter] >> hours[counter] >> status[counter] ; // Priming Read + + while ( !inFile.eof ( ) ) + { + ; + counter++; + inFile >> name[counter] >> lname[counter] >> social[counter] >> wage[counter] >> hours[counter] >> status[counter] ; + } + + return counter; +} + + + +void PrintTotalsAndSummary (char name[][MAX], char lname [][MAX], char social[][MAX], float wage[], + float hours[], char status[], float pay[], float Opay[], float NetPay[], int record_counter) +{ + int i; + int reg_hours; + int o_hours; + float o_wage; + + for (i = 0; i < record_counter; i++) + { + // overtime hours and pay + if (hours[i] > 40) + { + o_hours = hours[i] - 40; + o_wage = (wage[i] / 2) + wage[i]; + Opay[i] = o_hours * o_wage; + pay[i] = wage[i] * 40; + NetPay[i] = pay[i] + Opay[i]; + + if (status[i] == 'F') + NetPay[i] -= 5.00; + } + // normal hours and pay + else + { + pay[i] = wage[i] * hours[i]; + NetPay[i] = pay[i]; + Opay[i] = 0; + + if (status[i] == 'F') + NetPay[i] -= 5.00; + } + } + + cout << setiosflags ( ios::left ) << setw (10) + << "Name" << resetiosflags ( ios::left ) << setw(20) + << "Last Name" << resetiosflags (ios::left) << setw(20) + << "Social" << resetiosflags (ios::left) << setw(20) + << "Wage" << resetiosflags (ios::left) << setw(20) + << "Hours" << resetiosflags (ios::left) << setw(20) + << "Regular Pay" << resetiosflags (ios::left) << setw(20) + << "Overtime Pay" << resetiosflags (ios::left) << setw(20) + << "Status" << resetiosflags (ios::left) << setw(20) + << "Net Pay" << resetiosflags (ios::left) << endl; + cout << "===========================================================================================================================================================================" << endl; + + for (int j = 0; j < record_counter; j++) + { + + cout << setiosflags ( ios::left ) << setw (10) + << name[j] << resetiosflags ( ios::left ) << setw(20) + << lname[j] << resetiosflags (ios::left) << setw(20) + << social[j] << resetiosflags (ios::left) << setw(20) + << wage[j] << resetiosflags (ios::left) << setw(20) + << hours[j] << resetiosflags (ios::left) << setw(20) + << pay[j] << resetiosflags (ios::left) << setw(20) + << Opay[j] << resetiosflags (ios::left) << setw(20) + << status[j] << resetiosflags (ios::left) << setw(20) + << NetPay[j] << resetiosflags (ios::left) << endl; + } + + +} |