Für die Verwaltung einer Schule, die die Jahrgangsstufen 5 bis 10 umfasst (z.B. Haupt- oder Realschule), soll ein Programm geschrieben werden.
Das Programm soll die Daten aller Lehrer und Schüler/innen der Schule in einer Liste verwalten.
Von allen Personen werden der Vor- und Nachname gespeichert. Darüber hinaus sind für die einzelnen Personengruppen folgende Daten relevant :
Lehrerinnen und Lehrer :
Schülerinnen und Schüler :
In einer weiteren Liste werden die zum Gebäude der Schule gehörenden Räume verwaltet. Dabei gilt :
Beide Listen werden ausschliesslich von der Sekretärin bzw. dem Sekretär verwaltet, die zwar auch zu den in der Schule tätigen Personen gehören, jedoch nicht in die Liste aufgenommen werden.
a. Betrachte das folgende mögliche Coad-Yourdan-Diagramm für die Verwaltung der in der Schule tätigen Personen.

Welche Beziehungen bestehen zwischen den Objektklassen des Diagramms?
Bei den Beziehungen zwischen Objektklassen wird zwischen Generalisierungs-Spezialisierungs-Strukturen (Ist-Beziehung), Ganzes-Teile- Strukturen (Hat-Beziehung, Aggregation) und Objektverbindungen (Kennt-Beziehung, Assoziation) unterschieden.
Generalisierungs-Spezialisierungs-Strukturen modellieren Gemeinsamkeiten von Objekten der realen Welt, die unterschiedlichen Klassen zugeordnet sind. Da die Unterklasse alle Eigenschaften der Objekte der Oberklasse besitzt, spricht man auch von Vererbung. Im vorliegenden Diagramm liegt diese Struktur bei der Beziehungen zwischen der Basisklasse 'Personen' und den Unterklassen Schueler, Lehrer und Sekretär/in vor.
Die Zerlegung komplexer Dinge in seine Einzelteile wird durch die Ganzes-Teile-Struktur modelliert. Sie liegt vor, wenn bezogen auf das zu modellierende System das Ganze die Verantwortung für seine Teilobjekte trägt. Das bedeutet, das die Existenz eines Teilobjekts unmittelbar von der Existenz des Ganzen abhängt. Im vorliegenden Diagramm liegt diese Struktur bei der Beziehungen zwischen Lehrer/Schueler und Personenliste vor.
Objektverbindungen erlauben die Modellierung von Abhängigkeiten zwischen Objekten, die entstehen, wenn ein Objekt für das Wahrnehmen seiner Aufgaben die Existenz anderer Objekte benötigt. Die Objekte sind im System völlig gleichberechtigt. Im vorliegenden Diagramm liegt diese Struktur bei der Beziehungen zwischen Sekretär/in und Personenliste vor.
Die genannten Unterrichtsinhalte wurde bei der Analyse und Synthese von C-Y-Diagrammen mehrfach erörtert und angewendet. Somit ist primär der Anforderungsbereich I angesprochen und nur zu einem geringen Teil der Bereich II.
b. Erstelle ein Coad-Yourdan-Diagramm für die Verwaltung der zum Gebäude der Schule gehörenden Räume. Verbindungen zu Objektklassen des Coad-Yourdan-Diagramms 'Personen' können durch einfache Namensnennung der entsprechenden Objekte in dem zu erstellenden Diagramm hergestellt werden. Die Methoden zur Manipulation der Attribute müssen nicht aufgeführt werden.

c. Erstelle anhand des Coad-Yourdan-Diagramms 'Personen' im Anhang die Objektklassen Personen, Lehrer, Schueler und Personenliste in der Programmiersprache C++.
Dabei gilt folgendes :
#include <string.h>
#include <iostream.h>
class Schueler:public Personen
{
friend class Liste1;
private:
char Klasse [2];
char AG [10];
int Kl_Raum;
public:
Schueler (char* Nn, char* Vn, char* Kl, char* A, int Raum)
: Personen (Nn, Vn)
{
strcpy (Klasse, Kl);
strcpy (AG,A);
Kl_Raum = Raum;
}
void insert ()
{
ptr = new Schueler (Nachname, Vorname, Klasse, AG, Kl_Raum);
}
};
class liste1
{
private:
Personen* kopf;
public:
liste1 ()
{
kopf = 0;
}
void insert (Personen* ele)
{
Personen* Lauf;
Personen* Vor;
Lauf = kopf;
Vor = 0;
while ((Lauf != 0) && (Lauf -> Nachname > ele -> Nachname))
{
Vor = Lauf;
Lauf = Lauf -> next;
};
ele -> insert();
ele -> ptr -> next = Lauf;
if (Vor == 0)
kopf = ele -> ptr;
else
Vor -> next = ele -> ptr;
}
};
d. Eine andere Schule verwaltet einige Daten über Schüler, Lehrer und Unterricht in einer Datenbasis der Programmiersprache PROLOG. Die folgende Datenbasis stellt einen Ausschnitt dar :
domains 3 schueler ("Dirk", 2, "Hls").Stelle folgende Anfragen an die Datenbasis :
i) Die Namen aller Schüler, die aus Kempen kommen.
ii) Die Namen aller Lehrer, die Mathematik unterrichten.
Die möglichen Lösungen lauten :
Anfrage a : Gib die Namen der Schüler aus, die aus Kempen kommen :
schueler (Name,_,"Kempen",_,_).
Anfrage b : Gib die Namen der Lehrer aus, die das Fach Mathematik
unterrichten : fachlehrer ("Mathematik",Lehrer).
Die Altersangaben der Schüler sind in einer Liste abgelegt.
Ermögliche folgende Anfrage an die Datenbasis, die die Anzahl der Schüler und ihr Durchschnittsalter ausgibt :
alter ([18,19,20,19], Anzahl, Durchschnitt)