Drugi i trzeci jednak razem bo nie wiedziałem, że cooldown jest :<
part2
package pl.edu.wsiz.io11.part2;
import java.util.Scanner;
public abstract class Employee {
private String firstname;
private String lastname;
private byte age;
private Sex sex;
private int salary;
private String[] skills;
public Employee(String firstname, String lastname, byte age, Sex sex, int salary, String[] skills) {
this.firstname = firstname;
this.lastname = lastname;
this.age = age;
this.sex = sex;
this.salary = salary;
this.skills = skills;
}
public boolean isEqual(Employee employee) {
return firstname.equalsIgnoreCase(employee.firstname) &&
lastname.equalsIgnoreCase(employee.lastname) &&
age == employee.age;
}
public void print() {
System.out.println(this);
}
public static void print(Employee employee) {
employee.print();
}
@Override
public String toString() {
char sexChar = this.sex == Sex.FEMALE ? 'K' : 'M';
String skillsStr = String.join(", ", skills);
return String.format("%c %s %s %d %c %dzł [%s]", getJobSymbol(), firstname, lastname, age, sexChar, salary, skillsStr);
}
protected static String readFirstname() {
Scanner scanner = new Scanner(System.in);
System.out.print("Podaj imię: ");
return scanner.next();
}
protected static String readLastname() {
Scanner scanner = new Scanner(System.in);
System.out.print("Podaj nazwisko: ");
return scanner.next();
}
protected static byte readAge() {
Scanner scanner = new Scanner(System.in);
System.out.print("Podaj wiek: ");
return scanner.nextByte();
}
protected static Sex readSex() {
Scanner scanner = new Scanner(System.in);
System.out.print("Podaj płeć: ");
String sexStr = scanner.next();
return sexStr.toUpperCase().charAt(0) == 'K' ? Sex.FEMALE : Sex.MALE;
}
protected static int readSalary() {
Scanner scanner = new Scanner(System.in);
System.out.print("Podaj zarobki: ");
int salary = scanner.nextInt();
scanner.nextLine();
return salary;
}
protected static String[] readSkills() {
Scanner scanner = new Scanner(System.in);
System.out.print("Podaj umiejętności: ");
String skillsStr = scanner.nextLine();
String[] skillsArr = skillsStr.split(",");
for (int i = 0; i < skillsArr.length; i++) {
skillsArr[i] = skillsArr[i].trim();
}
return skillsArr;
}
protected abstract char getJobSymbol();
}
part3
package pl.edu.wsiz.io11.part2;
import java.util.ArrayList;
public class Company {
private ArrayList<Employee> employeesArrayList = new ArrayList<>();
public void addEmployee(Employee employee) {
if (isAlreadyOnTheList(employee)) {
System.out.println("Pracownik o tych samych danych znajduje się już na liście!");
return;
}
employeesArrayList.add(employee);
}
public void addDeveloper() {
addEmployee(Developer.read());
}
public void addManager() {
addEmployee(Manager.read());
}
public void removeEmployee(int number) {
if (number < 1 || number > employeesArrayList.size()) {
System.out.println("Lista nie zawiera pracownika o podanym numerze porządkowym.");
return;
}
employeesArrayList.remove(number - 1);
}
private boolean isAlreadyOnTheList(Employee employee) {
for (Employee tmpEmployee : employeesArrayList) {
if (tmpEmployee.isEqual(employee)) {
return true;
}
}
return false;
}
public void printEmployees() {
System.out.println("--------------------");
int number = 1;
for (Employee employee : employeesArrayList) {
System.out.print(number++ + " ");
employee.print();
}
// for (Employee employee : employeesArrayList) {
// System.out.print(employeesArrayList.indexOf(employee) + 1 + " ");
// employee.print();
// }
// for (int i = 0; i < employeesArrayList.size(); i++) {
// System.out.print(i + 1 + " ");
// employeesArrayList.get(i).print();
// }
System.out.println("--------------------");
}
}