Prof. Dr. Franz Schweiggert Abteilung Angewandte Informationsverarbeitung 11. November 2004
Dr. Johannes Mayer Blatt 4


Uni Logo



Software Engineering Praxis (WS 2004/2005)


Abgabetermin: 19. November 2004

1 Wieviel Punkte hab i denn? (5 Punkte)

Helfen Sie doch mal unserem SLC auf die Sprünge bei der Berechnung Ihrer aktuellen Punktesumme. Gegeben ist eine kleine Unix-Datenbank punkte.db mit den Punkten aller Vorlesungen in allen Semestern für alle Studenten und alle Übungsblätter ... ufz - gut, die Beispieldatei ist etwas klein. ;-) Jede Zeile in der Datei stellt einen Datensatz dar. Die einzelnen Spalten (Vorlesungs-ID = LID1, Semester, Blattnummer, erreichte Punkte, Login des Studenten) sind durch ,,:`` voneinander getrennt.

Schreiben Sie ein kleines Java-Programm, das als Kommandozeilen-Argumente das Semester, die LID und den Login erwartet und die entsprechende Punktesumme berechnet und ausgibt. Behandeln Sie dabei auch falsche Parameteranzahl, falsches Format von Datenbankeinträgen und Ein-/Ausgabefehler geeignet (für ein Kommando).

Beispiel-Session:

thales$ java Summe
Usage: java Summe <Semester> <LID> <Login>
thales$ java Summe WS2004 CS104 tom
Punktesumme: 20
thales$ java Summe WS2004 CS104 tomi
Es existierte kein passender Eintrag!
thales$ java Summe WS2004 CS100 tom
Es existierte kein passender Eintrag!
thales$

Tipp: Zum ,,Aufsplitten`` der Zeilen können Sie einen regulären Ausdruck verwenden (siehe Beispiel).

2 Wer isch'n alles dau? (5+3 Punkte)

Jetzt haben Sie noch eine weitere Tabelle studiert.db mit der Zuordnung Login zu Studiengang-ID (ebenso mit Spaltentrenner ,,:``) und eine letzte Tabelle studiengang.db, die zu jeder Studiengangs-ID die Bezeichnung des Studiengangs enthält.

Schreiben Sie nun ein Programm, das von der Kommandozeile eine Vorlesungs-ID und ein Semester erhält und eine Liste aller Studiengänge ausgibt, von denen mindestens ein Student mindestens ein Blatt zu dieser Vorlesung schon mal bepunktet bekam (d.h. zusammen mit der Vorlesung in der punkte.db auftaucht). Hinter jedem Studiengang soll die Anzahl dieser Studenten, die schon mindestens ein Blatt zu dieser Vorlesung abgegeben haben, angegeben werden.

Die 3 Bonuspunkte gibt's, wenn Sie zusätzlich die Ausgabe noch so organisieren, dass die Studiengänge absteigend nach den Anzahlen sortiert sind. (Dazu müssen Sie aber ein bisschen Recherche in der Javadoc von Paket java.util betreiben. Dann ist's dafür aber nicht mehr viel zu programmieren. ;-)

Beispiel-Session:

thales$ java Teilnehmer
Usage: java Teilnehmer <Semester> <LID>
thales$ java Teilnehmer WS2004 CS104
Diplom Mathematik       2
Diplom Informatik       2
Diplom Wirtschaftsmathematik    1
Master Informatik       1
thales$

Viel Erfolg!



Fußnoten

... LID1
Die LID ist nur eindeutig zusammen mit dem Semester!


Johannes Mayer 2004-11-11