Initial commit of the source files.
This commit is contained in:
parent
5746a73212
commit
741a85bc47
|
@ -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;
|
||||||
|
}
|
||||||
|
}
|
|
@ -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>
|
||||||
|
* <Name>, Sie haben an der Pruefung eine <Note> (<Note als
|
||||||
|
* Text>) erzielt und sind somit durchgefallen!</li>
|
||||||
|
* <li>
|
||||||
|
* Herzliche Gratulation <Name>! Sie haben an der Pruefung eine
|
||||||
|
* <Note> (<Note als Text>) 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!";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -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;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
Loading…
Reference in New Issue