Aufgabe4.jar
sind in Ihrem Arbeitsverzeichnis prog1-uebungen\
neben dieser Aufgabenstellung Aufgabe4.html
noch zwei .txt-Dateien für das automatische Testen und
ein Paketverzeichnis aufgabe4\ hinzugekommen:
aufgabe4-diff*.txt | Dateien mit Sollausgaben |
aufgabe4\package-info.java | Paketdokumentation |
aufgabe4\Klausurergebnis.java | zu vervollständigendes Java-Programm |
Öffnen Sie ein Terminal im Arbeitsverzeichnis prog1-uebungen\ und
erweitern Sie Ihre HTML-Dokumentation um das Paket aufgabe4 mit dem Kommando
ant doc
Öffnen Sie dann die gewohnten Quellen im Browser:
doc/aufgabe4/package-summary.html
https://www-home.htwg-konstanz.de/~drachen/prog1/prog1.html
https://docs.oracle.com/en/java/javase/21/docs/api/java.base/module-summary.html
Als Voraussetzung für das Bearbeiten dieser Aufgabe sollten Sie die Vorlesungsunterlagen bis
mindestens Seite 4-22 nachbereitet und die zugehörigen Programmbeispiele nachvollzogen haben,
insbesondere
Maximum.java,
maximum\Maximum.java,
maximum\IntegerMethods.java,
ClassVar.java
aufgabe4.Notenaufgabe4 eine öffentliche Utility-Klasse Noten,
die das Notensystem der HTWG Konstanz beschreibt und zwar mittels der folgenden Elemente:
BESTE und
SCHLECHTESTEdouble, die mit der besten bzw. schlechtesten zulässigen Note initialisiert sindistZulaessig(String),true liefert,
wenn die Note zulässig ist, sonst false.Die Methode soll keine Fehlermeldungen auf das Terminal schreiben. Zu den zulässigen Noten siehe Übungsaufgabe 3. Die Anweisungen für das Prüfen der Noten können Sie mit geringen Änderungen von dort übernehmen.
toDouble(String),double zurückliefert.IllegalArgumentException geworfen werden.toString(double),BESTE und SCHLECHTESTE einschließlich liegen
soll eine IllegalArgumentException geworfen werden.
Verwenden Sie String.format mit der Formatangabe %.1f,
um die Darstellung mit einer Nachkommastelle zu erreichen.
istBestanden(double),true liefert, wenn die im Parameter übergebene Note kleiner oder gleich
4.0 ist, sonst falsebessere(double, double) und
schlechtere(double, double),aufgabe4.Klausurergebnisaufgabe4.Klausurergebnis:
aufgabe3.Notenstatistik.aufgabe4.Klausurergebnis
analog zu aufgabe3.Notenstatistik.java, nur jetzt mit Hilfe der Klassenvariablen und
Klassenmethoden Ihrer neuen Klasse aufgabe4.Noten.
Für unzulässige Noten soll anders als in Übungsaufgabe 3 eine einheitliche Fehlermeldung
"Unzulaessige Note ... wird ignoriert!"
auf die Standardausgabe geschrieben werden (die Unterschiede zwischen alten und neuen Meldungen
finden Sie auch in den Testdateien aufgabe4-diff*.txt).
Sie müssen in aufgabe4.Klausurergebnis alle Klassenvariablen und
alle Klassenmethoden von aufgabe4.Noten sinnvoll verwenden.
Ersetzen Sie nach getaner Arbeit die TODO:-Markierungen in den Zeilenkommentaren durch DONE:. Sie dürfen die TODO:-Zeilenkommentare nicht löschen. Die Kommentare sollen als Gliederung des Programms erhalten bleiben.
Ihre Lösung darf nur Java-Sprachmittel und Java-Bibliotheksklassen enthalten, die bereits in der Vorlesung besprochen wurden oder die in dieser Aufgabenstellung explizit vorgeschlagen sind.
Haben Sie alle Klassenvariablen und alle Klassenmethoden von aufgabe4.Noten
in aufgabe4.Klausurergebnis sinnvoll verwendet?
Klausurergebnis.java muss javac die Klasse
Noten finden. Wenn Sie javac im Arbeitsverzeichnis aufrufen,
funktioniert das problemlos:
javac aufgabe4\Klausurergebnis.javaWenn Sie
javac im Paketverzeichnis aufrufen,
müssen Sie alle .java-Dateien angeben:
javac *.javaoder mit der Option
-cp das Arbeitsverzeichnis als Class-Path angeben:
javac -cp .. KlausurErgebnis.java
java aufgabe4.Klausurergebnis < aufgabe3-in1.txt > out1.txt java aufgabe4.Klausurergebnis < aufgabe3-in2.txt > out2.txt java aufgabe4.Klausurergebnis < aufgabe3-in3.txt > out3.txt diff -w aufgabe3-out1.txt out1.txt | diff -w - aufgabe4-diff1.txt diff -w aufgabe3-out2.txt out2.txt diff -w aufgabe3-out3.txt out3.txt | diff -w - aufgabe4-diff3.txt
Die Linux-Kommandofolgen mit diff dürfen wie gehabt keine Unterschiede zwischen der
Soll-Ausgabe und Ihrer Ausgabe finden. Verwenden Sie bei Bedarf zur Fehlersuche das compare-Plugin
in notepad++ oder die compare-Funktionalität in VS Code.
ant -Dpackage=aufgabe4 style
ant -Dpackage=aufgabe4 clean bugsspotbugs schreibt seine Meldungen nicht auf den Bildschirm, sondern in eine Datei
bugs.html, die Sie mit einem Webbrowser anschauen müssen.Sie sind erst fertig, wenn das Programm funktioniert, diff keine Unterschiede zwischen Soll-Ausgabe und Ihrer Ausgabe mehr findet sowie die Werkzeuge checkstyle und spotbugs keine Fehler mehr melden!
Führen Sie die drei schon bei Aufgabe 3 verwendeten Testfälle vor.
Zeigen Sie das ausgefüllte Teilnahmeprotokoll.
Erstellen Sie eine Klasse aufgabe4.schweiz.Noten.
Die Klasse soll genau die gleichen Klassenvariablen und -methoden haben wie die Klasse
aufgabe4.Noten, soll aber das Schweizer Notensystem beschreiben.
Erlaubt sind (in dieser Schreibeweise) die Noten
1 1,5 2 2,5 3 3,5 4 4,5 5 5,5 6
Beste Note ist dabei die 6, schlechteste die 1.
Als bestanden gelten Noten größer oder gleich 4.
Die einzige Änderung in der Main-Klasse aufgabe4.Klausurergebnis
ist die Anweisung
import aufgabe4.schweiz.Noten;
am Dateianfang.
Erstellen Sie Dateien mit Solleingaben für automatisierte Tests
analog zu den drei Dateien aufgabe3-in*.txt.