Management of employees in a company.
-
Class diagram:
LoadingclassDiagram direction BT class Workable { <<interface>> + work() void } class Reportable { <<interface>> + report() void } class Manageable { <<interface>> + manage() void } class Employee { <<abstract>> # int id # String name # double salary # String role + display() void + displayDetailInfo()* void + calculateSalary()* double } class EmployeeManager { - ArrayList<Employee> employees + addEmployee(List<Employee> employees) void + displayEmployees() void + displaySalaries() void + performActions(int index) void + performActions(T object) void + performAllActions() - calculateSalariesByRole() Map<String, Double> } class Developer { - int experienceYears - String projectName } class Tester { - String testingTool; - int bugCount; } class Manager { - double bonus } class Director { - double stockPercent - String strategy } EmployeeManager o-- Employee Developer --|> Employee Developer ..> Workable Tester --|> Employee Tester ..> Workable Tester ..> Reportable Manager --|> Employee Manager ..> Workable Manager ..> Reportable Manager ..> Manageable Director --|> Employee Director ..> Reportable Director ..> Manageable
./
│ .gitignore
│ README.md
│
├───docs
│ assign-04-oop.png
│
└───src
│ MainApplication.java
│
├───interfaces
│ Manageable.java
│ Reportable.java
│ Workable.java
│
├───manager
│ EmployeeManager.java
│
├───model
│ Developer.java
│ Director.java
│ Employee.java
│ Manager.java
│ Tester.java
│
└───util
Util.java
- IDE: IntelliJ IDEA
- JDK: 21 or higher
Khang Nguyen