Programmieren II (WF2)

Aufgabenblatt 2: Objektorientierte Entwicklung

Aufgabe 2.1: Adresskartei - Design

Adresskartei

In dieser Übung soll eine kleine Adresskartei entwickelt werden. Sie soll insbesondere folgende Eigenschaften besitzen:

  • Eine Schnittstelle oder Klasse Eintrag, welche einen Eintrag in der Kartei repräsentiert. Ein Eintrag der Adresskartei beinhaltet immer zumindest Vorname, Nachname, eine Adresse und optional einen Firmennamen und eine oder mehrere Telefonnummern.
  • Bei der Adresse handelt es sich entweder um eine Hausanschrift (Strasse, Hausnummer, PLZ, Stadt), eine Postfachanschrift (Postfachnummer, PLZ, Stadt) oder eine internationale Anschrift (Adresse als Freitext). Jeder Adresstyp soll durch eine eigene Klasse repräsentiert sein. Gemeinsame Eigenschaften und Schnittstellen lagern Sie in eine abstrakte Klasse oder ein Interface aus.

Die eigentliche Anwendung wird in der Konsole über Menüeingaben gesteuert und bietet folgende Möglichkeiten:

  • Anlegen eines beliebigen Eintrags.
  • Ausgabe der gesamten Adressliste wahlweise in Kurzform (nur Vor- und Nachname) oder ausführlicher Form.
  • Ausgabe aller Einträge deren Nachname eine einzugebende Zeichenkette enthält.
  • Verlassen des Programms (nach Sicherheitsabfrage).

Gehen Sie wie folgt vor:

  1. Überlegen Sie sich, welche Begriffe (Klassen) für die Implementierung der Adresskartei eine Rolle spielen, z.B. Eintrag, Anschrift, Postanschrift, Suche,... Versuchen Sie dabei Funktionalität und Benutzerführung zu trennen.
  2. Welche Informationen speichern die jeweiligen Klassen? Was ist jeweils ihre Aufgabe?
  3. Wie arbeiten die Klassen zusammen? Können Sie durch Vererbung gemeinsame Eigenschaften zusammenfassen? Welche Klasse benötigt eine Referenz auf eine andere Klasse?

Zeichnen Sie ein Klassendiagramm, das Ihren Entwurf verdeutlicht!

Aufgabe 2.2: Adresskartei – Implementierung

Implementieren Sie die Adresskartei nach Ihrem Klassendiagramm. Schreiben Sie begleitend dazu eine Testklasse, welche eine Kartei mit verschiedensten Einträgen erzeugt und dann gesammelt ausgibt.

Bleiben Sie flexibel: Wenn Sie merken, dass Ihre Architektur nicht funktioniert, passen Sie diese (und Ihr Programm) an.

Hat Ihr Softwareentwurf funktioniert? Was lief gut? Was schlecht?

Hinweis: Sie werden im Verlauf des Semesters Ihre Adresskartei erweitern und als Scheinaufgabe abgeben!