aboutsummaryrefslogtreecommitdiff
path: root/11.14_exercise
diff options
context:
space:
mode:
authorTyler Taormina <[email protected]>2021-11-24 00:44:47 -0800
committerTyler Taormina <[email protected]>2021-11-24 00:44:47 -0800
commit87b5096fc3099702d2a0c887d9b2c7efe99afdb1 (patch)
treef08f347108628afb1b46484a2a78b1d597df0dbd /11.14_exercise
parentUpdate (diff)
downloadcst115-lab8-till-t-87b5096fc3099702d2a0c887d9b2c7efe99afdb1.tar.xz
cst115-lab8-till-t-87b5096fc3099702d2a0c887d9b2c7efe99afdb1.zip
Complete LabHEADmaster
Diffstat (limited to '11.14_exercise')
-rw-r--r--11.14_exercise/num3.cpp140
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;
+ }
+
+
+}