Question: //Java //please create it in java and add picture of all the coding and runs. package design; public interface Employee { /*Employee is an Interface

//Java //please create it in java and add picture of all the coding and runs. package design; public interface Employee { /*Employee is an Interface which contains multiple unimplemented methods.Again few methods has been declared in below. you need to brainstorm to add more methods to meet the business requirements. */ //please read the following method and understand the business requirements of these following methods //and then implement these in a concrete class. //employeeId() will return employee id. public int employeeId(); //employeeName() will return employee name public String employeeName(); //assignDepartment() will assign employee to departments public void assignDepartment(); //calculate employee salary public int calculateSalary(); //employee benefit public void benefitLayout(); } 

-----------------------------------------------------------------------------------------------------------------------

package design; import java.util.Scanner; public class EmployeeInfo { /*This class can be implemented from Employee interface then add additional methods in EmployeeInfo class. * Also, Employee interface can be implemented into an abstract class.So create an Abstract class * then inherit that abstract class into EmployeeInfo class.Once you done with designing EmployeeInfo class, * go to FortuneEmployee class to apply all the fields and attributes. * * Important: YOU MUST USE the * OOP(abstraction,Encapsulation, Inheritance and Polymorphism) concepts in every level possible. * Use all kind of keywords(super,this,static,final........) * Implement Nested class. * Use Exception Handling. * */ /* * declare few static and final fields and some non-static fields */ static String companyName; /* * You must implement the logic for below 2 methods and * following 2 methods are prototype as well for other methods need to be design, * as you will come up with the new ideas. */ /* * you must have multiple constructor. * Must implement below constructor. */ public EmployeeInfo(int employeeId){ } public EmployeeInfo(String name, int employeeId){ } /* * This methods should calculate Employee bonus based on salary and performance. * Then it will return the total yearly bonus. So you need to implement the logic. * Hints: 10% of the salary for best performance, 8% of the salary for average performance and so on. * You can set arbitrary number for performance. * So you probably need to send 2 arguments. * */ public static int calculateEmployeeBonus(int numberOfYearsWithCompany){ int total=0; return total; } /* * This methods should calculate Employee Pension based on salary and numbers of years with the company. * Then it will return the total pension. So you need to implement the logic. * Hints: pension will be 5% of the salary for 1 year, 10% for 2 years with the company and so on. * */ public static int calculateEmployeePension(){ int total=0; Scanner sc = new Scanner(System.in); System.out.println("Please enter start date in format (example: May,2015): "); String joiningDate = sc.nextLine(); System.out.println("Please enter today's date in format (example: August,2017): "); String todaysDate = sc.nextLine(); String convertedJoiningDate = DateConversion.convertDate(joiningDate); String convertedTodaysDate = DateConversion.convertDate(todaysDate); //implement numbers of year from above two dates //Calculate pension return total; } private static class DateConversion { public DateConversion(Months months){} public static String convertDate(String date) { String [] extractMonth = date.split(","); String givenMonth = extractMonth[0]; int monthDate = whichMonth(givenMonth); String actualDate = monthDate + "/" + extractMonth[1]; return actualDate; } public static int whichMonth(String givenMonth) { Months months = Months.valueOf(givenMonth); int date = 0; switch (months) { case January: date = 1; break; case February: date = 2; break; case March: date = 3; break; case April: date = 4; break; case May: date = 5; break; case June: date = 6; break; case July: date = 1; break; case August: date = 1; break; case September: date = 1; break; case October: date = 1; break; case November: date = 1; break; case December: date = 1; break; default: date = 0; break; } return date; } } } 

-----------------------------------------------------------------------------------------------------------------------------

package design; public class FortuneEmployee { /** * FortuneEmployee class has a main methods where you will be able to create Object from * EmployeeInfo class to use fields and attributes.Demonstrate as many methods as possible * to use with proper business work flow.Think as a Software Architect, Product Designer and * as a Software Developer.(employee.info.system) package is given as an outline,you need to elaborate * more to design an application that will meet for fortune 500 Employee Information * Services. * * Use any databases[MongoDB or MySql] to store data and retrieve data. * **/ public static void main(String[] args) { } } 

-------------------------------------------------------------------------------------------------------------------------------------

package design; public enum Months { January, February, March, April, May, June, July, August, September, October, November, December } 

------------------------------------------------------------------------------------------------------------------------------------------------------------------------

package design; public class UnitTestingEmployeeInfo { public static void main(String[] args) { //Write Unit Test for all the methods has been implemented in this package. } }

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!