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
Get step-by-step solutions from verified subject matter experts
