Question
ArrayList CANNOT be used in this program. Please DO NOT use any Java collections/containers. I need the manager class public class Manager extends Employee without
ArrayList CANNOT be used in this program. Please DO NOT use any Java collections/containers. I need the manager class "public class Manager extends Employee" without the use of ArrayList, please no collections or containers. It all has to be done through binary search.
Define an Employee class. An Employee has a name, an ID number, an age, a salary, a title, and a department name. The methods of Employee should: a. Print an employee record that includes all of the above information b. Change a salary, changeSalary(), and c. return the salary, getSalary(). The method changeSalary() accepts a parameter, increase, of type int or double. If increase is an int, then the salary should be increased by that amount. If increase is double, then the new salary should be (increase + 1) times the salary. For example, if the increase is 0.10, the salary is multiplied by 1.10, yielding an increase of 10%. The value of the (double) increase should be between 0.0 and 1.0.
Define a class Manager that Extends Employee. A manager is an employee who supervises other employees. A Manager object should include all data of the Employee object plus the list of the employee ID numbers of those employees under his/her supervision as well as all the other relevant data.
Define a class Executive that extends Manager. An Executive is a Manager who receives a bonus a the end of each year equal to percentage of his/her regular salary. Each Executive has his/her own bonus rate. You will need to redefine getSalary() to include the bonus. You will also need to add a setter (mutator) method, setBonus(), to set the percentage of the executives bonus. The default bonus rate should be 10%.
Implement a test class that demonstrates the facilities of the Employee, Manager, and Executive classes. Your test class should accept employee information for an arbitrary number of employees. Your program should ask whether or not the employee is a manager or an executive, and prompt for all relevant information.
After all data are entered, print an error message if there are any inconsistencies. In particular, a manager cannot manage a nonexistent employee. Also, every employee who is not an executive is supervised by some manager or executive. Your program should provide the user with the following options:
Change the salary of an employee
Adjust the bonus of an executive
Add or delete an employee from a managers list of employees
Print an employees data
Employee
public class Employee
{
private String name;
private int id;
private int age;
private double salary;
private String title;
private String depName;
public Employee(int id, String name, int age, double salary, String title, String depName)
{
this.name = name;
this.id = id;
this.age = age;
this.salary = salary;
this.title = title;
this.depName = depName;
}
public void printEmployee() //Print Method
{
System.out.println("Employee Details Name: " + this.name);
System.out.println("ID: " + this.id);
System.out.println("Age: " + this.age);
System.out.println("Salary: " + this.salary);
System.out.println("Title: " + this.title);
System.out.println("Department Name: " + this.depName);
System.out.println();
}
public int findEmployee(Employee[] employees, String name) {
for (int index =0; index Employee employeeTemp = employees[index]; String employeeName = employeeTemp.getName(); if(employeeName.equals(name)) { return index; } } return -1; } public void changeSalary(int inc) //Salary Method { this.salary = salary + inc; } public void changeSalary(double inc) throws Exception { if(inc >= 0 && inc { this.salary = (inc + 1) * salary; } else { throw new Exception("Increment should be in the range of 0.0 to 1.0"); } } public double getSalary() { return this.salary; } } Executive public class Executive extends Manager { private double bonus; public Executive(int id, String name, int age, double salary, String title, String depName, double bonus) { super(id, name, age, salary, title, depName); this.bonus = bonus; } public void setBonus(double bonus) { if(bonus >= 0 && bonus { this.bonus = bonus; } else { System.out.println("This bonus rate is invalid"); } } @Override public double getSalary() { return this.getSalary() + this.getSalary() * (1 + bonus); } } useEmployee public class useEmployee { public static void main(String[] args) { Employee[] employees = new Employee[100]; employees[0] = new Employee(6120, "Anthony, Susan B.", 37, 360000.00, "MTS 3", "Engineers"); employees[1] = new Manager(1215, "Deleon, Amanda", 53, 225000.00, "Manager Level 3", "Research and Development"); employees[2] = new Executive(2, "Rothschild, Baron", 79, 500000.00, "Chairman", "Engineers", 0.15); employees[3] = new Employee(8978, "Rothschild, Tyron", 23, 42000.00, "MTS 1", "Engineers"); employees[4] = new Employee(5950, "Yates, Fred", 37, 360000.00, "MTS 3", "Scientists"); ((Manager)(employees[1])).addEmployee(employees[0]); ((Manager)(employees[1])).addEmployee(employees[3]); ((Manager)(employees[1])).addEmployee(employees[4]); System.out.println("Amanda's direct reports: "); ((Manager)(employees[1])).printEmployeeList(); // why not use toString() here? System.out.println(" --- All Employees --- "); // employees[0].changeSalary(employees, 8978, 25000); ** OLD STYLE ** Why is this not optimal? int index = employees[0].findEmployee(employees, "Rothschild, Tyron"); // Be sure this line is understood! employees[index].changeSalary(25000); int i = 0; while (employees[i] != null) System.out.println(employees[i++]); } public static int findEmployee() { } }
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