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. |
|
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: Wichtiger Hinweis: Falls Inhalte von Verweisen (Links) nicht angezeigt werden, könnte das an einer falschen Konfigurierung des Zielservers liegen. Versuchen Sie dann mit Rechtsklick und Öffnen im neuen Fenster bzw. Register dort in der Adresszeile zu Beginn das angegebene Protokoll (https://) in die unsichere Variante (http://) zu ändern und den Link so aufzurufen. |
|
|
|
© 2005-2019 Ziemke .:. Letzte Aktualisierung am 12. März 2019 durch den WebMaster