Materialien im GK/LK Informatik der Stufe 13:

Klassenbildung und UML-Darstellung
am Beispielprojekt Strasse

Aufgabe:

Es soll die (vereinfachte) Darstellung einer Straße und der darauf zu errichtenden Häuser mit einer sinnvollen Klassenhierarchie umgesetzt werden. Die OOA wird durch ein Klassendiagramm realisiert.

Anschließend soll eine Implementierung in Delphi die OOP-Praxis weiter schulen; hierzu kann eine [ Demo ] betrachtet werden.

In einer Straße der Klasse TStrasse sollen mehrere Häuser stehen: (eingeschossige Bungalows, zwei- oder dreigeschossige Gebäude). Die Breite der Häuser ist jeweils gleich (dasFünffache der Fensterbreite), jedes Erdgeschoss hat eine Tür und ein Fenster, die Obergeschosse haben zwei Fenster. Die Bungalows sind flach gedeckt, alle übrigen Gebäude haben ein Satteldach mit sichtbarer Giebelseite. Die Fenster sind anfangs dunkel (Zustand zLichtAn also false), die Türen geschlossen (zTuerAuf ist false).

a) Führen Sie hierzu eine objektorientierte Analyse (OOA) durch, erstellen Sie ein UML-Klassendiagramm und kommentieren Sie dieses knapp. Es sollte eine Klasse THaus und die Klassen TFenster und TTuer (jeweils mit Attributen, Konstruktor, Destruktor und Methode Init()) enthalten. Wägen Sie auch die Verwendung von Stockwerkklassen (EG, OG) ab und begründen Sie Ihre Entscheidung. Tipp: Verwenden Sie für die spätere Implementierung der Häuser, Dächer, Fenster und Türen Shapes (Shape-Eigenschaft stRectangle bzw. stEllipse).

b) Wenn der Hauszustand zDaheim wahr ist und der Straßenzustand zTag falsch ist, sollen die Fenster erleuchtet sein. Eine Änderung in zDaheim verursacht das (kurzzeitige) Öffnen der Tür. Implementieren Sie die hierzu notwendigen Methoden unter Verwendung der Pseudoanweisung warten(5000).

c) Straßen mit Reihenhäusern, dichter oder lockerer Bebauung (kein Häuserabstand oder einfache, doppelte, dreifache Häuserbreite) sollen möglich sein, nachts soll der Hintergrund dunkelgrau erscheinen.

Beschreiben Sie, wie Sie die Beziehung zwischen TStrasse und THaus realisieren wollen, und notieren Sie eine Schnittstellenbeschreibung von TStrasse.

d) Der Straßenzustand zStromWeg verursacht nachts völlige Dunkelheit auf der Straße.
Ergänzen Sie das Notwendige im Klassendiagramm.

 

e) Implementieren Sie nun das Projekt objektorientiert in Delphi gemäß der obigen Analyse. Hinweise: Verwenden Sie zur Darstellung des Satteldaches die Shape-Art Ellipse. Um die notwendige Überdeckung herzustellen, muss die Parent-Eigenschaft des Daches (im Konstruktor zu THaus) vor der des Hauses selbst gesetzt werden! Owner und Parent muss hier leider jeweils die Strasse (und nicht das Haus) sein, auch für Tür und Fenster. Erweitern Sie das Projekt durch ein Formular, in dem zu jedem neuen Haus die wesentlichen Eigenschaften ausgewählt werden können.

Weitere Materialien:


© 2005 Ziemke .:. Letzte Aktualisierung am 5. Oktober 2005 durch den WebMaster