Initial commit of the source files.

This commit is contained in:
Bernhard Tellenbach 2017-09-17 17:07:23 +02:00
parent 5746a73212
commit 741a85bc47
3 changed files with 153 additions and 0 deletions

View File

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

View File

@ -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<Pruefungsergebnis> ergebnisse = new ArrayList<Pruefungsergebnis>();
private HashMap<Double, String> noteVonZahlZuText = new HashMap<Double, String>();
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. <br />
* <br />
* Je nachdem ob der Kandidate die Pruefung bestanden (>= 4.0) oder nicht
* bestanden (< 4.0) hat, wird ein Text in folgendem Format ausgegeben:
*
* <ul>
* <li>
* &lt;Name&gt;, Sie haben an der Pruefung eine &lt;Note&gt; (&lt;Note als
* Text&gt;) erzielt und sind somit durchgefallen!</li>
* <li>
* Herzliche Gratulation &lt;Name&gt;! Sie haben an der Pruefung eine
* &lt;Note&gt; (&lt;Note als Text&gt;) erzielt und somit bestanden!</li>
* </ul>
*/
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!";
}
}
}

View File

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