diff --git a/PR2_UIB/Exercises/Testat1/Aufgabe1/Aufgabe1_IO_Vererbung b/PR2_UIB/Exercises/Testat1/Aufgabe1/Aufgabe1_IO_Vererbung new file mode 100644 index 0000000..05795a9 --- /dev/null +++ b/PR2_UIB/Exercises/Testat1/Aufgabe1/Aufgabe1_IO_Vererbung @@ -0,0 +1,6 @@ +Aufgabe 1: +Schreiben Sie ein Java-Programm, das diese Informationen liest, +Objekte entsprechend der Rolle der Person erstellt und eine Liste aller Personen ausgibt. +Implementieren Sie Klassen für Person, Employee und Manager, die die entsprechenden Attribute und Methoden enthalten. +Verwenden Sie Vererbung, um die Beziehung zwischen den Klassen darzustellen. +Das Programm sollte auch die jährlichen Einkommen für jede Person berechnen und ausgeben. \ No newline at end of file diff --git a/PR2_UIB/Exercises/Testat1/Aufgabe1/Employee.java b/PR2_UIB/Exercises/Testat1/Aufgabe1/Employee.java new file mode 100644 index 0000000..e33009f --- /dev/null +++ b/PR2_UIB/Exercises/Testat1/Aufgabe1/Employee.java @@ -0,0 +1,10 @@ +package Testat1.Aufgabe1; + +public class Employee extends Person { + protected String department; + + public Employee (String name, int age, double salary, String department) { + super(name, age, salary); + this.department = department; + } +} diff --git a/PR2_UIB/Exercises/Testat1/Aufgabe1/Main.java b/PR2_UIB/Exercises/Testat1/Aufgabe1/Main.java new file mode 100644 index 0000000..37726ba --- /dev/null +++ b/PR2_UIB/Exercises/Testat1/Aufgabe1/Main.java @@ -0,0 +1,60 @@ +package Testat1.Aufgabe1; + +import java.io.BufferedReader; +import java.io.FileReader; +import java.util.ArrayList; + +public class Main { + public static void main (String[] args) { + ArrayList people = new ArrayList<>(); + + try (BufferedReader reader = new BufferedReader(new FileReader("Exercises/Testat1/Aufgabe1/personen"))){ + String line; + while((line = reader.readLine()) != null) { + if(!line.isEmpty()) { + + String key = line.toLowerCase(); + switch (key) { + case "person": { + String name = reader.readLine().split(": ")[1]; + int age = Integer.parseInt(reader.readLine().split(": ")[1]); + double salary = Double.parseDouble(reader.readLine().split(": ")[1]); + people.add(new Person(name, age, salary)); + break; + } + case "employee": { + String name = reader.readLine().split(": ")[1]; + int age = Integer.parseInt(reader.readLine().split(": ")[1]); + double salary = Double.parseDouble(reader.readLine().split(": ")[1]); + String department = reader.readLine().split(": ")[1]; + people.add(new Employee(name, age, salary, department)); + break; + } + case "manager":{ + String name = reader.readLine().split(": ")[1]; + int age = Integer.parseInt(reader.readLine().split(": ")[1]); + double salary = Double.parseDouble(reader.readLine().split(": ")[1]); + String department = reader.readLine().split(": ")[1]; + double bonus = Double.parseDouble(reader.readLine().split(": ")[1]); + people.add(new Manager(name, age, salary, department, bonus)); + break; + } + + default: + throw new IllegalArgumentException("Unexpected value: " + key); + } + } + } + } catch (Exception e) { + e.printStackTrace(); + } + for (Person person : people) { + System.out.println("Name: " + person.name); + System.out.println("Age: " + person.age); + System.out.println("Salary: " + person.salary); + System.out.println("Yearly Income: " + person.calculateYearlyIncome()); + System.out.println(); + } + } + +} diff --git a/PR2_UIB/Exercises/Testat1/Aufgabe1/Manager.java b/PR2_UIB/Exercises/Testat1/Aufgabe1/Manager.java new file mode 100644 index 0000000..c82b869 --- /dev/null +++ b/PR2_UIB/Exercises/Testat1/Aufgabe1/Manager.java @@ -0,0 +1,16 @@ +package Testat1.Aufgabe1; + +public class Manager extends Employee{ + protected double bonus; + + public Manager(String name, int age, double salary, String department, double bonus) { + super(name, age, salary, department); + this.bonus = bonus; + } + + @Override + public double calculateYearlyIncome() { + return super.calculateYearlyIncome() + bonus; + } + +} \ No newline at end of file diff --git a/PR2_UIB/Exercises/Testat1/Aufgabe1/Person.java b/PR2_UIB/Exercises/Testat1/Aufgabe1/Person.java new file mode 100644 index 0000000..6aaa211 --- /dev/null +++ b/PR2_UIB/Exercises/Testat1/Aufgabe1/Person.java @@ -0,0 +1,20 @@ +package Testat1.Aufgabe1; + +public class Person { + protected String name; + protected int age; + protected double salary; + protected int id; + private static int increment = 1; + + public Person(String name, int age, double salary) { + this.name = name; + this.age = age; + this.salary = salary; + this.id = increment++; + } + + public double calculateYearlyIncome() { + return salary * 12; + } +} diff --git a/PR2_UIB/Exercises/Testat1/Aufgabe1/personen b/PR2_UIB/Exercises/Testat1/Aufgabe1/personen new file mode 100644 index 0000000..7f86aec --- /dev/null +++ b/PR2_UIB/Exercises/Testat1/Aufgabe1/personen @@ -0,0 +1,17 @@ +Person +Name: John Doe +Age: 30 +Salary: 50000 + +Employee +Name: Alice Smith +Age: 25 +Salary: 60000 +Department: Engineering + +Manager +Name: Bob Johnson +Age: 35 +Salary: 70000 +Department: Management +Bonus: 10000 diff --git a/PR2_UIB/Exercises/Testat1/Test.java b/PR2_UIB/Exercises/Testat1/Test.java deleted file mode 100644 index 3cbbb1d..0000000 --- a/PR2_UIB/Exercises/Testat1/Test.java +++ /dev/null @@ -1,5 +0,0 @@ -package Testat1; - -public class Test { - -}