Prof. Dr. Franz Schweiggert Abteilung Angewandte Informationsverarbeitung 15. Mai 2003
Johannes Mayer Blatt 2


Uni Logo



Software Engineering Praxis (SS 2003)


Abgabetermin: 22. Mai 2003

1 Punktesumme (10 Punkte)

Am Ende des Semesters möchten Sie bestimmt einen Schein für die Übungen. Dann stehen wir wieder vor der Aufgabe, ihre Punkte bei den Übungsblättern zu zählen. Dazu schreiben Sie jetzt schon ein Perl-Skript, um uns dabei zu unterstützen.

Gegeben ist eine (etwas veränderte Version) der kleinen Unix-Datenbank Ass_Done.db, die unter anderem die Spaltennamen nicht mehr enthält. Schreiben Sie ein Perl-Skript, das als (Kommandozeilen-)Argumente die Vorlesungs-ID, das Semester und den Login (des Studenten) erhält und dann die Punkte in allen Blättern (positive Nummern! - Klausuren haben negative Nummern) dieses Studenten in der angegebenen Vorlesung aufsummiert und ausgibt. Gibt es kein Blatt, so soll dies durch eine andere Ausgabe deutlich gemacht werden. Stimmt die Anzahl der Argumente nicht, so soll eine ,,Usage``-Meldung ausgegeben werden.


Beispiel:

theseus$ sum.pl
Usage: ./sum.pl <lid> <semester> <login>
theseus$ sum.pl CS104 SS2003 norm
norm has 18 points.
theseus$ sum.pl CS104 SS2003 abba
No entry for abba.
theseus$

Tipps:

2 Projektionen (10 Punkte)

Schreiben Sie ein kleines Perl-Skript, mit dem man eine kleine Unix-Datenbank auf ein paar Spalten projezieren kann. Auf der Kommandozeile muss als erstes Argument der Dateiname der Tabelle und als weitere - mindestens eines - Argumente die Indizes der Spalten in der Ausgabetabelle angegeben werden. Als Spaltentrenner wird ^ verwendet. Die Ausgabetabelle soll keine Zeile mehrfach enthalten. Die Spaltenindizes können in beliebiger Reihenfolge angegeben werden und auch doppelt vorkommen.


Beispiel:

theseus$ cut.pl
Usage: ./cut.pl <db> <index> {<index>}
theseus$ cut.pl 1
Usage: ./cut.pl <db> <index> {<index>}
theseus$ cut.pl
Usage: ./cut.pl <db> <index> {<index>}
theseus$ cut.pl Ass_Done.db 0
CS101
CS104
theseus$ cut.pl Ass_Done.db 1 0 1
SS2003^CS101^SS2003
SS2003^CS104^SS2003
theseus$

Tipps:

Viel Erfolg!



Johannes Mayer 2003-05-15