aboutsummaryrefslogtreecommitdiff
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
parentUpdate (diff)
downloadcst115-lab8-till-t-87b5096fc3099702d2a0c887d9b2c7efe99afdb1.tar.xz
cst115-lab8-till-t-87b5096fc3099702d2a0c887d9b2c7efe99afdb1.zip
Complete LabHEADmaster
-rw-r--r--11.14_exercise/num3.cpp140
-rw-r--r--lab8.txt155
2 files changed, 294 insertions, 1 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;
+ }
+
+
+}
diff --git a/lab8.txt b/lab8.txt
index 98379d6..77f0ea6 100644
--- a/lab8.txt
+++ b/lab8.txt
@@ -290,11 +290,164 @@ Submit: code & run
CODE:
+#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;
-RUN:
+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;
+ }
+
+
+}
+
+RUN:
+
+till-t@Air:~/code/cst115-lab8-till-t/11.14_exercise|master⚡ ⇒ ./a.out
+Name Last Name Social Wage Hours Regular Pay Overtime Pay Status Net Pay
+===========================================================================================================================================================================
+John Smith 123-09-8765 9 46 360 81 F 436
+Molly Brown 432-89-7654 9.5 40 380 0 F 375
+Tim Wheeler 239-34-3458 11.25 83 450 725.625 F 1170.62
+Keil Wader 762-84-6543 6.5 35 227.5 0 P 227.5
+Trish Dish 798-65-9844 7.52 40 300.8 0 P 300.8
+Anthony Lei 934-43-9843 9.5 56 380 228 F 603
+Kevin Ashes 765-94-7343 4.5 30 135 0 P 135
+Cheryl Prince 983-54-9000 4.65 45 186 34.875 F 215.875
+Kim Cares 343-11-2222 10 52 400 180 F 575
+Dave Cockroach 356-98-1236 5.75 48 230 69 F 294
+Will Kusick 232-45-2322 15 45 600 112.5 P 712.5