• Keine Ergebnisse gefunden

Programmier-Klausur Programmieren 2 – PZR 1 (21.1.2019)

N/A
N/A
Protected

Academic year: 2022

Aktie "Programmier-Klausur Programmieren 2 – PZR 1 (21.1.2019)"

Copied!
2
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Programmier-Klausur

Programmieren 2 – PZR 1 (21.1.2019)

Erlaubte Hilfsmittel:

Rechner (auch der eigene)

IDE (IntelliJ, Netbeans, Eclipse)

Dokumentationen Java

Ihre selbst programmierten Java-Klassen

Nur bei der Abgabe: Webbrowser um die Lösungen in Moodle einzustellen Ablauf:

Dauer: 90 Minuten

1. Lesen Sie die Aufgabe aufmerksam!

2. Implementieren Sie die Aufgabe!

3. Laden Sie die Lösung auf Moodle hoch.

Fragen? Fragen Sie so, dass alle Frage und Antwort hören können.

Aufgabe:

Implementieren Sie einen Rechner, der lediglich die Addition anbietet. Der Rechner soll folgende Funktionen anbieten:

Er soll zwei Integer-Zahlen addieren können (binäre Operation)

Der Rechner hat einen Speicher. Er speichert das Ergebnis jeder Operation.

Der Speicher kann gelöscht werden, d.h. er wird auf 0 gesetzt

Man kann eine Zahl zum aktuellen Speicher addieren (unäre Operation)

Der Speicher kann in einem File persistent gemacht werden (save). Realisieren Sie die Persistenz mit dem Memento-Pattern. Nutzen Sie nicht das Serialization- Interface. Der Zustand des Rechners kann aus dem File wieder erzeugt werden (restore).

Gehen Sie nach den Prinzipien der testgetriebenen Entwicklung: Sie entwerfen ein

Interface, implementieren Tests (mit Junit Version 4 oder älter) und implementieren dann den Code.

Danach implementieren Sie eine Nutzerschnittstelle (Kommandozeile). Nach dem Start des Programms sollen der Rechner folgende Kommandos von der Kommendozeile (Standard- Input) lesen und folgende Ausgabe (Inhalt des Speichers) auf Standardout produzieren können:

add 41 1 Ausgabe: 42→ Ausgabe: 42

add 3 Ausgabe: 45→ Ausgabe: 42

clear Ausgabe: 0→ Ausgabe: 42

add 3 Ausgabe: 3→ Ausgabe: 42

save Ausgabe: 3→ Ausgabe: 42

add 1 Ausgabe: 4→ Ausgabe: 42

(2)

restore Ausgabe: 3→ Ausgabe: 42

add 1 Ausgabe: 4→ Ausgabe: 42

Implementieren Sie einen Test, der demonstriert, dass die gerade beschriebene Abfolge von Kommandos abläuft. Hinweis: Die Implementierung des Nutzerinterface wird als genauso aufwendig angesehen wie die Implementierung des restlichen Programms.

Referenzen

ÄHNLICHE DOKUMENTE

Es soll durch einen Weltraum fliegen, indem es Asteroiden, einzusammelndes Leergut und gefrorene Wasserstoffklumpen, n¨ utzlich als Treibstoff, gibt, beim Fliegen soll es

Geben Sie dieser Klasse einen geeigneten Namen und überlegen Sie sich geeignete Methoden.. Beachten Sie die diskutierten Regeln

Implementieren Sie einen endlichen deterministischen Automaten. Ein solcher Automat startet in einem Startzustand. Dann kann man ihm Zeichen übergeben. Wir nehmen einen String

Implementieren Sie einen endlichen deterministischen Automaten. Ein solcher Automat startet in einem Startzustand. Dann kann man ihm Zeichen übergeben. Wir nehmen einen String

Er soll über einen Speicher verfügen, in dem das Ergebnis der letzten Operation gespeichert wird.. Dieser Speicher wird mit 0

Die Eingabe bewirkt, dass das Element mit dem Namen gelöscht wird.. Gibt es das Element nicht,

Der Automat soll nach dem Lesen der gesamten Eingabe ein Symbol für Ja / Nein zurück geben – es bietet sich ein boolean-Wert an.. Er teilt so mit, ob die gelesenen Zeichen einen

Diese Klassen soll außerdem in der Lage sein, Werte aus einem File zu lesen und und anhand der Werte Asset-Objekte zu erzeugen.. Überlegen Sie, ob sich auch bei der