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

Write a C++ program that will need to read from a file of employee data for how

ID: 2246333 • Letter: W

Question

Write a C++ program that will need to read from a file of employee data for how many hours each employee worked for a week. Then for each of the employees, a total of the hours worked is made and then the employees are sorted into descending order based on their total hours using bubble sort. Also needs to use structures and vectors.

There needs to be 3 function calls in main that:

-Open and read the file into the vectors and add the total hours worked for each employee

-Sort the vector based on the total hours

-Write out the output

(the functions have to be defined after main and need function prototypes before main)

What the structure has to look like:

What the input looks like:

Output should look something similar to this:

struct Employee string name vector

Explanation / Answer

#include <iostream>
#include <fstream>

using namespace std;


string* name;
int** hours;
int* totalHours;
int count;

void read(char *fileName) {
   ifstream fin;
   fin.open(fileName);
   if (fin.is_open()) {
       fin >> count;
       name = new string[7];
       hours = new int*[count];
       for(int i = 0; i<count; i++)
           hours[i] = new int[7];
       totalHours = new int[count];
       for (int i = 0; i < count; i++) {
           fin >> name[i];
           for (int j = 0; j < 7; j++)
               fin >> hours[i][j];
       }
       fin.close();
   }
   else
       cout << "Cannot open file" << endl;
}


void calcTotal() {
   for (int i = 0; i < count; i++) {
       totalHours[i] = 0;
       for (int j = 0; j < 7; j++)
           totalHours[i] += hours[i][j];
   }      
}

void sort() {
  
   for(int i = 0; i < count - 1; i++) {
       for (int j = 0; j < count - i - 1; j++)
           if (totalHours[j] > totalHours[j+1]) {
               string tmpName = name[j];
               name[j] = name[j+1];
               name[j+1] = tmpName;

               int* tmpHours = hours[j];
               hours[j] = hours[j+1];
               hours[j+1] = tmpHours;

               int tmpTotal = totalHours[j];
               totalHours[j] = totalHours[j+1];
               totalHours[j+1] = tmpTotal;
           }
   }

}

int main() {
   char fileName[100];
   cout << "Enter File name" ;
   cin >> fileName;
   read(fileName);
   calcTotal();
   sort();
   cout << "name: S M T W T F S TTL" << endl;
   for (int i = 0; i < count; i++) {
       cout << "inside array";
       cout << name[i] << " ";
       for (int j = 0; j < 7; j++)
           cout << hours[i][j] << " ";
       cout << totalHours[i] << endl;

   }

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