In: Computer Science
PLEASE DO NOT OVERRIDE ANY EXCEPTIONS
TASK:
You want to develop a Java program that will allow you to keep track of a set of employees. In reviewing your employee list, you notice that your employees fall into two categories: Salaried and Hourly. The following table shows the information that you keep in your employee list for each type of employee.
Field |
Type |
Salaried |
Hourly |
id |
int |
Yes |
Yes |
name |
String |
Yes |
Yes |
title |
String |
Yes |
No |
position |
String |
No |
Yes |
salary |
int |
Yes |
No |
hourlyRate |
double |
No |
Yes |
Create a NetBeans project with the prefix Lab101.
Use the same naming convention used in the Lab100 assignment, i.e. Lab101-LastFM.
In this project create three classes named Employee, Salaried and Hourly such that:
Create a fourth class name Client that will be used to test your other classes.
In the Client class:
//Java code
public abstract class Employee { /** * Attributes common to all */ protected int id; protected String name; //Constructor public Employee(int id, String name) { this.id = id; this.name = name; } //Getters and setters public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } /** * * @return description of employee */ @Override public String toString() { return "Employee Id: "+id+" Employee's Name: "+name; } @Override public boolean equals(Object obj) { return this== ((Employee)obj); } }
//==========================================
public class Salaried extends Employee { private String title; private int salary; private static int countSalariedEmployee =0; //Constructor public Salaried(int id, String name, String title, int salary) { super(id, name); this.title = title; this.salary = salary; countSalariedEmployee++; } //getters and setters public static int getCountSalariedEmployee() { return countSalariedEmployee; } public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } public int getSalary() { return salary; } public void setSalary(int salary) { this.salary = salary; } /** * * @return description of salaried employee */ @Override public String toString() { return super.toString()+" Title: "+title+" salary: $"+salary; } }
//==================================================
public class Hourly extends Employee { private String position; private double hourlyRate; private static int countHourlyEmployee=0; //Constructor public Hourly(int id, String name, String position, double hourlyRate) { super(id, name); this.position = position; this.hourlyRate = hourlyRate; countHourlyEmployee++; } //getters and setters public String getPosition() { return position; } public void setPosition(String position) { this.position = position; } public double getHourlyRate() { return hourlyRate; } public void setHourlyRate(double hourlyRate) { this.hourlyRate = hourlyRate; } /** * * @return description of the hourly Employee */ @Override public String toString() { return super.toString()+ " Position: "+position+" Hourly Rate: $"+String.format("%.2f",hourlyRate); } }
//=======================================
import java.util.Scanner; public class Client { public static void main(String[] args) { /** * Create an array employeeList of type Employee of length 10 */ int length = 10; Employee[] employeeList = new Employee[length]; /** * Add three Salaried contacts to the array */ String name,position, title ; int id, salary; double hourlyRate; //Scanner for keyboard entry Scanner keyboard = new Scanner(System.in); for (int i = 0; i <6 ; i++) { if(i%2==0) { System.out.print("Enter Employee's Id: "); id = keyboard.nextInt(); System.out.print("Enter Employee's name: "); name = keyboard.nextLine(); keyboard.nextLine(); System.out.print("Enter Employee's title: "); title = keyboard.nextLine(); System.out.print("Enter Employee's salary: "); salary = keyboard.nextInt(); employeeList[i] = new Salaried(id, name, title, salary); } /** * Add three Hourly employees contacts to the array */ else { System.out.print("Enter Employee's Id: "); id = keyboard.nextInt(); keyboard.nextLine(); System.out.print("Enter Employee's name: "); name = keyboard.nextLine(); System.out.print("Enter Employee's position: "); position = keyboard.nextLine(); System.out.print("Enter Employee's hourly rate: "); hourlyRate = keyboard.nextDouble(); employeeList[i] = new Hourly(id,name,position,hourlyRate); } } /** * print out the contents of the array using a loop. */ for(Employee e: employeeList) { System.out.println(e); } /** * Now give everyone in the employeeList a 10% raise */ for (int i = 0; i <employeeList.length ; i++) { if(employeeList[i]!=null) { if(employeeList[i] instanceof Salaried) { salary = ((Salaried)employeeList[i]).getSalary(); salary +=salary*.1; ((Salaried)employeeList[i]).setSalary(salary); } else { hourlyRate = ((Hourly)employeeList[i]).getHourlyRate(); hourlyRate+=hourlyRate*.1; ((Hourly)employeeList[i]).setHourlyRate(hourlyRate); } } } /** * print without null */ for(Employee e: employeeList) { if(e==null) break; System.out.println(e); } //Check equality System.out.println(employeeList[0].equals(employeeList[2])); System.out.println(employeeList[1].equals(employeeList[4])); } }
//Output
//If you need any help regarding this solution ............ please leave a comment ........ thanks