Even complicated and confusing topics will be easily developed and covered if you request our help writing an essay. Place an order today!

Assignment 3 - Enhanced Employee Hierarchy

For this assignment, you are going to enhance the Employee Hierarchy that you created in Programming Assignment 2 by adding an interface called Compensation with the following two methods:

  • earnings() - receives no parameters and returns a double.
  • raise(double percent) - receives one parameter which is the percentage of the raise and returns a void.

Create the abstract class CompensationModel which implements the Compensation interface. Create the following classes as subclasses of CompensationModel:

  • SalariedCompensationModel - For Employees who are paid a fixed weekly salary, this class should contain a weeklySalary instance variable, and should implement methods earnings() to return the weekly salary, and raise(double percent) which increases the weekly salary by the percent specified.
  • HourlyCompensationModel - For Employees who are paid by the hour and receive overtime pay for all hours worked in excess of 40 hours per week. This class should contain instance variables of wage and hours and should implement method earnings() based on the number of hours worked. For any hours worked over 40, they should be paid at an hourly wage of 1 and a half times their wage. So if their normal wage is $10 per hour normally, they would get $15 per hour for overtime. It should also implement the method raise(double percent) by increasing the wage by the percent specified.
  • CommissionCompensationModel - This class is the same as in Asssignment 2 except that this class is now a subclass of CompensationModel. It should also implement the method raise(double percent) by increasing the commission rate by the percent specified.
  • BasePlusCommissionCompensationModel - This class is the same as in Assignment 2, a subclass of CommissionCompensationModel . It should also implement the method raise(double percent) by increasing the base salary and commission rate by the percent specified.

Each of these classes will also have a toString() method to display their compensation information as illustrated in the sample output below.

Modify the Employee class of Assignment 2 to have an instance variable of type CompensationModel instead of CommissionCompensationModel, Make any other necessary changes in the Employee class because of this. Also add the raise (double percent) method to the Employee class which simply calls the raise method of the CompensationModel.

Use the following code in your main function to test your classes, just copy and paste it into your main method:

// Create the four employees with their compensation models.

CommissionCompensationModel commissionModel = new CommissionCompensationModel(2000.00, 0.04);
BasePlusCommissionCompensationModel basePlusCommissionModel = new BasePlusCommissionCompensationModel(2000.00, 0.05, 600.00);
SalariedCompensationModel salariedCompensationModel = new SalariedCompensationModel(2500.00);
HourlyCompensationModel hourlyCommissionModel = new HourlyCompensationModel(10.00, 35.0);

Employee employee1 = new Employee("John", "Smith", "111-11-1111", commissionModel);
Employee employee2 = new Employee("Sue", "Jones", "222-22-2222", basePlusCommissionModel);
Employee employee3 = new Employee("Jim", "Williams", "333-33-3333", salariedCompensationModel);
Employee employee4 = new Employee("Nancy", "Johnson", "444-44-4444", hourlyCommissionModel);

// Print the information about the four employees.
System.out.println("The employee information initially.");
System.out.printf("%s%n%s%n%s%n%s%n", employee1, employee2, employee3, employee4);
System.out.printf("%s%s%s%s%s%8.2f%n%n", "Earnings for ", employee1.getFirstName(), " ", employee1.getLastName(), ": ", employee1.earnings());

// Change the compensation model for the four employees.

CommissionCompensationModel commissionModelNew = new CommissionCompensationModel(5000.00, 0.04);
BasePlusCommissionCompensationModel basePlusCommissionModelNew = new BasePlusCommissionCompensationModel(4000.00, 0.05, 800.00);
SalariedCompensationModel salariedCompensationModelNew = new SalariedCompensationModel(3500.00);
HourlyCompensationModel hourlyCommissionModeNewl = new HourlyCompensationModel(10.00, 50);

// Set the new compensation models for the employees.
employee1.setCompensation(basePlusCommissionModelNew);
employee2.setCompensation(commissionModelNew);
employee3.setCompensation(hourlyCommissionModeNewl);
employee4.setCompensation(salariedCompensationModelNew);

// Print out the new information for the four employees.
System.out.println("The employee information after changing compensation models.");
System.out.printf("%s%n%s%n%s%n%s%n", employee1, employee2, employee3, employee4);

// Declare an array of employees and assign the four employees to it.
Employee[] employees = new Employee[4];
employees[0] = employee1;
employees[1] = employee2;
employees[2] = employee3;
employees[3] = employee4;

// Loop thru the array giving each employee a 2% raise polymorphically;
for (Employee employee : employees)
{
employee.raise(.02);
}

// Print out their new earnings.
System.out.println("The employee information after raises of 2 percent.");
System.out.printf("%s%n%s%n%s%n%s%n", employee1, employee2, employee3, employee4);


The output from your program should look like the following (there will be additional blank lines in the output which canvas removes for me, unwanted, in this display):

run:
The employee information initially.
John Smith
Social Security Number: 111-11-1111
Commission Compensation with:
Gross Sales of: 2000.00
Commission Rate of: 0.040
Earnings: 80.00

Sue Jones
Social Security Number: 222-22-2222
Base Plus Commission Compensation with:
Gross Sales of: 2000.00
Commission Rate of: 0.050
Base Salary of: 600.00
Earnings: 700.00

Jim Williams
Social Security Number: 333-33-3333
Salaried Compensation with:
Weekly Salary of: 2500.00
Earnings: 2500.00

Nancy Johnson
Social Security Number: 444-44-4444
Hourly Compensation with:
Wage of: 10.00
Hours Worked of:35.00
Earnings: 350.00

Earnings for John Smith: 80.00

The employee information after changing compensation models.
John Smith
Social Security Number: 111-11-1111
Base Plus Commission Compensation with:
Gross Sales of: 4000.00
Commission Rate of: 0.050
Base Salary of: 800.00
Earnings: 1000.00

Sue Jones
Social Security Number: 222-22-2222
Commission Compensation with:
Gross Sales of: 5000.00
Commission Rate of: 0.040
Earnings: 200.00

Jim Williams
Social Security Number: 333-33-3333
Hourly Compensation with:
Wage of: 10.00
Hours Worked of:50.00
Earnings: 550.00

Nancy Johnson
Social Security Number: 444-44-4444
Salaried Compensation with:
Weekly Salary of: 3500.00
Earnings: 3500.00

The employee information after raises of 2 percent.
John Smith
Social Security Number: 111-11-1111
Base Plus Commission Compensation with:
Gross Sales of: 4000.00
Commission Rate of: 0.051
Base Salary of: 816.00
Earnings: 1020.00

Sue Jones
Social Security Number: 222-22-2222
Commission Compensation with:
Gross Sales of: 5000.00
Commission Rate of: 0.041
Earnings: 204.00

Jim Williams
Social Security Number: 333-33-3333
Hourly Compensation with:
Wage of: 10.20
Hours Worked of:50.00
Earnings: 561.00

Nancy Johnson
Social Security Number: 444-44-4444
Salaried Compensation with:
Weekly Salary of: 3570.00
Earnings: 3570.00

testimonials icon
Assignment 2: Practical Application EssayThe purpose of this assignment is to apply your theoretical understanding of the c...
testimonials icon
SAFETY SUPERVISORQuestion 1Research shows that the most effective supervisors and managers spend __________ more time l...
testimonials icon
Assignment 2: Case Study: Michael Dell—The Man Behind Dell, PowerPoint Presentation (Change Manageme...
testimonials icon
1) What is the role of Cash Conversion Cycle (CCC) in liquidity management, maximization of profits, and value of the f...
testimonials icon
 Assignment: Choose a lesson with theme or title and create Instructional lesson plan using the template below. Answer the...
testimonials icon
Running Head: Leadership Development SuccessionLeadership development successionInstitution AffiliationName1Running Head: Leadership Development Succ...
testimonials icon
300 words ...
testimonials icon
Mini researc Paper ...
testimonials icon
·         From the e-Activity, argue whether leaders are born or made. Give one (1) example of a great leader whom you admire in t...
testimonials icon
White Privilege and ColorismWrite a 100 - 500 words essay comparing and contrasting White privilege and colorism.Organize yo...

Other samples, services and questions:

Calculate Price

When you use PaperHelp, you save one valuable — TIME

You can spend it for more important things than paper writing.

Approx. price
$65
Order a paper. Study better. Sleep tight. Calculate Price!
Created with Sketch.
Calculate Price
Approx. price
$65