Beispiel Angabe
Kürzel: | SimpleCalculator |
Runde: | 1 |
Name: | Einfacher Rechner |
Evaluieren als: | Java |
Kette: | Upn-Rechner |
Eingabe: | Integer |
Kategorie: | Rechner |
Ausgabe: | Integer |
Mitgelieferte Datei(en):
Abzugebende Datei(en): Calculator.java
Optional abzugebende Datei(en):
Ausführbar: Calculator
Die Klasse Calculator ist zu erstellen und soll eine
ausführbare Klasse sein und muss daher die public static void main(String args[])
Methode beinhalten.
Ihr Programm wird automatisch auf Korrektheit überprüft.
Die Überprüfung erfolgt durch die Ausführung der als
ausführbar bezeichneten Klasse (Calculator).
Kurzbeschreibung:
Rechner mit den 4 Grundrechnungsarten.
Allgemeine Hinweise:
-
Die Groß- und Kleinschreibung ist relevant! Beachten Sie ganz genau die Angaben zu den
Funktions- und Dateinamen.
-
Die abzugebende Datei(en) müssen für die Abgabe ausnahmslos archiviert werden.
Das Format der Archiv muss Zip sein, Programme wie WinZip, WinRar, jar (kommt mit der Java JDK Distribution)
können Sie für die Archivierung verwenden. Dateiendung des Archivs muss .zip oder .jar sein.
jar syntax:
-
Archivierung: jar Mcvf archiv_name.jar * (oder einzelne Dateien statt *)
-
Inhalte anzeigen: jar tf archiv_name.jar
-
Extrahieren: jar xvf archiv_name.jar
-
Ihr Programm darf nur genau jene Ausgabedaten liefern, die in der Spezifikation
verlangt werden. Die Ausgaben Ihres Programms werden automatisch mit
Referenzdaten verglichen; etwaige Abweichungen führen zu Punkteabzügen!
-
Testen Sie Ihr Programm vor der Abgabe mit den mitgelieferten Eingabedateien.
Geben Sie Ihre Lösung erst ab, wenn die Ausgaben Ihres Programms mit der
ebenfalls mitgelieferten Ausgabedatei übereinstimmen! Testen Sie Ihr
Programm auch mit anderen Eingabedaten.
-
Ihr Programm muss immer den Prozess Return Code 0 liefern. Verwenden Sie daher
keine
System.exit(1)
-artige Unterbrechungen in Ihrem Programm.
Am besten verzichten Sie völlig auf System.exit() Aufrufe da dadurch der
laufende JVM gewaltsam terminiert wird.
-
Verwenden Sie die Klasse
Scanner
zum Einlesen von Daten.
Für die Ausgabe können Sie die Methoden System.out.print
und
System.out.println
benutzen. Zum Erzeugen formatierter Ausgaben können
Sie auch System.out.printf
benutzen (wird im Allgemeinen aber nicht benötigt).
Beachten Sie, dass wir bei der Beurteilung einen US-amerikanischen Region- und
Spracheinstellungssatz (locale) f¨r die Beurteilung benutzen.
Das bedeutet, dass wir für die Darstellung von double
-Werten auch bei
der Ein-/Ausgabe immer den Dezimalpunkt (und nicht Beistrich) benutzen
(z.B. 3.14159 und nicht 3,14159). Falls Sie auf Ihrem Rechner eine andere Einstellung haben,
können Sie zum Testen zuhause auch die Darstellung mit Beistrich benutzen (ist aber nicht
konsistent mit den mitgelieferten Ein-/Ausgabe-Paaren) oder beim Aufruf von Java auch folgenden Befehl
benutzen:
java -Duser.language=en -Duser.country=US Calculator
Sie werden sehen, dass dann während des Ablaufs des Programmes bei der Eingabe
von double
-Werten eine Darstellung mit Dezimalpunkt erwartet wird.
Wenden Sie sich bei Problemen mit den Ein-/Ausgabefunktionen bitte an die Tutoren im Labor.
-
Programme, die Packages oder Klassen außerhalb der verwendeten Übungsumgebung
(J2SE Development Kit (JDK) 5.0)
verwenden, können von uns nicht getestet und beurteilt werden!
-
Schreiben Sie Ihr Programm möglichst allgemein und kommentieren Sie es
gut. Die Kommentare im Programm gelten als Dokumentation.
Die Dokumentation Ihrer Programme wird ebenfalls beurteilt. Es ist
erlaubt/erwünscht die Kommentare javadoc-konform zu erstellen.
Spezifikationsspezifische Hinweise:
Bemerkung zur Entwicklungumgebung und Java Version:
Sie können die Entwicklungumgebungen J2SE JDK5 oder JDK6 benutzen. Für die Funktionen, die in EPROG benutzt werden (Scanner, Math, Collections, etc) spielt es keine Rolle, welche der beiden Versionen Sie benutzen.
Wenn Sie spezielle Java6-spezifische Erweiterungen (Sprachelemente) benutzen, die in Java 5 noch nicht existieren, kann es zu Problemen bei der automatischen Bewertung kommen (in EPROG werden diese nicht besprochen und sind nicht prüfungsrelevant). Fragen Sie bitte im Zweifelsfall einen Tutor.
Voraussetzungen: Grundlagen, Arithmetic und Variablen, Datentypen, Typ Boolean, Kontrollstrukturen, Umgang mit Scanner
(wird spätestens in Lektion3 der Vorlesung behandelt).
Hinweis zum Einlesen/Ausgaben von Daten (siehe auch Vorlesungsfolien)
Verwenden Sie zum Einlesen von Daten (Zeichenketten, Zahlenwerten) die Klasse Scanner
, die in der Vorlesung behandelt wurde (siehe Vorlesungfolien unter Downloads). Die Methoden der Klasse Scanner
sollen zum Einlesen von Eingabedaten von der Standardeingabe (Eingaben des Benutzers in der Console während der Laufzeit des Programmes) benutzt werden. Zum Erzeugen der Ausgabe verwenden Sie bitte System.out.print
, bzw. System.out.println
. Damit wird die Ausgabe auf der Standardausgabe (Console) erzeugt. Ihr Programm soll nicht aus Dateien lesen und auch keine Ausgabedateien erzeugen.
Zum Testen Ihres Programmes können Sie die Eingabebeispiele (siehe unten) aus der Angabe kopieren (z.B. das ASCII-Bild mit der Maus markieren und <STRG>-'C' kopieren und beim Ablauf des Programmes in der Console mit <STRG>-'V' eingeben, danach müssen Sie in einer neuen Zeile EOF (z.B. mit <STRG>-'Z' unter Windows) erzeugen). Alternativ (empfohlen) können Sie die Eingabe aus einer Datei umleiten. Weitere Hinweise zum Testen Ihres Programmes finden Sie hier. Bei Fragen wenden Sie sich bitte an die Tutor/inn/en im Labor.
Aufgabenstellung:
Lesen Sie 2 Zahlen und einen Rechenoperator (+,-,*,/) von der Standardeingabe ein. Anschliessend wird die Operation durchgeführt und das Erbegnis ausgegeben.
Eingabedaten:
2 Zahlen vom Typ Integer (int
) und ein Rechenoperator.
Ausgabedaten:
Nach dem Beenden der Eingabe geben Sie das Ergebnis der Rechenoperation als Integer, gefolgt von einem Zeilenvorschub aus.
Fehlerbehandlung:
Bei einem Fehler wird FALSCHE EINGABE gefolgt von einem Zeilenvorschub ausgegeben.
Beenden der Eingabe unter Windows:
Sie können Ihr Programm, wie unten beschrieben mit IO-Paaren testen. Falls Sie die Eingabe über die Console machen beachten Sie Folgendes:
Unter Windows wird "End of File" in der Konsole mit der Tastenkombination <STRG>-'Z' erzeugt.
Das Zeichen <STRG>-'Z' muss dabei am Anfang einer Zeile stehen, geben Sie also z.B. für das letzte Beispiel 1 2 <ENTER> und dann <STRG>-'Z' ein.
Testen:
In |
1 2
|
Out |
FALSCHE EINGABE
|
Beschreibung |
Rechenoperator fehlt |
|
In |
1 5 10
|
Out |
FALSCHE EINGABE
|
Beschreibung |
10 ist kein Rechenoperator |
|
In |
1 + 1
|
Out |
FALSCHE EINGABE
|
Beschreibung |
+ ist keine Zahl |
|
In |
1 2 +
|
Out |
3
|
Beschreibung |
addition |
|
In |
3 a +
|
Out |
FALSCHE EINGABE
|
Beschreibung |
a ist keine Zahl |
|
In |
10 5 /
|
Out |
2
|
Beschreibung |
division |
|
In |
5 2 /
|
Out |
2
|
Beschreibung |
Integerdivision |
|
Bemerkung: Diese Beispiele dienen nur zur Verdeutlichung der Spezifikation und
müssen nicht korrekt formatiert sein. Die korrekte Formatierung entnehmen Sie
bitte dem mitgelieferten Outputfile. Zum Testen Ihrer Lösung
können Sie aus den mitgelieferten Eingabedaten wie folgt eine Ausgabedatei
erzeugen:
java Calculator < SimpleCalculator.i1 > SimpleCalculator.out1
Das erzeugte File SimpleCalculator.out1 können Sie dann mit
dem mitgelieferten Outputfile SimpleCalculator.o1 vergleichen.