Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

A company hired N=10 workers who are paid hourly and you are given a data file t

ID: 3674766 • Letter: A

Question

A company hired N=10 workers who are paid hourly and you are given a data file that contains the last name of the employees, the number of hours each employee worked in a week, and the hourly pay rate of each employee. For instance, a sample data file may look like

smith    30    6.25
cooper  45   7.00
brown   40    8.00
hut       10    9.99

Write a C++ program to solve the problem

You are asked to write a program that computes each employee’s weekly pay and the average salary of all the workers. The program then outputs the weekly pay of each employee, the average weekly pay, and the names of all the employees whose pay is greater than or equal to the average pay. If the number of hours worked in a week is more than 40 hours, then the pay rate for the hours over 40 is 1.5 times the regular hourly rate.

Use two parallel arrays: a one- dimensional array to store the names of all the employees, and a two- dimensional array of 10 rows and 3 columns to store the number of hours an employee worked in a week, the hourly pay rate, and the weekly pay. Your program must contain at least the following functions:

a function to read the data from the file into the arrays -- call it readFromFiletoArrays()

a function to determine the weekly pay of all the employees -- call it calcWeeklyPay()

a function to output the names of all the employees whose pay is greater than or equal to the average weekly pay and also print the average salary -- call it printAboveAverageEmployees()

a function to output each employee’s data   (including the name, number of hours worked, hourly rate, and salary)-- call it printAllEmployees().

Explanation / Answer

Please find the required program below :


#include <fstream>
#include <sstream>
#include <iostream>
#include <string>

using namespace std;

string names[10];
double emp[10][3];
double avg = 0;


void readFromFiletoArrays() {
  
ifstream input( "filename.ext" );

int i = 0;
for( string line; getline( input, line ); )
{
istringstream iss(line, istringstream::in);
  
for (int n=0; n<3; n++)
{
  
switch(n){

case 0 : {
string name;
iss >> name;
names[i] = name;
break;
}
case 1 : {   
  
double val1;
iss >> val1;
emp[i][1] = val1;
break;
}

case 2 :
{
double val2;
iss >> val2;
emp[i][2] = val2;
break;
}
}
}
}
  
}

void calcWeeklyPay(){
double sum = 0;
for(int i=0; i < 10; i++) {
double rate = emp[i][2];
double hrs = emp[i][1];
if(emp[i][1] > 40) {
emp[i][3] = (rate * 40) + ((hrs-40) * 1.5 *rate);
} else {
emp[i][3] = rate * hrs;   
}
sum = sum + emp[i][3];
}
avg = (sum/10);
}

void printAboveAverageEmployees(){

cout << "Employee names with weekpay above avg :" << endl;
  
for(int i=0; i < 10; i++) {
  
if(emp[i][3] > avg) {
  
cout << names[i] << endl;
  
}
  
}
  
}

void printAllEmployees(){

cout << "All Employees data :" << endl;
  
for(int i=0; i < 10; i++) {
cout << names[i] << ", " << emp[i][0] << ", " << emp[i][1] << ", " << emp[i][2] << endl;
}
  
}

int main()
{

readFromFiletoArrays();
calcWeeklyPay();
printAboveAverageEmployees();
printAllEmployees();


}

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote