Question
Use the three header files and the following two implementation programs, hourlyemployee.cpp, and salariedemployee.cpp. Redefine the function give_raise in both HourlyEmployee and SalariedEmployee such that:
Use the three header files and the following two implementation programs, hourlyemployee.cpp, and salariedemployee.cpp. Redefine the function give_raise in both HourlyEmployee and SalariedEmployee such that:
1. Hourly_bases employees receive 10% raise on their hourly rate (wage_rate)
2. Salaried employees receive 6% raise of their salary
// ********************************************************HourlyEmployee.h #ifndef HOURLYEMPLOYEE_H #define HOURLYEMPLOYEE_H #include #include "employee.h" using namespace std; namespace workemployees { class HourlyEmployee : public Employee { public: HourlyEmployee(); HourlyEmployee(string new_name, string new_ssn, double new_wage_rate, double new_hours); void set_rate(double new_wage_rate); double get_rate(); void set_hours(double hours_worked); double get_hours(); void give_raise(double amount); void print_check(); private: double wage_rate; double hours; }; } #endif //HOURLYMPLOYEE_H // ********************************************************SalariedEmployee.h //This is the HEADER FILE salariedemployee.h. //This is the INTERFACE for the class SalariedEmployee. #ifndef SALARIEDEMPLOYEE_H #define SALARIEDMPLOYEE_H #include #include "employee.h" using namespace std; namespace workemployees { class SalariedEmployee : public Employee { public: SalariedEmployee(); SalariedEmployee (string new_name, string new_ssn, double new_weekly_salary); double get_salary(); void change_salary(double new_salary); void print_check(); void give_raise(double amount); private: double salary; //weekly }; } #endif //SALARIEDEMPLOYEE_H // ********************************************************Employee.h #ifndef EMPLOYEE_H #define EMPLOYEE_H #include using namespace std; namespace workemployees { class Employee { public: Employee(); Employee(string new_name, string new_ssn); string get_name(); string get_ssn(); void change_name(string new_name); void change_ssn(string new_ssn); void print_check(); void give_raise(double amount); protected: string name; string ssn; double net_pay; }; } #endif //EMPLOYEE_H // ******************************************************** Employee.cpp #include #include #include #include "employee.h" using namespace std; namespace workemployees { Employee::Employee() // default is to fetch data from keyboard { cout << "Enter employee name, followed by return.: "; getline(cin, name); cout << endl << "Enter employee social security number," << " followed by return.: "; getline(cin, ssn); cin.ignore(10000, ' '); cout << endl; } Employee::Employee(string new_name, string new_number) : name(new_name), ssn(new_number) //initializer list { //deliberately empty } string Employee::get_name() { return name; } string Employee::get_ssn() { return ssn; } void Employee::change_name(string new_name) { name = new_name; } void Employee::change_ssn (string new_ssn) { ssn = new_ssn; } void Employee::print_check() { cout << " ERROR: print_check FUNCTION CALLED FOR AN " << "UNDIFFERENTIATED EMPLOYEE. Aborting the program. " << "Check with the author of the program about this bug. "; exit(1); } void Employee::give_raise(double amount) { cout << " ERROR: give_raise FUNCTION CALLED FOR AN " << "UNDIFFERENTIATED EMPLOYEE. Aborting the program. " << "Check with the author of the program about this bug. "; exit(1); } }//END EMPLOYEE.CPP // ******************************************************** HourlyEmployee.cpp #include #include #include "hourlyemployee.h" using namespace std; namespace workemployees { HourlyEmployee::HourlyEmployee() : Employee() { cout << "Enter HourlyEmployee wage rate, followed by return.: "; cin >> wage_rate; cout << "Enter number of hours worked, followed by return: "; cin >> hours; } HourlyEmployee::HourlyEmployee(string new_name, string new_number, double new_wage_rate, double new_hours) : Employee(new_name, new_number), wage_rate(new_wage_rate), hours(new_hours) { //deliberately empty } void HourlyEmployee::set_rate(double new_wage_rate) { wage_rate = new_wage_rate; } double HourlyEmployee::get_rate() { return wage_rate; } void HourlyEmployee::set_hours(double hours_worked) { hours = hours_worked; } double HourlyEmployee::get_hours() { return hours; } void HourlyEmployee::give_raise( double amount) { wage_rate = wage_rate + amount; } void HourlyEmployee::print_check() { net_pay = hours * wage_rate; cout << " ________________________________________________ "; cout << "Pay to the order of " << name << endl; cout << "The sum of " << net_pay << " Dollars "; cout << "________________________________________________ "; cout << "Check Stub: NOT NEGOTIABLE "; cout << "Employee Number: " << ssn << endl; cout << "Hourly Employee. Hours worked: " << hours << " Rate: " << wage_rate << " Pay: " << net_pay << endl; cout << "_________________________________________________ "; } }//END HOURLYEMPLOYEE.CPP // ********************************************************SalariedEmployee.cpp #include #include #include "salariedemployee.h" using namespace std; namespace workemployees { SalariedEmployee::SalariedEmployee():Employee() { cout << " Enter Salaried Employee's weekly salary "; cin >> salary; } SalariedEmployee::SalariedEmployee(string new_name, string new_number, double new_weekly_pay ) : Employee(new_name, new_number), salary(new_weekly_pay) { //deliberately empty } void SalariedEmployee::give_raise(double amount) { salary = salary + amount; } double SalariedEmployee::get_salary() { return salary; } void SalariedEmployee::change_salary(double new_salary) { salary = new_salary; } void SalariedEmployee::print_check() { net_pay = salary; cout << " __________________________________________________ "; cout << "Pay to the order of " << name << endl; cout << "The sum of " << net_pay << " Dollars "; cout << "_________________________________________________ "; cout << "Check Stub NOT NEGOTIABLE " ; cout << "Employee Number: " << ssn << endl; cout << " Salaried Employee. Regular Pay: " << salary << endl; cout << "_________________________________________________ "; } }//END SALARIEDEMPLOYEE.CPP
Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started