diff --git a/src/Pruefungsergebnis.java b/src/Pruefungsergebnis.java new file mode 100644 index 0000000..94b4998 --- /dev/null +++ b/src/Pruefungsergebnis.java @@ -0,0 +1,38 @@ + + +/** + * Diese Klasse verwaltet ein Pruefungsergebnis. + */ +public class Pruefungsergebnis { + private String student; + private double note; + + /** + * Erzeugt ein Pruefungsergebnis. + * + * @param student Name des Studierenden. + * @param note Note des Studierenden. + */ + public Pruefungsergebnis(String student, double note) { + this.student = student; + this.note = note; + } + + /** + * Liefert den Namen des Studierenden. + * + * @return Name des Studierenden. + */ + public String getStudent() { + return student; + } + + /** + * Liefert die Note. + * + * @return Die Note. + */ + public double getNote() { + return note; + } +} \ No newline at end of file diff --git a/src/Pruefungsverwaltung.java b/src/Pruefungsverwaltung.java new file mode 100644 index 0000000..4563517 --- /dev/null +++ b/src/Pruefungsverwaltung.java @@ -0,0 +1,81 @@ + + +import java.util.ArrayList; +import java.util.HashMap; + +/** + * Bietet Funktionalitaeten zum Speichern von Pruefungsergebnissen von einer + * Vielzahl von Studenten. Aus den Gespeicherten Ergebnissen lassen sich + * personalisierte Antworttexte generieren. + * + */ +public class Pruefungsverwaltung { + private ArrayList ergebnisse = new ArrayList(); + private HashMap noteVonZahlZuText = new HashMap(); + + public Pruefungsverwaltung() { + init(); + } + + private void init() { + noteVonZahlZuText.put(1.0, "eins punkt null"); + noteVonZahlZuText.put(1.5, "eins punkt fuenf"); + noteVonZahlZuText.put(2.0, "zwei punkt null"); + noteVonZahlZuText.put(2.5, "zwei punkt fuenf"); + noteVonZahlZuText.put(3.0, "drei punkt null"); + noteVonZahlZuText.put(3.5, "drei punkt fuenf"); + noteVonZahlZuText.put(4.0, "vier punkt null"); + noteVonZahlZuText.put(4.5, "vier punkt fuenf"); + noteVonZahlZuText.put(5.0, "fuenf punkt null"); + noteVonZahlZuText.put(5.5, "fuenf punkt fuenf"); + noteVonZahlZuText.put(6.0, "sechs punkt null"); + } + + public void speichereErgebnis(Pruefungsergebnis ergebnis) { + ergebnisse.add(ergebnis); + } + + /** + * Gibt pro gespeichertem Ergebnis einen Text auf die Konsole aus.
+ *
+ * Je nachdem ob der Kandidate die Pruefung bestanden (>= 4.0) oder nicht + * bestanden (< 4.0) hat, wird ein Text in folgendem Format ausgegeben: + * + *
    + *
  • + * <Name>, Sie haben an der Pruefung eine <Note> (<Note als + * Text>) erzielt und sind somit durchgefallen!
  • + *
  • + * Herzliche Gratulation <Name>! Sie haben an der Pruefung eine + * <Note> (<Note als Text>) erzielt und somit bestanden!
  • + *
+ */ + public void druckeAntworttexte() { + for (Pruefungsergebnis ergebnis : ergebnisse) { + String student = ergebnis.getStudent(); + double note = ergebnis.getNote(); + + double noteGerundet = rundeAufHalbeNote(note); + String text = generiereText(student, noteGerundet); + + System.out.println(text); + } + } + + private double rundeAufHalbeNote(double note) { + return Math.round(note * 2.0) / 2; + } + + private String generiereText(String student, double note) { + String noteAlsText = noteVonZahlZuText.get(note); + + if (note < 4) { + return student + ", Sie haben an der Pruefung eine " + note + " (" + + noteAlsText + ") erzielt und sind somit durchgefallen!"; + } else { + return "Herzliche Gratulation " + student + + "! Sie haben an der Pruefung eine " + note + " (" + + noteAlsText + ") erzielt und somit bestanden!"; + } + } +} diff --git a/src/ZufaelligeNotengebung.java b/src/ZufaelligeNotengebung.java new file mode 100644 index 0000000..6197b11 --- /dev/null +++ b/src/ZufaelligeNotengebung.java @@ -0,0 +1,34 @@ + + +import java.util.Random; + +/** + * Simuliert Pruefungsergebnisse zum Testen der Pruefungsverwaltung. + */ +public class ZufaelligeNotengebung { + + /** + * Fuehrt die Simulation aus. + */ + public void fuehreAus() { + Pruefungsverwaltung pruefungsverwaltung = new Pruefungsverwaltung(); + + for (int i = 0; i < 3; i++) { + String name = "Max Muster " + i; + double note = generiereZufaelligePruefungsnote(); + Pruefungsergebnis pruefungsergebnis = new Pruefungsergebnis(name, + note); + pruefungsverwaltung.speichereErgebnis(pruefungsergebnis); + } + + pruefungsverwaltung.druckeAntworttexte(); + } + + private double generiereZufaelligePruefungsnote() { + Random zufallszahlengenerator = new Random(); + zufallszahlengenerator.setSeed(zufallszahlengenerator.nextLong()); + double zufallszahl = zufallszahlengenerator.nextDouble(); + return zufallszahl * 5 + 1; + } + +}