Fenstersystem


Story

In dieser Übung simulierst du ein fensterbasiertes Computersystem. Du erstellst einige Fenster, die sich verschieben und in der Größe ändern lassen und ihren Inhalt anzeigen. Das folgende Bild steht beispielhaft für die Werte, mit denen du unten arbeitest.

                  <--------------------- screenSize.width --------------------->

       ^          ╔════════════════════════════════════════════════════════════╗
       |          ║                                                            ║
       |          ║          position.x,_                                      ║
       |          ║          position.y  \                                     ║
       |          ║                       \<----- size.width ----->            ║
       |          ║                 ^      *──────────────────────┐            ║
       |          ║                 |      │        title         │            ║
       |          ║                 |      ├──────────────────────┤            ║
screenSize.height ║                 |      │                      │            ║
       |          ║            size.height │                      │            ║
       |          ║                 |      │       contents       │            ║
       |          ║                 |      │                      │            ║
       |          ║                 |      │                      │            ║
       |          ║                 v      └──────────────────────┘            ║
       |          ║                                                            ║
       |          ║                                                            ║
       v          ╚════════════════════════════════════════════════════════════╝

Aufgaben

Das sind Beispielaufgaben, die zu der Story passen, ein vereinfachtes Fenstersystem für ein Betriebssystem zu implementieren:

  • Definiere eine Size-Struktur
  • Definiere eine Position-Struktur
  • Definiere eine Window-Klasse
  • Füge eine Methode hinzu, um Fenster in der Größe zu ändern
  • Füge eine Methode hinzu, um Fenster zu verschieben
  • Füge Methoden hinzu, um den Fenstertext zu aktualisieren und Fensterinformationen anzuzeigen
  • Erstelle ein neues Window

Terminologie

Das sind Empfehlungen, keine Regeln, für wiederkehrende Begriffe in den Instruktionen (einschließlich der Stub-Kommentare):

  • screenSize bezieht sich auf die Größe des gesamten Bildschirms
  • size bezieht sich auf die Größe der Fenster, die auf dem Bildschirm erscheinen.
  • position bezieht sich auf die Position der oberen linken Ecke jedes Fensters relativ zur oberen linken Ecke des Bildschirms.

Implementierungen

Referenzen