Universität Ulm - Abteilung Angewandte Informationsverarbeitung
Der Studentenrecord soll um das Feld Semester (Datentyp INTEGER)
erweitert werden. Hierzu müßt Ihr eine Funktionsprozedur CompareSemester
implementieren, um die Semester miteinander vergleichen zu können (im Prinzip
copy und paste!) und zusaetzlich ein weiteres Unixargument einführen:
Der Schwerpunkt des neuen Übungsblattes liegt bei der Unixargument- und Unixdateiverarbeitung. Eure Aufgabe ist es, die Studentendaten aus einer Datei einzulesen, die Daten zu Sortieren und abschließend die sortierten Daten wieder in Dateien abzuspeichern!
Dabei sollen die Datendatei und - wie aus dem letzten Übungsblatt bekannt -
die Sortierkriterien über Unixargumente angegeben werden können:
BubbleSortFiles studenten.txt -vsm
Die Studentendaten werden in diesem Beispiel aus der Datei studenten.txt
gelesen und der Reihe nach nach Vorname, Semester und Matrikelnummer sortiert.
Die 3 Eregebnisdateien enthalten die Studentendaten sortiert nach Vorname,
Student und Matrikelnummer. Der Name der Ergebnisdateien kann im Programm
,,fest verdrahtet`` werden.
Die Studentendaten sind nach folgendem Muster abgespeichert:
Frank:Zeder:Informatik:98538539:1 Andrea:Honold:Biologie:23345321:3 Michaela:Abt:Medizin:12234534:9 Ralf:Maier:Medizin:43565643:12 Julia:Hofer:Wirtschaftsmathematik:87898767:3 Julia:Hof:Medizin:12345679:4 usw.
In Oberon gibt es eine Funktion Read.Field bzw. Read.FieldS
(für Streams) mit der es möglich ist, Daten getrennt nach Spalten einzulesen.
Als Spaltentrenner dient in unserem Fall der Doppelpunkt. In den Übungen werde
ich die hierzu benötigten Module und Prozeduren vorstellen und die entsprechenden
Beispielprogramme ins Netz stellen.
Um dem Anwender die Benutzung Eures Programms zu erleichtern, soll eine
Fehlermeldung ausgegeben werden, falls die Datendatei nicht existiert
oder falls keine oder falsche Sortierargumente übergeben werden.
Abschließend soll errechnet werden, welche Studenten (Informatiker, Biologen,
WiMas usw...) im Durchschnitt am längsten studieren! Das Ergebnis soll in
einer Datei - z.B. studienzeit.txt - abgespeichert werden!
Viel Erfolg!