master
3009594 2024-11-06 00:07:22 +01:00
parent eede5fc2d2
commit 8df2afc8cc
2 changed files with 38 additions and 27 deletions

Binary file not shown.

View File

@ -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<Student> 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 -> {
});
}
}