Design a class named Employee The class should keep the foll
Solution
#include<iostream>
#include<cstring>
#include<stdio.h>
using namespace std;
//Class Employee
class Employee
{
//Private member
string empName, empCode, hireDate;
public:
//Constructor
Employee();
Employee(string, string, string);
//Accessor and Mutator methods
void setEmpName(string);
void setEmpCode(string);
void setHireDate(string);
string getEmpName();
string getEmpCode();
string getHireDate();
};
//Sets the employee name
void Employee::setEmpName(string s)
{
empName = s;
}
//Sets the employee code
void Employee::setEmpCode(string c)
{
empCode = c;
}
//Sets the employee hire date
void Employee::setHireDate(string d)
{
hireDate = d;
}
//Returns employee name
string Employee::getEmpName()
{
return empName;
}
//Returns employee code
string Employee::getEmpCode()
{
return empCode;
}
//Returns employee hire date
string Employee::getHireDate()
{
return hireDate;
}
//Parameterized constructor for employee
Employee::Employee(string n, string c, string d)
{
empName = n;
empCode = c;
hireDate = d;
}
//Default constructor for employee
Employee::Employee()
{
empName = \"\";
empCode = \"\";
hireDate = \"\";
}
//class production worker derived from employee
class ProductionWorker : public Employee
{
//Private data member
int Shift;
double HourlyPayRate;
public:
//Default constructor
ProductionWorker()
{
Shift = 0;
HourlyPayRate = 0.0;
}
//Parameterized constructor calls base class constructor
ProductionWorker(int a, double r, string n, string c, string d): Employee(n, c, d)
{
Shift = a;
HourlyPayRate = r;
}
//Set shift
void setShift(int s)
{
Shift = s;
}
//Set the hourly pay rate
void setHourlyPayRate(double r)
{
HourlyPayRate = r;
}
//Returns shift
int getShift()
{
return Shift;
}
//Returns hourly pay rate
double getHourlyPayRate()
{
return HourlyPayRate;
}
};
int main()
{
string na, co, da, vc;
int t = 0, sh, vsh;
double pr;
cout<<\"\ Enter Employee Name: \";
cin>>na;
//Validates employee code
do
{
cout<<\"\ Enter Employee Code: XXXL \ Each X is a digit within the range 0 - 9 \ L is a letter within the range A - M \ \";
fflush(stdin);
cin>>co;
//Checks for the length
if(co.length() == 4)
{
//Checks the first 3 letters must be digit
if(isdigit(co[t]) && isdigit(co[t+1]) && isdigit(co[t+2]))
{
//checks the first 3 letters must be in the range of 0 - 9
if((co[t] >= \'0\' && co[t] <= \'9\') &&(co[t+1] >= \'0\' && co[t+1] <= \'9\') && (co[t+2] >= \'0\' && co[t+2] <= \'9\'))
{
//Checks 4 th letter must be a alphabet and within the range of A to M
if(isalpha(co[t+3]) && co[t+3] >= \'A\' && co[t+3]<= \'M\')
{
vc = co;
break;
}
else
cout<<\"\ Error: Must be alphabet within the range of A - M \";
}
else
cout<<\"\ Error: Must be within the range of 0 - 9 \";
}
cout<<\"\ Error: Must be Digit \";
}
else
{
cout<<\"\ Error: Must be 4 letters \";
}
}while(1);
cout<<\"\ Enter the Hire Date: \";
cin>>da;
//Validates the shift
do
{
cout<<\"\ Enter the shift: \";
cin>>sh;
//Shift must be either 1 or 2
if(sh == 1 || sh == 2)
{
vsh = sh;
break;
}
else
cout<<\"\ Error: Shift must be either 1 or 2 \";
}while(1);
cout<<\"\ Enter Hourly pay rate: \";
cin>>pr;
ProductionWorker p;
ProductionWorker p1(vsh, pr, na, vc, da);
cout<<\"\ Employee Information: \ \";
cout<<\"\ Employee Name: \"<<p1.getEmpName();
cout<<\"\ Employee Code: \"<<p1.getEmpCode();
cout<<\"\ Employee Hire Date: \"<<p1.getHireDate();
cout<<\"\ Employee Shift: \"<<p1.getShift();
cout<<\"\ Employee Hourly Pay Rate: \"<<p1.getHourlyPayRate();
}
Output 1:
Enter Employee Name: Mohan
Enter Employee Code: XXXL
Each X is a digit within the range 0 - 9
L is a letter within the range A - M
234B
Enter the Hire Date: 23
Enter the shift: 1
Enter Hourly pay rate: 30
Employee Information:
Employee Name: Mohan
Employee Code: 234B
Employee Hire Date: 23
Employee Shift: 1
Employee Hourly Pay Rate: 30
Output 2:
Enter Employee Name: Mohan
Enter Employee Code: XXXL
Each X is a digit within the range 0 - 9
L is a letter within the range A - M
12AB
Error: Must be Digit
Enter Employee Code: XXXL
Each X is a digit within the range 0 - 9
L is a letter within the range A - M
456T
Error: Must be alphabet within the range of A - M
Error: Must be Digit
Enter Employee Code: XXXL
Each X is a digit within the range 0 - 9
L is a letter within the range A - M
782D
Enter the Hire Date: 11
Enter the shift: 5
Error: Shift must be either 1 or 2
Enter the shift: 2
Enter Hourly pay rate: 50
Employee Information:
Employee Name: Mohan
Employee Code: 782D
Employee Hire Date: 11
Employee Shift: 2
Employee Hourly Pay Rate: 50



