C++ Visual Studio 2019  Complete #13. Dependent  #1 Employee and ProductionWorker classes showing below. Modify the Employee and ProductionWorker classes so they throw 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 InvalidPayRate when it receives a negative number for the hourly pay rate. Write a driver program that demonstrates how each of these exception conditions works.  #1 Employee and ProductionWorker classes #include #include #include using namespace std; class Employee { private:     string name;        // Employee name     string number;        // Employee number     string hireDate;    // Hire date public:     // Default constructor     Employee()     {         name = ""; number = ""; hireDate = "";     }     // Constructor     Employee(string aName, string aNumber, string aDate)     {         name = aName; number = aNumber; hireDate = aDate;     }     // Mutators     void setName(string n)     {         name = n;     }     void setNumber(string num)     {         number = num;     }     void setHireDate(string date)     {         hireDate = date;     }     // Accessors     string getName() const     {         return name;     }     string getNumber() const     {         return number;     }     string getHireDate() const     {         return hireDate;     } }; // Specification for the ProductionWorker Class #include using namespace std; class ProductionWorker : public Employee { private:     int shift;    // The worker's shift     double payRate;    // The worker's hourly pay rate public:     // Default constructor     ProductionWorker() : Employee()     {         shift = 0; payRate = 0.0;     }     // Constructor     ProductionWorker(string aName, string aNumber, string aDate,         int aShift, double aPayRate) : Employee(aName, aNumber, aDate)     {         shift = aShift; payRate = aPayRate;     }     // Mutators     void setShift(int s)     {         shift = s;     }     void setPayRate(double r)     {         payRate = r;     }     // Accessors     int getShiftNumber() const     {         return shift;     }     string getShiftName() const     {         if (shift == 1)             return "Day";         else if (shift == 2)             return "Night";         else             return "Invalid";     }     double getPayRate() const     {         return payRate;     } }; // Employee and ProductionWorker classes // Function prototype void displayInfo(ProductionWorker); int main() {     ProductionWorker pw("John Jones", "123", "10/12/2010", 2, 18.00);     displayInfo(pw);     return 0; } //****************************************************** // The displayInfo function displays a production      * // worker's employment information.                    * //****************************************************** void displayInfo(ProductionWorker e) {     cout << setprecision(2) << fixed << showpoint;     cout << "Name: "         << e.getName() << endl;     cout << "Employee number: "         << e.getNumber() << endl;     cout << "Hire date: "         << e.getHireDate() << endl;     cout << "Shift: "         << e.getShiftName() << endl;     cout << "Shift number: "         << e.getShiftNumber() << endl;     cout << "Pay rate: "         << e.getPayRate() << endl; }

Microsoft Visual C#
7th Edition
ISBN:9781337102100
Author:Joyce, Farrell.
Publisher:Joyce, Farrell.
Chapter11: Exception Handling
Section: Chapter Questions
Problem 1CP
icon
Related questions
Question

C++ Visual Studio 2019 

Complete #13. Dependent  #1 Employee and ProductionWorker classes showing below. Modify the Employee and ProductionWorker classes so they throw 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 InvalidPayRate when it receives a negative number for the hourly pay rate.

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

 #1 Employee and ProductionWorker classes

#include <string>
#include <iostream>
#include <iomanip>
using namespace std;

class Employee
{
private:
    string name;        // Employee name
    string number;        // Employee number
    string hireDate;    // Hire date

public:
    // Default constructor
    Employee()
    {
        name = ""; number = ""; hireDate = "";
    }

    // Constructor
    Employee(string aName, string aNumber, string aDate)
    {
        name = aName; number = aNumber; hireDate = aDate;
    }

    // Mutators
    void setName(string n)
    {
        name = n;
    }

    void setNumber(string num)
    {
        number = num;
    }

    void setHireDate(string date)
    {
        hireDate = date;
    }

    // Accessors
    string getName() const
    {
        return name;
    }

    string getNumber() const
    {
        return number;
    }

    string getHireDate() const
    {
        return hireDate;
    }
};


// Specification for the ProductionWorker Class

#include <string>
using namespace std;

class ProductionWorker : public Employee
{
private:
    int shift;    // The worker's shift
    double payRate;    // The worker's hourly pay rate

public:
    // Default constructor
    ProductionWorker() : Employee()
    {
        shift = 0; payRate = 0.0;
    }

    // Constructor
    ProductionWorker(string aName, string aNumber, string aDate,
        int aShift, double aPayRate) : Employee(aName, aNumber, aDate)
    {
        shift = aShift; payRate = aPayRate;
    }

    // Mutators
    void setShift(int s)
    {
        shift = s;
    }

    void setPayRate(double r)
    {
        payRate = r;
    }

    // Accessors
    int getShiftNumber() const
    {
        return shift;
    }

    string getShiftName() const
    {
        if (shift == 1)
            return "Day";
        else if (shift == 2)
            return "Night";
        else
            return "Invalid";
    }
    double getPayRate() const
    {
        return payRate;
    }
};


// Employee and ProductionWorker classes
// Function prototype
void displayInfo(ProductionWorker);

int main()
{
    ProductionWorker pw("John Jones", "123", "10/12/2010", 2, 18.00);
    displayInfo(pw);
    return 0;
}

//******************************************************
// The displayInfo function displays a production      *
// worker's employment information.                    *
//******************************************************
void displayInfo(ProductionWorker e)
{
    cout << setprecision(2) << fixed << showpoint;
    cout << "Name: "
        << e.getName() << endl;
    cout << "Employee number: "
        << e.getNumber() << endl;
    cout << "Hire date: "
        << e.getHireDate() << endl;
    cout << "Shift: "
        << e.getShiftName() << endl;
    cout << "Shift number: "
        << e.getShiftNumber() << endl;
    cout << "Pay rate: "
        << e.getPayRate() << endl;
}

13. Exception Project
This assignment assumes you have completed Programming Challenge 1 of Chapter 15
(Employee and ProductionWorker Classes). Modify the Employee and ProductionWorker
classes so they throw 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 InvalidPayRate
when it receives a negative number for the hourly pay rate.
Write a driver program that demonstrates how each of these exception conditions
works.
Transcribed Image Text:13. Exception Project This assignment assumes you have completed Programming Challenge 1 of Chapter 15 (Employee and ProductionWorker Classes). Modify the Employee and ProductionWorker classes so they throw 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 InvalidPayRate when it receives a negative number for the hourly pay rate. Write a driver program that demonstrates how each of these exception conditions works.
Expert Solution
trending now

Trending now

This is a popular solution!

steps

Step by step

Solved in 3 steps with 9 images

Blurred answer
Knowledge Booster
Exception Handling Keywords
Learn more about
Need a deep-dive on the concept behind this application? Look no further. Learn more about this topic, computer-science and related others by exploring similar questions and additional content below.
Similar questions
  • SEE MORE QUESTIONS
Recommended textbooks for you
Microsoft Visual C#
Microsoft Visual C#
Computer Science
ISBN:
9781337102100
Author:
Joyce, Farrell.
Publisher:
Cengage Learning,
C++ Programming: From Problem Analysis to Program…
C++ Programming: From Problem Analysis to Program…
Computer Science
ISBN:
9781337102087
Author:
D. S. Malik
Publisher:
Cengage Learning
EBK JAVA PROGRAMMING
EBK JAVA PROGRAMMING
Computer Science
ISBN:
9781337671385
Author:
FARRELL
Publisher:
CENGAGE LEARNING - CONSIGNMENT