OSZ Handel I
Informatik

1. Kurshalbjahr
Übungsaufgabe
Objektorientierte Analyse (Lösung)

Johann Penon

[Wirtschaftsgymnasium | Informatik | Unterrichtsmaterialien]
[Textende]

 

Beispielprogramme Kreis und Rechteck (Delphi-Projekte gezippt)
Quellcode  uKreisfenster.pas und uKreis.pas

Zur Berechnung eines Kreisinhalts soll ein Mini-Programm erstellt werden. Die Daten werden lediglich numerisch ein- und ausgegeben. Die Figur wird nicht auf dem Bildschirm dargestellt.

TKreis

Radius
Create
Init
SetRadius
GetRadius
InhaltBerechnen
  1. a) Spezifizieren (d.h. kompletter Klassen-Typ in Pascal) Sie eine Klasse TKreis!
    TKreis hat außer den Standardmethoden eine Methode zum Berechnen des Inhalts.
    Musterlösung:
    type
      TKreis = class
        private
          Radius,
          Inhalt : real;
    
       public
         constructor Create;
         procedure Init;
         procedure SetRadius (r : real);
         procedure BerechneInhalt;
         function GetRadius : real;
         function GetInhalt : real;
    end;
    
    (* -------------------- B e s c h r e i b u n g -------------------------
    
    Oberklasse : TObject
    Bezugsklassen : -
    
    Methoden
    --------
    Create
      Auftrag: Kreis erzeugen und Initialisieren
      vorher : -
      nachher: Kreis ist erzeugt, alle Datenfelder sind leer.
    
    Init
      Auftrag: Kreis Initialisieren
      vorher : ist erzeugt
      nachher: alle Datenfelder sind leer.
    
    Set...
      Auftrag: Attribut schreiben
      vorher : Kreis ist vorhanden.
      nachher: Attribut ist gesetzt
    
    Get...
      Anfrage: Attribut aus dem Objekt lesen
      vorher : Kreis ist vorhanden.
      nachher: -
    
    BerechneInhalt: real;
      Anfrage: Attribut Inhalt mit dem Ergebnis Kreisberechnungsformel füllen
      vorher : Kreis ist init. und Radius hat einen Wert
      nachher: Attribut Inhalt enthält das Ergebnis
    ----------------------------------------------------------------------- *)
  2. b) Schreiben Sie die Implementation für die Zugriffsmethoden SetRadius und GetRadius!

    Musterlösung
    
    procedure TKreis.SetRadius (r : real);
    (*****************************************************************)
    begin
       Radius := r;
    end;
    
    function TKreis.GetRadius :real;
    (*****************************************************************)
    begin
       result := Radius;
    end;
    
  3. Alle Daten sollen in der GUI-Klasse auf dem Bildschirm eingegeben bzw. dargestellt werden.
  1. Listen Sie alle Bildschirmkomponenten für die Ein- und Ausgabe und solche, die Sie zur Ablaufsteuerung brauchen mit aussagekräftigen Bezeichnern!

    Musterlösung

    TitelLbl: TLabel;
    RadiusLbl: TLabel;
    RadiusEdt: TEdit;
    InhaltLbl: TLabel;
    EndeBtn: TButton;
    BerechneBtn: TButton;
    InhaltAusgabeLbl: TLabel
     

  2. Schreiben Sie in Pascal die Methoden zum Transport der Daten zwischen GUI und Datenmodell!

    Musterlösung

    procedure TKreisFenster.DatenAktualisieren;
    begin
        Kreis.SetRadius(StrToFloat(RadiusEdt.Text));
        Kreis.BerechneInhalt;
    end;

    procedure TKreisFenster.FensterAktualisieren;
    begin
        InhaltAusgabeLbl.Caption := FloatToStr(Kreis.GetInhalt);
    end;

Letzte Änderungen: 10.08.05 - © J. Penon