Beispiel: "Artikelverwaltung"

  1. abstrakte Klasse Artikel 
    Diese Klasse soll als abstrakte Klasse deklariert werden. Die Klasse soll private Instanzvariablen zum Speichern der Marke, des Namens, der Version, des Startpreises (in Euro) und aller Gebote (in Euro) sowie entsprechende Zugriffsmethoden besitzen. Eine Methode getHoechstesGebot() soll das höchste Gebot auf einen Artikel zurückliefern. 
    Zusätzlich soll es eine konkrete Methode getPreis() geben, die den Preis den ein Bieter auf einen Artikel zahlen muss, berechnet. Der Preis eines Artikels wird an Hand des höchsten Gebots minus einem Rabatt wie folgt berechnet: Für Autos erhält man einen Rabatt, der von der Anzahl der abgegebenen Gebote abhängt (pro Gebot einen Rabatt von 0,5%, höchstens 5%), während man für Computer einen Rabatt abhängig von der Ausstattung bekommt (8% Grundrabatt minus 1% pro angegebenen Ausstattungspaket - abhängig vom höchsten Gebot). Zu diesem Zweck soll eine abstrakte Methode getRabatt() zur abstrakten Klasse Artikel hinzugefügt und innerhalb von getPreis() verwendet werden. 
     
  2. Klassen Autos und Computer 
    Es sollen zwei konkrete (nicht-abstrakte) Unterklassen Auto und Computer von der abstrakten Klasse Artikel abgeleitet werden. Die Unterklasse Computer hat zusätzliche Instanzvariablen für Prozessor, Arbeitsspeicher, und Ausstattung sowie entsprechende Zugriffsmethoden. Die Ausstattung soll in einem String-Array gespeichert werden. Die Unterklasse Auto hat zusätzliche Instanzvariablen für PS und Hubraum (ccm) sowie entsprechende Zugriffsmethoden. Beide Klassen sollen die Methode getRabatt() implementieren. Implementieren Sie zusätzlich die Methode toString() in geeigneter Art und Weise (Ausgabe aller Attribute). 
     
  3. Interface ArtikelDAO 
    Dieses Interface definiert die Data Access Object (DAO) Methoden für persistente Artikel Objekte. Das DAO Interface soll Methoden zum Einlesen und zum Auslesen von Artikeln aus einer Datei definieren. Die Methode leseArtikel() soll einen Vector mit allen verfügbaren Artikel Objekten zurückgeben. Der Methode speichereArtikel(Vector) soll ein Vector mit Artikeln übergeben werden. 
     
  4. Klasse AutoDAO und ComputerDAO 
    Diese Klassen sind Implementierungen des Interface ArtikelDAO, die die Methoden leseArtikel() und speichereArtikel() implementieren. Diese Klassen sollen einen Konstruktor haben dem der Filename übergeben wird. Die Klassen sollen jeweils alle Auto oder Computer Objekte in eine Datei speichern und diese wieder auslesen. Beispieldateien: computer.dat, auto.dat 
     
  5. Klasse ArtikelVerwaltung 
    Diese Klasse soll Methoden zum Einlesen sowie zum Auslesen von Artikeln (Auto und Computer) aus den genannten Dateien (unter Verwendung der Klassen AutoDAO, ComputerDAO und des Interfaces ArtikelDAO) sowie Methoden zur Berechnung und Ausgabe folgender Daten enthalten:  
    • Gesamtzahl der erfassten Artikel 
    • Gesamtzahl der Computer 
    • Gesamtzahl der Autos 
    • Durchschnittsgebot auf alle angebotenen Artikel 
    • Durchschnittsgebot auf alle angebotene Autos 
    • Durchschnittsgebot auf alle angebotenen Computer 
    • Anzahl aller abgegebenen Gebote (auf alle Artikel) 
    • Höchstes Gebot auf alle angebotenen Artikel 
    • Höchstes Gebot auf alle angebotene Autos 
    • Höchstes Gebot auf alle angebotenen Computer 
    • Ausgabe aller Artikel (Verwenden sie die von ihnen implementierte toString() Methode) 
    • Ausgabe aller Autos 
    • Ausgabe aller Computer 
       
  6. Klasse TestArtikelVerwaltung 
    Diese Klasse soll die Methode main() implementieren und mittels einer Instanz der Klasse ArtikelVerwaltung die geforderte Funktionalität realisieren. Das Programm soll in zwei Varianten ausführbar sein. Das Programm soll mit folgender Anweisung alle Methoden der Klasse AritkelVerwaltung ausführen und deren Ergebnis ausgeben (wobei autoFilename und computerFilename die jeweiligen Namen des Auto- und des Computer-Files sind):  
java TestArtikelVerwaltung ausgabe autoFilename computerFilename
 
Das Programm soll mit folgender Anweisung mindestens 10 Auto und 10 Computer Objekte erstellen und in die angegebenen Dateien speichern (wobei computerFilename und autoFilename die jeweiligen Namen des Computer- und des Auto-Files sind): 
 
java TestArtikelVerwaltung erstellen autoFilename computerFilename

Abgabemodalitäten:

Abgabetermin: Mittwoch, 31.10.2012 in den Übungseinheiten 
 
Minimalanforderungen für die Abgabe: 
 
  1. Demonstration des lauffähigen Programms mit sinnvollen Fehlermeldungen und sinnvollen Ausgaben. 
  2. Ausführlich dokumentierter (javadoc) Quelltext mit Name und Matrikelnummer. 
  3. Erstellung eines UML Klassendiagramms das alle implementierten Klassen (mit Variablen und Methoden und deren Sichtbarkeit) sowie deren Beziehungen beinhaltet. 
  4. Mit javadoc erstellte HTML Dokumentation.  
Aufruf von javadoc z.B.: javadoc -d docs -author *.java

Anmerkung:

Zur Abgabe des fertigen Java-Programms (inklusive Dokumentation) erstellen Sie in Ihrem Home-Verzeichnis ein Verzeichnis Abgabe2, das alle Source- und Class-Files sowie ein Unterverzeichnis docs mit der HTML Dokumentation und dem UML Klassendiagramm enthält.  
Letzte Änderung: 11.10.2012, 10:12 | 625 Worte