erste Aufgabe

master
Amin 2024-04-19 20:54:22 +02:00
parent 345b6ca42e
commit 2d74419583
7 changed files with 129 additions and 5 deletions

View File

@ -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.

View File

@ -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;
}
}

View File

@ -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<Person> 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();
}
}
}

View File

@ -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;
}
}

View File

@ -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;
}
}

View File

@ -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

View File

@ -1,5 +0,0 @@
package Testat1;
public class Test {
}