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:
Bankverbindung: Bankname, BLZ, Kontonummer
Adresse: Straße, Hausnummer, PLZ, Ort
Mensch: Name, Vorname, Alter
Kunde: Mensch, Adresse, Bankverbindung
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:
Bankverbindung: Bankname, BLZ, Kontonummer
Adresse: Straße, Hausnummer, PLZ, Ort
Mensch: Name, Vorname, Alter
Kunde: Mensch, Adresse, Bankverbindung
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:
Abb.1: Erweitertes Ausdrücke auswerten mit PHP-Klasse und ein paar Beispielausgaben
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
einen Konstruktor, der bei Instanzierung der Klasse einen
derartigen Ausdruck als Zeichenkette entgegennimmt und diese
intern in einer Variablen abspeichert.
Eine Methode berechne(), die beim Aufruf die intern
gespeicherte Zeichenkette auswertet und das Verknüpfungsergebnis
der enthaltenen Zahlenwerte zurückliefert.
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
einen Konstruktor, der bei Instanzierung der Klasse, den als
Zeichenkette übergebenen Ausdruck AoB==C in die zwei
rechts und links von == stehenden Teile zerlegt und
diese Teile intern abspeichert.
Eine Methode berechne(), in der die Auswertung des
Ausdrucks AoB==C geschieht. Diese
liefert die Wahrheitswerte true oder false,
je nachdem, ob die beiden Seiten, der im Ausdruck enthaltenen
Gleichung, gleich sind oder nicht.
Nutzen Sie in VAusdruck die in Ausdruck bereits
vorhandenen Methoden und vermeiden Sie so Coderedundanz.
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.