A company hired 10 temporary workers who are paid hourly and you are given a dat
ID: 3684681 • Letter: A
Question
A company hired 10 temporary 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. You are asked to write a program that computes each employee's weekly pay and the average salary1 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, a function to determine the weekly pay, a function to output the names of all the employees whose pay is greater than or equal to the average weekly pay, and a function to output each employee's data.Explanation / Answer
#include <iostream>
#include <string>
#include <iomanip>
#include <fstream>
using namespace std;
const int ROWS=10;
const int COLUMNS=3;
void readFileData(ifstream &,string[],double [] [COLUMNS]);
void weeklyPay(string[],double [] [COLUMNS]);
void avgWeeklyPay(string[],double [] [COLUMNS]);
void print(string[],double [] [COLUMNS]);
int main()
{
string lastNames[ROWS];
double matrix[ROWS] [COLUMNS];
ifstream fin;
fin.open("data.txt",ios::in);
readFileData(fin,lastNames,matrix);
cout<<endl;
weeklyPay(lastNames,matrix);
cout<<endl;
avgWeeklyPay(lastNames,matrix);
cout<<endl;
print(lastNames,matrix);
system("pause");
return 0;
}
void readFileData(ifstream& fin,string lastNames[],double matrix[] [COLUMNS])
{
for(int r=0;r<ROWS;r++)
{
fin>>lastNames[r];
for(int c=0;c<COLUMNS-1;c++)
{
fin>>matrix[r] [c];
}
matrix[r] [2]=0;
}
}
void weeklyPay(string lastNames[],
double matrix[] [COLUMNS])
{
cout<<"----Weekly Pay---- "<<endl;
for(int r=0;r<ROWS;r++)
{
if(matrix[r] [0]>40)
matrix[r] [2]=matrix[r] [0]*matrix[r] [1]+
1.4*(matrix[r] [0]*matrix[r] [1]);
else
matrix[r] [2]=matrix[r] [0]*matrix[r] [1];
cout<<left<<setw(10)<<lastNames[r]
<<setw(10)<<matrix[r] [2]<<endl;
}
}
void avgWeeklyPay(string lastNames[],
double matrix[] [COLUMNS])
{
double totalPay=0;
for(int r=0;r<ROWS;r++)
totalPay+=matrix[r] [2];
cout<<"Names of Employees whose salary is Greater"<<"Than or equal to average weekly salary"<<endl;
cout<<"Average Weekly Pay :$"<<totalPay/ROWS<<endl;
for(int colIndex=0;colIndex<ROWS;colIndex++)
if(matrix[colIndex] [2]>totalPay/ROWS)
cout<<left<<setw(10)<<lastNames[colIndex]
<<" "<<left<<setw(10)
<<matrix[colIndex] [2]<<" "<<endl;
}
void print(string lastNames[],
double matrix[] [COLUMNS])
{
cout<<"Name"<<setw(10)<<"Hours"
<<setw(10)<<"Pay Rate"<<endl;
for(int r=0;r<ROWS;r++)
{
cout<<left<<setw(10)<<lastNames[r]<<" ";
for(int c=0;c<COLUMNS;c++)
{
cout<<left<<setw(10)<<matrix[r] [c]<<" ";
}
cout<<endl;
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.