Programmier-Klausur
Programmieren 2 – PZR 1 (24.1.2020)
Erlaubte Hilfsmittel:
• Rechner (auch der eigene)
• IDE (IntelliJ, Netbeans, Eclipse)
• Dokumentationen Java (auch die Online-Javadoc von Oracle)
• 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 Ihre Frage hören können.
Aufgabe:
Implementieren Sie einen Rechner. Ein UI ist nicht nötig. Der Rechner arbeitet generell mit Integerwerten. Er soll über einen Speicher verfügen, in dem das Ergebnis der letzten Operation gespeichert wird. Dieser Speicher wird mit 0 initialisiert.
Der Rechner verfügt über zwei Operationen: Addieren und Subtrahieren. Beide Operationen erhalten lediglich einen Parameter. Dieser Parameter wird zu dem Wert im Speicher addiert bzw. subtrahiert. Das Ergebnis steht wiederum im Speicher.
Es soll eine Methode existieren, die den Speichers auf 0 zurück setzt. Es soll eine weitere Methoden existieren, die den Wert des Speichers zurück gibt.
Eine letzte Methode ermöglicht es, den Speicher auf der vorherigen Wert
zurück zu setzen. Damit kann jeweils die letzte Operation rückgängig gemacht werden. Das Zurücksetzen soll nicht nur einmal funktionieren, sondern beliebig oft bis zum Zurücksetzen der ersten Operation.
Der Rechner speichert alle notwendigen Daten (welche das sind, ist Ihnen überlassen) in einem File. Nach einem neuen Erzeugen des Rechner-Objektes hat es den gleichen Zustand wie zuvor – insbesondere können weiterhin die vorherigen Operationen rückgängig gemacht werden.
Für die Implementierung der Persistenz nutzen Sie ausschließlich Input- und Outputstream, konkret File(in/out)putStream und Data(in/out)putStream.
Nutzen Sie nicht das Serialization-Interface.
Beweisen Sie die Funktionsfähigkeit des Programms mittels Tests und halten Sie sich an die Konventionen guten Stils und beachten Sie Prinzipien guten Programmierens wie z.B. program-to-interface in Java.