Übungen zu Softwareentwicklung 1, WS 2007/08

Werbung
Übungen zu Softwareentwicklung 1, WS 2007/08
Name: ________________________________________ Abzugeben bis:
Übung 6
Mi, 05.12.2007 12:00
Matrikelnummer: _______________________________ Bearbeitungsdauer in Stunden: _______
Nummer d. Übungsgruppe: ________________________ Name des Tutors: _________________
Name d. Übungsleiters: ___________________________ Punkte: _________________________
Aufgabe 1: Modellierung eines Autos
8 Punkte
Implementieren Sie die Klassen Car, Tire und Engine aus der realen Welt in Java. Jede dieser
Klassen soll die folgenden Attribute und Methoden aufweisen, welche im Objektdiagramm unten
angeführt sind. Überlegen Sie sich, wie Sie die Referenzierung der drei Klassen in Ihrem Programm
realisieren.
Tire
Objektdiagramm:
Car
brand: String
type: String
price: double
weight: int
tires: Tire[]
engine: Engine
getPrice(): double
getTaxedPrice(): double
getSumPrice(): double
getTaxedSumPrice(): double
getWeight(): int
getSumWeight(): int
toString(): String
summerTire: boolean
price: double
year: int
…
weight: int
getPrice(): double
getTaxedPrice(): double
getWeight(): int
toString(): String
Engine
cylinder:int
producer: String
price: double
weight: int
getPrice(): double
getTaxedPrice(): double
getWeight(): int
toString(): String
Schreiben Sie ein Testprogramm, das Ihre festgelegte Objektstruktur anlegt (inkl. Referenzen
zwischen den Objekten) und bei der Erstellung eines Autos mit Hilfe eines Konstruktors alle
Variablen initialisiert. Beachten Sie in Ihrem Programm, dass nur ein Auto angelegt werden kann,
falls alle erforderlichen Werte vom Benutzer korrekt eingegeben wurden. Weiters sollen die
Methoden ihrer drei Klassen auf korrekte Funktionsweise getestet werden.
Hinweis: Bei dem vom Benutzer einzugebenden Preis für ein Auto soll es sich um den Nettobetrag
handeln. Die Methode getPrice() in der Klasse Car soll also beispielsweise nur den Nettopreis
des Autos ohne Reifen und Motor zurückliefern. Die Methode getTaxedPrice() hingegen soll
den Bruttopreis des Autos berechnen (zB: durch Multiplikation des Preises mit 1,2).
Aufgabe 2: Bibliotheksverwaltung
16 Punkte
Eine kleine Bibliothek benötigt ein System zum Verwalten von Buchentleihungen. Setzen Sie ein
solches System um indem Sie folgende Klassen erstellen:
ƒ
ƒ
ƒ
ƒ
Customer
Book
Lending
Library
Klasse Customer
Für einen Kunden soll es möglich sein, dessen Name, Kundennummer, Adresse und dessen
Telefonnummer zu speichern. Die Daten eines Kunden sollen bei der Erstellung eines neuen
Kunden festgelegt werden können.
Klasse Book
Für jedes Buch soll es möglich sein, dessen Titel, Autor, ISBN und Entlehnpreis (pro Tag) zu
speichern. Ihre Klasse soll einen Konstruktor enthalten mit dem alle Attribute dieser Klasse gesetzt
werden. Bieten Sie über eine Methode die Möglichkeit an, dass der Entlehnpreis eines Buches
geändert werden kann.
Klasse Lending
Für jede Entlehnung soll die Klasse Lending das Entlehnungsdatum, die Kundennummer und die
ISBN des entlehnten Buches aufweisen.
Die Klassen Customer, Book und Lending sollen alle:
ƒ
ƒ
ƒ
geeignete Konstruktoren aufweisen mit denen die Werte gesetzt werden können,
eine Methode toString() beinhalten mit der alle Informationen eines Kunden ausgegeben
werden können und
„getter“- und „setter“-Methoden enthalten mit denen die Werte der Attribute gesetzt und
abgerufen werden können.
Klasse Library
Die Klasse Library soll zur Verwaltung der Kunden, Bücher und Entlehnungen der Bibliothek
herangezogen werden. Zur Speicherung der Objekte dieser Klassen sollen Sie Arrays verwenden.
Dabei können Sie eine fixe Gröβe vordefinieren. Konkret soll die Klasse Library folgende
Funktionalitäten anbieten:
ƒ
ƒ
ƒ
Es sollen neue Bücher und Kunden in die Bibliothek hinzugefügt und gelöscht werden
können.
Es sollen weiters Methoden angeboten werden mit der Entlehnung vorgenommen werden
können, der Entlehnstatus eines Buches ermittelt werden kann und der Entlehner eines Buches
ermittelt werden kann.
Zur Rückgabe der Kosten für Entlehnungen soll eine Methode implementiert werden, welche
die Kosten von einem definierten Ausleihdatum bis zum aktuellen (heutigem) Datum ermittelt
(Entlehnpreis * Entlehndauer in Tage).
Anmerkungen:
Bedenken Sie, die Parameter der Methoden auf Gültigkeit zu überprüfen und dies entsprechend
zurück zu melden ist. Falsche Initialisierungen sollen durch Fehlermeldungen an den Benutzer
gemeldet und korrigierbar sein. Zur Hilfestellung der erforderlichen Implementierung liegt Ihnen
eine Java Dokumentation (Ordner: JavaDoc_Aufgabe2) bei. Verwenden Sie die definierten
Variablennamen und Methodenschnittstellen bei Ihrer Implementierung und achten Sie auf die
Erfüllung der definierten Funktionsweise der jeweiligen Methoden!
Zum Testen der Funktionsweise Ihrer implementierten Klassen steht Ihnen ein entsprechendes
Verwaltungsprogramm (LibraryManagement.java) zur Verfügung. Vervollständigen Sie dieses
Programm in den dementsprechenden Codezeilen (gekennzeichnet mit TODO).
Herunterladen