diff --git a/Programmierung2/src/JavaDoc.pdf b/Programmierung2/src/JavaDoc.pdf new file mode 100644 index 0000000..7f8602d Binary files /dev/null and b/Programmierung2/src/JavaDoc.pdf differ diff --git a/Programmierung2/src/streams/Main.java b/Programmierung2/src/streams/Main.java index a197933..af964cd 100644 --- a/Programmierung2/src/streams/Main.java +++ b/Programmierung2/src/streams/Main.java @@ -7,42 +7,53 @@ public class Main { public static void main(String[] args) { Student obai = new Student("obai","mannheim","informatik"); - Pruefung pr = new Pruefung("TE2", 10,2,1.4); + Pruefung TE2 = new Pruefung("TE2", 10,2,1.4); + Pruefung mathe = new Pruefung("mathe", 10,2,5); + obai.addPruefung(TE2); + obai.addPruefung(mathe); - obai.addPruefung(pr); - - Student omar = new Student("obai","mannheim","Cyber"); + Student omar = new Student("omar","mannheim","Cyber"); Pruefung pr2 = new Pruefung("PR2", 12,1,5); + Pruefung thi = new Pruefung("THI", 12,1,5); omar.addPruefung(pr2); + omar.addPruefung(thi); ArrayList sts = new ArrayList<>(); sts.add(omar); sts.add(obai); -// //Alle Studenten eines bestimmten Studiengangs ausgeben -// sts.stream() -// .filter(stg -> stg.getStudiengang().equals("informatik")) -// .forEach(i -> System.out.println(i.getName())); -// -// //Notenschnitt jeder Studi-Instanz berechnen und ausgeben -// sts.stream() -// .flatMap(st -> st.getPruefungen().stream()) -// .forEach(System.out::println); -// -// -// sts.forEach(student -> { -// double durchschnitt = student.getPruefungen().stream() -// .mapToDouble(Pruefung::getNote) -// .average() -// .orElse(Double.NaN); // Optional: um NaN zu vermeiden, falls keine Prüfungen vorhanden sind -// System.out.println("Durchschnittsnote von " + student.getName() + ": " + durchschnitt); -// }); - //Alle Studenten ausgeben, die eine Prüfung nicht bestanden haben - sts.stream() - .flatMap(p -> p.getPruefungen().stream()) - .filter(n -> n.getNote() >= 5) - .forEach(student -> System.out.println("Student: " + student.getName())); + //Alle Prüfungen mit ihrem Namen, dem Semester, der Note und Namen des Studis ausgeben + sts.stream() + .forEach(st -> System.out.println("StudentName: " + st.getName()+ st.getPruefungen())); + + System.out.println(); + //Alle Studenten eines bestimmten Studiengangs ausgeben + sts.stream() + .filter(s -> s.getStudiengang().equalsIgnoreCase("informatik")) + .forEach(System.out::println); + + System.out.println(); + //Notenschnitt jeder Studi-Instanz berechnen und ausgeben + sts.stream().forEach(student -> { + double durchschnitt = student.getPruefungen().stream() + .mapToDouble(p -> p.getNote()) // Konvertiere die Noten in einen Double-Stream + .average() // Berechne den Durchschnitt + .orElse(0.0); // Falls keine Prüfungen vorhanden sind, wird 0.0 als Standardwert verwendet + + System.out.println("Student: " + student.getName() + ", Notenschnitt: " + durchschnitt); + }); + + System.out.println("Alle Studenten ausgeben, die eine Prüfung nicht bestanden haben"); + // Alle Studenten ausgeben, die eine Prüfung nicht bestanden haben + sts.stream() + .forEach( st -> { + + }); + + + + } }