Question: Using C++ Modify the Employee and ProductionWorker classes so they thro exceptions when the following errors occur: The Employee class should throw an exception named

Using C++

Modify the Employee and ProductionWorker classes so they thro exceptions when the following errors occur:

The Employee class should throw an exception named InvalidEmployeeNumber when it receives an employee number that is less than 0 or greater than 9999.

The ProductionWorker class should throw an exception named InvalidShift when it receives an invalid shift.

The ProductionWorker class should throw an exception named InvalidParyRate when it receives a negative number for the hourly pay rate.

Write a driver program that demonstrates how each of these exception conditions works.

Here is my Employee and Production Worker class:

#include

#include

#include

#include

using namespace std;

class Employee{

private:

string employeeName;

int employeeNumber;

int hireDate;

public:

void setemployeeName(string employeeName);

void setemployeeNumber(int);

void sethireDate(int);

string getemployeeName() const;

int getemployeeNumber() const;

int gethireDate() const;

Employee();

};

void Employee::setemployeeName(string employeeName){

employeeName = employeeName;

}

void Employee::setemployeeNumber(int b){

employeeNumber = b;

}

void Employee::sethireDate(int d){

hireDate = d;

}

string Employee::getemployeeName() const{

return employeeName;

}

int Employee::getemployeeNumber() const{

return employeeNumber;

}

int Employee::gethireDate() const{

return hireDate;

}

Employee::Employee(){

cout << "Please answer some questions about your employees, ";

}

class ProductionWorker :public Employee{

private:

int Shift;

double hourlyPay;

public:

void setShift(int);

void sethourlyPay(double);

int getShift() const;

double gethourlyPay() const;

ProductionWorker();

};

void ProductionWorker::setShift(int s){

Shift = s;

}

void ProductionWorker::sethourlyPay(double p){

hourlyPay = p;

}

int ProductionWorker::getShift() const{

return Shift;

}

double ProductionWorker::gethourlyPay() const{

return hourlyPay;

}

ProductionWorker::ProductionWorker(){

cout << "Your responses will be displayed after all data has been received. " << endl;

}

int main(){

ProductionWorker info;

string name;

int num;

int date;

int shift;

double pay;

cout << "Please enter employee name: ";

cin >> name;

cout << "Please enter employee number: ";

cin >> num;

cout << "Please enter employee hire date using the format ";

cout << "2 digit month, 2 digit day, 4 digit year as one number: ";

cout << "(Example August 12 1981 = 08121981)";

cin >> date;

cout << "Which shift does the employee work: ";

cout << "Enter 1, 2, or 3";

cin >> shift;

cout << "Please enter the employee's rate of pay: ";

cin >> pay;

info.setemployeeName(name);

info.setemployeeNumber(num);

info.sethireDate(date);

info.setShift(shift);

info.sethourlyPay(pay);

cout << "The data you entered for this employee is as follows: ";

cout << "Name: " << info.getemployeeName() << endl;

cout << "Number: " << info.getemployeeNumber() << endl;

cout << "Hire Date: " << info.gethireDate() << endl;

cout << "Shift: " << info.getShift() << endl;

cout << setprecision(2) << fixed;

cout << "Pay Rate: " << info.gethourlyPay() << endl;

system("pause");

return 0;

}

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!