Prof. Dr. Franz Schweiggert Abteilung Angewandte Informationsverarbeitung 6. Juni 2001
Ingo Melzer Blatt 5


Uni Logo



Implementierung kleiner Datenbanken unter UNIX (SS 2001)


Abgabetermin 21. Juni 2001

5 Speichert die Punkte (20 Punkte)

Gegeben sei ein einfacher Punkteserver. Dieser arbeitet auf einer Datei punkte, deren erste Zeile den Aufbau definiert:

login:kl,100:1,10:2,10:3,20:4,10:5,20

kl steht für Klausur, die Zahlen nach dem Komma geben jeweils die zu erreichende Punktezahl an. Die Zahl vor dem Komma identifiziert das Übungsblatt, das Attribut login den Studenten. Zu beachten ist, dass die Reihenfolge der Attribute nicht vorgegeben ist. Bei einer anderen Vorlesung könnte der login oder die Klausur auch hinten stehen.

Die Einträge (Tupel) zu den Übungsblättern haben die Form (login,Zahl) oder sind einfach leer (nichts eingetragen). login identifiziert hier den Tutor, der die Punktezahl (Zahl) eingetragen hat:

borchert:swg,99:swg,9:swg,9:swg,19::melzer,20

Wenn ein neues Übungsblatt erscheint, ergänzt der Übungsleiter die Kopfzeile um ein weiteres Paar (Blattnummer,Punktezahl) und fügt bei allen Einträgen am Ende der Zeile einen Trenner (:) an.

Schreiben Sie ein tcl-Skript insert für unsere Tutoren, das für einen übungsteilnehmer die Punkte einträgt.

Aufruf: insert.tcl <blattnummer> <student> <punkte>

Wichtig ist, dass die Datei bezüglich der Einträge sortiert bleibt!

Ist für einen Studenten zum angegebenen Blatt bereits etwas eingetragen, soll dies nicht ohne Nachfrage überschrieben werden. Außerdem ist der Eintrag zu verweigern, wenn die angegebene Blattnummer nicht existiert oder die angegebene Punktezahl die Maximalpunktzahl (Kopfzeile) übersteigt (negative Punktezahlen sind natürlich auch nicht erlaubt. Lediglich bei der Klausur darf -1 für nicht teilgenommen eingetragen werden). Der Name des Tutors ist vom Programm selbst zu ermitteln, daher sollten Sie sich zu Testzwecken ruhig als Tutor fühlen; dies gilt auch für das Anlegen eines neuen Übungsblatts.



Ingo Melzer 2001-06-06