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

C++ ——— 1. Create Department. Collect all information about a department. Make s

ID: 3859484 • Letter: C

Question

C++

———

1. Create Department. Collect all information about a department. Make sure the department ID does not already exist in the array containing Department objects. If it does not, then insert the Department object into the array. When the array is full, display the error message to the user "The array is full, you can not add any more departments"

2. Create Employee. Collect all information about an Employee. Make sure the Employee ID does not already exist in the array containing Employee objects. If it does not, then insert the Employee object into the array. Also make sure that the DepartmentID that the employee belongs also exists.

When the array is full, display the error message to the user "The array is full, you can not add any more Employees"

3. Write the data to the file. When the user selects this option, dump the information in each array into a separate file.

4. Retrieve data from file. When user selects this option, open each file, load the data from the file into the appropriate array.

5. Display Report: When user selects this option, go through arrays and display the total salary paid for each department.

Please make sure that when the user tries to exit the program without having saved the data, alert the user that the

data has not been saved and will be lost. Proceed only if the user consents.

This program needs to be modified to the following:

1. Replace Employee and Department classes with Employee and Department Structures.

2. Inside each structure, replace all string variables with array of characters.

3. Make Employee and Department editable. That means, the user should be able to edit a given Employee and Department.

4. Do not allow the user to edit the Employee ID and Department ID.

5. Use Random Access Files to store the data in Binary Form. This means, you should not use an Arrays to

store the data in the memory. Instead, when the user wants to create a new Employee/Department,

you write it to the file right away. Also when the user says he/she wants to edit

an Employee/Department, ask the user to enter EmployeeID/DepartmentID.

Read the data from the file and display it to the user.

Allow the user to enter new data and write it back to the file in the same position inside the file.

Explanation / Answer

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

using namespace std;

class Departments{

string departmentID,departmentName,departmentHeadName;

public:
Departments(){}

Departments(string ID,string name){
departmentID="";
departmentName="";
departmentHeadName="";
}

Departments(string ID,string name,string head){
departmentID=ID;
departmentName=name;
departmentHeadName=head;
}

void setDepartmentID(string ID){
departmentID=ID;
}

void setDepartmentName(string name){
departmentName=name;
}

void setDepartmentHeadName(string head){
departmentHeadName=head;
}

string getDepartmentID(){
return departmentID;
}

string getDepartmentName(){
return departmentName;
}

string getDepartmentHeadName(){
return departmentHeadName;
}
};

class Employee{

string employeeID, employeeName, employeeDepartmentID;  
   int employeeAge;
    double employeeSalary;

    public:
        Employee(){}
       
        Employee(string ID, string name){
            employeeID=ID;
            employeeName=name;
        }
       
      Employee(string ID, string name,int age){
            employeeID=ID;
            employeeName=name;
            employeeAge=age;
        }
       
        Employee(string ID, string name,int age, double salary){
            employeeID=ID;
            employeeName=name;
            employeeAge=age;
            employeeSalary=salary;
        }

        Employee(string ID, string name,int age, double salary,string department){
            employeeID=ID;
            employeeName=name;
            employeeAge=age;
            employeeSalary=salary;
            employeeDepartmentID=department;
       }
      
        void setEmployeeID(string ID){
            employeeID=ID;
        }
       
        void setEmployeeName(string name){
            employeeName=name;
        }
       
        void setEmployeeAge(int age){
            employeeAge=age;          
       }
      
        void setEmployeeSalary(double salary){
            employeeSalary=salary;
        }
       
        void setEmployeeDepartment(string dept){
            employeeDepartmentID=dept;
       }       

       string getEmployeeID(){
           return employeeID;
       }
      
       string getEmployeeName(){
           return employeeName;
       }      
      
       int getEmployeeAge(){
           return employeeAge;
       }
      
       double getEmployeeSalary(){
           return employeeSalary;
       }      
      
       string getEmployeeDepartment(){
           return employeeDepartmentID;
       }      
};

int main(){
  
   Employee e[7];
   Departments d[3];
   int ch=0, employeeAge, i=0, j=0;
   string departmentID,departmentName,departmentHeadName;
   string employeeID, employeeName, employeeDepartmentID;  
    double employeeSalary;

   do{
       cout<<" 1. Create Department 2. Create Employee";
       cout<<" 3. Write the data to the file 4. Retrieve data from file";
       cout<<" 5. Display Report 6.Exit Enter your choice : ";
       cin>>ch;
      
       switch(ch){
          
           case 1: if(i<3){
          
                       cout<<" Enter the Department Id : ";
                       cin.ignore();
                       getline(cin,departmentID);
                       d[i].setDepartmentID(departmentID);
                      
                       cout<<" Enter the Department Name : ";
                       cin.ignore();
                       getline(cin,departmentName);
                       d[i].setDepartmentName(departmentName);
                      
                       cout<<" Enter the Department HeadName : ";
                       cin.ignore();
                       getline(cin,departmentHeadName);
                       d[i].setDepartmentHeadName(departmentHeadName);
                       i++;
                   }
                   else
                       cout<<" The array is full, you can not add any more Departments";
                   break;
                  
           case 2: if(j<7){
          
                       cout<<" Enter the Employee Id : ";
                       cin.ignore();
                       getline(cin,employeeID);
                       e[j].setEmployeeID(employeeID);
                      
                       cout<<" Enter the Employee Name : ";
                       cin.ignore();
                       getline(cin,employeeName);
                       e[j].setEmployeeName(employeeName);
                      
                       cout<<" Enter the Employee Department ID : ";
                       cin.ignore();
                       getline(cin,employeeDepartmentID);
                       e[j].setEmployeeDepartment(employeeDepartmentID);
                      
                       cout<<" Enter the Employee Age : ";
                       cin>>employeeAge;
                       e[j].setEmployeeAge(employeeAge);
                      
                       cout<<" Enter the Employee Salary : ";
                       cin>>employeeSalary;
                       e[j].setEmployeeSalary(employeeSalary);
                      
                       j++;
                   }
                   else
                       cout<<" The array is full, you can not add any more Employees";
                   break;
          
           case 3: {
              
                   ofstream myfile;
                   myfile.open ("example.txt");
                  
                   for(int k=0;k<3;k++){
                      
                       myfile<<" "<<d[k].getDepartmentHeadName();
                       myfile<<" "<<d[k].getDepartmentID();
                       myfile<<" "<<d[k].getDepartmentName()<<" ";
                   }
                  
                   myfile.close();
                   break;
       }
           case 5: cout<<" Report : ";
                   for(int k=0;k<3;k++){
                      
                       cout<<" "<<d[k].getDepartmentHeadName()<<" ";
                       cout<<" "<<d[k].getDepartmentID()<<" ";
                       cout<<" "<<d[k].getDepartmentName()<<" ";
                   }
                   break;

           case 6: exit(1);
                   break;
          
           default : cout<<" Invalid option";
                   break;      
       }
   }while(ch != 6);
  
//3. Write the data to the file
//4. Retrieve data from file. When user selects this option, open each file, load the data from the file into the appropriate array.
//5. Display Report: When user selects this option, go through arrays and display the total salary paid for each department.)

   return 0;
}

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