Übungsblatt 6: Objektorientiertes PHP

Aufgabe 1: Kundenverwaltung

Definieren Sie eine Kundenverwaltung bestehend aus den folgenden Klassen, die intern bei der Instanzierung in privaten Variablen die jeweils hinter den Doppelpunkten angegebenen Daten speichern:

Die Daten, wie z. B. Bankname, BLZ, etc., sollen dabei in eigenen Klassenvariablen stehen.

Alle Klassen verfügen über eine magische __toString()-Methode zur Ausgabe ihrer internen Daten als Zeichenkette, die automatisch vom PHP-Interpreter aufgerufen wird, sobald ein Objekt als Zeichenkette ausgegeben werden soll. Entsprechend müssen im Rumpf der __toString()-Methode die relevanten Informationen mit return zurückgegeben werden.

Implementieren Sie einen Kunden mit den unten angegebenen Daten. Diese sollen vom Programm ausgegeben werden, wenn das Kundenobjekt mit Hilfe von echo ausgeben wird.

Wilhelm Meister, 30
Adresse: Literatenweg 10, 99400 Weimar
Bankverbindung: Leipziger Bank, BLZ: 591838, Konto-Nr.: 1795

Aufgabe 2: Premiumkunden

In der letzten Übung erstellten Sie eine Kundenverwaltung bestehend aus den folgenden Klassen:

In diesen Klassen wurden jeweils bei der Instanzierung in privaten Variablen die hinter den Doppelpunkten angegebenen Daten gespeichert.

Erweitern Sie diese Klassen um eine weitere Klasse für die Verwaltung von Premiumkunden. Premiumkunden können einen Gutschein über einen bestimmten Eurobetrag erhalten. Zusätzlich zu den Daten eines normalen Kunden wird deswegen bei Premiumkunden während der Instanzierung die Höhe dieses Gutscheinbetrags abgespeichert:

Nutzen Sie Möglichkeiten zur Redundanzreduktion, die sich aus der Anwendung von Vererbung ergeben.

Auch die Klasse für Premiumkunden soll über eine magische __toString()-Methode zur Ausgabe ihrer internen Daten als Zeichenkette verfügen.

Implementieren Sie einen Premiumkunden mit den unten angegebenen Daten. Diese sollen vom Programm ausgegeben werden, wenn das Premiumkundenobjekt mit Hilfe von echo ausgegeben wird.

Wilhelm Meister, 30
Adresse: Literatenweg 10, 99400 Weimar
Bankverbindung: Leipziger Bank, BLZ: 591838, Konto-Nr.: 1795
Gutscheinhöhe: 10

Aufgabe 3: Erweitertes Ausdrücke auswerten

Der Taschenrechner ist zur Zeit in der Lage, einfache Ausdrücke der Art 3.5 + 2.1 auszuwerten. Mit dieser Aufgabe soll diese Funktionalität etwas erweitert und mit Hilfe von Klassen implementiert werden.

Erweitern Sie Ihren Taschenrechner um folgende Klassen:

Ausgabe der Klasse für das Auswerten von Ausdrücken
Abb.1: Erweitertes Ausdrücke auswerten mit PHP-Klasse und ein paar Beispielausgaben

  1. Eine Klasse Ausdruck zum Auswerten von Ausdrücken der Form AoB, die als Zeichenkette geliefert werden. Dabei repräsentieren A und B Zahlenwerte. o repräsentiert den Operator +, -, * oder /. Die Klasse besitze

  2. Definieren Sie auf der Grundlage von Ausdruck die Klasse VAusdruck, die Ausdrücke der Form AoB==C, die wieder als Zeichenkette geliefert werden, auswerten kann. A, B und C repräsentieren erneut Zahlenwerte. o wieder den Operator +, -, * oder /. Die Klasse besitze

  3. Erweitern Sie ihren Taschenrechner dahingehend, dass dieser nun prüft, ob im ersten Operandenfeld ein Ausdruck übergeben wurde, der ein == sowie einen der oben genannten Operatoren enthält. Ist dies der Fall, erzeugt der Taschenrechner ein Objekt der Klasse VAusdruck und übergibt diesem die eingelesene Zeichenkette zur Auswertung. Der Taschenrechner liefert danach das Ergebnis der Auswertung, in der in Abbildung 1 gezeigten Form, an den Browser.