Übungsprojekt für die Stunde

06.02.2017 06:28 Uhr

Beispiel einer Spezifikation einer Semesterarbeit

Das ist ein Übungsbeispiel, nicht die Semesteraufgabe für das Wintersemester 16/17. Diese finden Sie (am Ende der Stunde) auf den letzten Seiten zum Semester.

 


 

Hintergrund

Bis vor relativ kurzer Zeit wurden Datierungen häufig nach den Heiligen des Kalenders vorgenommen. „Der Kalender“ variierte dabei von Diözese zu Diözese, sodaß ein und derselbe Heilige in unterschiedlichen Territorien zu unterschiedlichen Zeiten gefeiert wurde.

Gesucht ist ein Programm, das uns einerseits mitteilt, an welchem Tag ein Heiliger gefeiert wurde, andererseits, welcher Heilige für einen Tag zuständig ist. Der Benutzer hat also die Möglichkeit, einen Heiligennamen einzugeben und erhält dann den Tag an dem diese(r) Heilige gefeiert wird oder eine Kombination aus Tag und Monat einzugeben, worauf mitgeteilt wird, wer an diesem Tag gefeiert wird.

Für diesen Zweck stehen Dateien zur Verfügung, die aus Zeilen folgenden Formats bestehen:

 

Divisio Apostolorum/15.7

Also:

  • Der Name des / der Heiligen,
  • gefolgt von einem Schrägstrich,
  • und einem Datum in der Form <Tag> <Monat>,

Testdaten stehen in der Datei heilige.txt zur Verfügung.

 

Aufgabenstellung I

Lesen Sie dies Datei in eine geeignete Struktur ein und erlauben Sie einem Benutzer, zunächst auszuwählen, ob er einen Namen oder ein Datum eingeben möchte.

Entscheidet sich der Benutzer für eine namentliche Suche, kann er einen Namen eingeben. Hat der Benutzer „xyz“ eingetippt, antwortet das System entweder mit der Meldung:

Dieser Heilige ist unbekannt!

oder mit

Dieser Heilige wird am x.x. gefeiert.

Entscheidet sich der Benutzer für eine zeitliche Suche, kann er ein Datum eingeben. Hat der Benutzer „x.x“ eingetippt, antwortet das System entweder mit der Meldung:

Zu diesem Datum gibt es keinen Eintrag!

oder mit

An diesem Tag wird xxx gefeiert.

 

Aufgabenstellung II

Verwandeln Sie die grundsätzliche Lösung von Aufgabenstellung II in eine allgemeinere, objektorientierte.

  • Definieren Sie eine Klasse „Kalender“.
  • Diese Klasse hat eine Methode „ladekalender(…)“ mit der ein bestimmter Heiligenkalender geladen wird,
  • eine Methode „sucheheiligen(…)“ mit der ein Name gesucht wird und
  • eine Methode „suchedatum(…)“ mit der ein bestimmtes Datum gesucht wird.
  • Implementieren Sie diese Methoden (und etwa notwendige zusätzliche) Methoden so, daß der benutzende Programmierer möglichst wenig über das Funktionieren Ihres Programmes wissen muß.

 

Datei: heilige.txt

Schlagwörter: