Freitag, 6. März 2009
Literaturverwaltung
Jemand will Zeitschriftenartikel, Bücher und Internet-Links für seine Recherchen verwalten. Schreiben Sie dazu eine Java-Klasse (plus eventuelle Hilfsklassen), welche es ermöglicht diese Daten in einer RandomAccess-Datei zu speichern. Folgende Daten sollen in der Klasse
Die Klasse
Implementieren Sie das Löschen so, dass der jeweilige Eintrag als gelöscht markiert wird (zusätzliches Feld) und diese Änderung in der Datei gespeichert wird. Der Datensatz ist also physisch noch in der Datei. Bei der Methode
Umgekehrt muss bei
Schreiben Sie ein kleines Testprogramm zum Testen Ihrer Klassen.
Anmerkung: Die Daten sind für eine echte Anwendung nicht ausreichend und müssten unterteilt werden, da es z.B. mehrere Autoren für einen Artikel gibt.
Hinweis: hier finden Sie eine Testklasse zum Testen der Klasse
Nennen Sie das Projekt
Eintrag
erfasst werden:- autor -
String(100)
- titel -
String(100)
- erscheinungsjahr -
int
- verlag -
String(30)
- zeitschrift -
String(30)
- seiten -
String(10)
- link -
String(60)
String(100)
bedeutet, dass dafür maximal 100 (genau 100) Zeichen gespeichert werden soll. Sie können das so implementieren, dass kürzere Strings hinten mit Leerzeichen gefüllt werden. Längere Strings müssen abgeschnitten werden. Für eine eventuelle Anzeige/Ausgabe müssen aber die Füllzeichen entfernt werden. Die Klasse Eintrag
ist mit entsprechenden Getter- und Setter-Methoden auszustatten (die bei den Strings das Abschneiden und Auffüllen bewerkstelligen).Die Klasse
Literatur
für die Verwaltung der Datensätze soll folgende Methoden bereitstellen:public void neuerEintrag(Eintrag eintrag)
- fügt einen neuen Eintrag in die Datei ein.public Eintrag lese(int nummer)
- liefert den Eintrag an der Stellenummer
odernull
, falls dieser Eintrag nicht existiert.public void loescheEintrag(int nummer)
- löscht den Eintrag an der Stellenummer
(tut nichts, wenn es den Eintrag nicht gibt).
public Literatur(RandomAccessFile file)
Implementieren Sie das Löschen so, dass der jeweilige Eintrag als gelöscht markiert wird (zusätzliches Feld) und diese Änderung in der Datei gespeichert wird. Der Datensatz ist also physisch noch in der Datei. Bei der Methode
lese()
muss also im Falle eines gelöschten Eintrags null
geliefert werden.Umgekehrt muss bei
neuerEintrag()
zunächst ein gelöschter Eintrag gesucht werden. Wird ein solcher gefunden, so wird er durch den neuen ersetzt (Lösch-Markierung muss wieder zurückgesetzt werden). Wird kein gelöschter Datensatz gefunden, so ist der neue an die Datei anzuhängen.Schreiben Sie ein kleines Testprogramm zum Testen Ihrer Klassen.
Anmerkung: Die Daten sind für eine echte Anwendung nicht ausreichend und müssten unterteilt werden, da es z.B. mehrere Autoren für einen Artikel gibt.
Hinweis: hier finden Sie eine Testklasse zum Testen der Klasse
Literatur
. Die Klasse Literatur
muss wie diese Testklasse im Package literatur
sein. Weiters muss die Library für JUnit 3 angegeben werden. Diese Testklasse trifft gewissen Annahmen zur Implementierung von Literatur
und Eintrag
. Bitte passen Sie entweder die Testklasse an Ihre Implementierung an oder Sie ändern Ihre Literatur
bzw. Eintrag
-Klassen entsprechend (z.B. nimmt der Test an, dass es eine read()
und eine write()
-Methode gibt, die einen Datensatz ("in sich hinein") list bzw. einen Datensatz ("sich selbst") schreibt (jeweils an die Position, die in Literatur
bestimmt wurde).Nennen Sie das Projekt
klasse-literatur-name
(klasse
... 2ad, 2bd, 2cd, name
... Ihr Familienname), z.B. 2ad-literatur-haberstroh
.Abonnieren Posts [Atom]
Kommentar veröffentlichen