Dr. Andreas Borchert Abteilung Angewandte Informationsverarbeitung 02.06.2005
Norbert Heidenbluth Blatt 6


Uni Logo



Allgemeine Informatik II für Mathematiker/Wirtschaftsmathematiker
(SS 2005)



Abgabetermin: 09. Juni 2005

Aufgabe 8: You've got mail! (10 Punkte)

Ständig dieser Spam im Postfach, permanent Viren und Trojaner als Anhang -- es ist höchste Zeit, ein absolut sicheres E-Mail-System zu entwickeln, nicht wahr? Während Sie dies noch so denken, finden Sie diese Übungsaufgabe im Netz, die sich diesmal mit ``LOMS'' (The Light Oberon Mail System) befasst$\ldots$ ;-)

Das große Ziel dieser Aufgabe ist das Erstellen eines Messaging-Systems, mit dem sich verschiedene Benutzer auf dem lokalen Rechner kurze Textnachrichten senden können. Um sich einen Eindruck davon zu verschaffen, wie dieses Programm aussehen könnte, stellen wir Ihnen in dieser Woche wieder ein Binary (für Solaris und Linux) zur Verfügung.

Und so funktioniert das Programm:

Aufbau des Programms

Als ersten Schritt ist es wichtig, sich über den Aufbau des Programms, insbesondere die zu verwendenen Datenstrukturen Gedanken zu machen.

Was ist eine Nachricht?

Eine Nachricht enthält die Information über den Sender der Nachricht sowie einen beliebigen Inhalt (z.B. 255 Zeichen)

Was ist eine Mailbox?

Eine Mailbox ist eine Sammlung von Nachrichten eines bestimmten Benutzers. Dieser Benutzer ist eindeutig über seinen Namen zu identifizieren. Die Nachrichten sollten hierbei in Form einer doppelt verketteten linearen Liste abgelegt werden (Hinweise hierzu folgen in den Übungen).

Was ist das Mailsystem?

Das Mailsystem verwaltet alle Mailboxen und führt die Interaktion mit dem jeweils angemeldeten Benutzer durch. Die Verwaltung der Mailboxen soll hier in Form eines (nach dem Benutzernamen) sortierten Binärbaumes erfolgen.

Modularer Aufbau des Programms

Damit ergibt sich der modulare Aufbau dieses Programms, denn wir benötigen für die

jeweils eigene Module. Während wir erstere bereits aus dem Vorlesungs- bzw. Übungsbeispiel SortedBinaryTrees kennen und dies ohne Änderung übernehmen können, müssen die Module für doppelt verkettete Listen und die Programmlogik (``Hauptprogramm'') noch implementiert werden. Und dies stellt uns vor

Die Entscheidung: Entweder -- Oder

Auch in diesem Blatt brauchen Sie nur eines der beiden Module zu implementieren. Sie haben also die Wahl, welches Sie gerne bearbeiten möchten.

Das Modul für doppelt verkettete lineare Listen

Wenn Sie sich für diese Teilaufgabe entscheiden, dann finden Sie im FTP-Verzeichnis die DEFINITION-Datei (nebst Spezifikation), die Sie implementieren müssen.

Wichtig:

Bitte bedenken Sie, daß die Liste unabhängig von den zu speichernden Elementen gehalten werden muß. Sie sollte in der Lage sein, grundsätzlich alle möglichen Elemente zu verwalten.

Das Modul für die Programmlogik

Für dieses Modul geben wir keine DEFINITION-Datei vor -- Sie können es unter der Bedingung daß

nach Ihren Vorlieben gestalten.

Die fehlende Implementierung$\ldots$

$\ldots$ des jeweils anderen Moduls werden wir Ihnen zur Verfügung stellen, damit Sie Ihre Lösung testen können. Auf welche Weise wir dies genau machen, wird in den Übungen bzw. auf der Homepage noch beschrieben werden.

Viel Erfolg!



Norbert Heidenbluth 2005-06-01