Method Summary - Hochschule Osnabrück

Werbung
Prof. Dr. Stephan Kleuker
Hochschule Osnabrück
Fakultät Ing.-Wissenschaften und Informatik
- Software-Entwicklung -
Grundlagen Programmierung
Wintersemester 2011/12
Aufgabenblatt 5
15. Aufgabe (12 Punkte, Achtung: Klausurähnlichkeit)
Schreiben Sie eine neue Klasse Messreihe, die als Objektvariablen den Messort und eine
Sammlung von ganzzahligen Messwerten enthält. Zu jeder der folgenden Teilaufgaben
wurden bereits Tests in der von der Veranstaltungsseite erhältlichen Klasse MessreiheTest
geschrieben, prüfen Sie, dass alle Tests erfolgreich durchlaufen.
Hinweis: Natürlich dürfen Sie weitere Methoden zum Strukturieren Ihres Programms oder bei
Code-Wiederholungen schreiben. Sie dürfen die Tests auch ergänzen und z. B. sinnvolle
Fehlermeldungen ausgeben.
Überlegen Sie bei den zu erstellenden Methoden immer, wie Sie Spezialfälle (null-Werte,
leere Listen) sinnvoll bearbeiten müssen, damit es zu keinen Fehlermeldungen kommt.
a) Realisieren Sie die genannte Klasse mit Konstruktor, get- und set-Methoden für alle
Objektvariablen, einer hinzufuegen(Integer)-Methode für Messwerte mit der ein
Messwert in die Sammlung eingefügt wird, und einer toString()-Methode für eine
nette Ausgabe (ArrayList-Objekte realisieren toString() bereits sinnvoll).
b) Schreiben Sie eine Methode min(), die den kleinsten Messwert zurückgibt. Falls es
keinen Messwert gibt, soll die Zahl null zurückgegeben werden.
c) Schreiben Sie eine Methode durchschnitt(), die den Durchschnitt der Messwerte als
Double-Wert zurück liefert (ein Integer kann durch „* 1.0“ in einen Double-Wert
gewandelt werden).
d) Schreiben Sie eine Methode anzahlZwischen(Integer,Integer), die zwei ganzzahlige
Grenzwerte min und max übergeben bekommt und die Anzahl der Elemente
zurückgibt, die innerhalb dieser Grenzen (einschließlich) liegen.
e) Schreiben Sie eine Methode zweiGleiche(), die genau dann true zurückgibt, wenn es
mindestens zwei gleiche Messwerte gibt.
f) Schreiben Sie eine Methode verschieden(Messreihe), die ein Messreihen-Objekt
übergeben bekommt und die genau dann true zurückgibt, wenn kein Messwert in
beiden Objekten vorkommt, z. B. soll {3,3,2,4,4} zusammen mit {1,5,5,5} true
ergeben.
g) Schreiben Sie eine Methode alleWerteGleichOft(Messreihe), die ein MessreihenObjekt übergeben bekommt und die genau dann true zurückgibt, wenn jeder Wert der
einen Messreihe genauso oft in der anderen Messreihe vorkommt, z. B. soll
{3,3,2,4,4} zusammen mit {4,3,2,4,3} true ergeben.
16. Aufgabe (6 Punkte)
Schreiben Sie ein Programm, das es dem Nutzer ermöglicht, Rechtecke auf einem
Interaktionsbrett zu zeichnen und wieder zu löschen. Sie müssen dazu folgende Methoden
nutzen, damit Sie wieder auf die Rechtecke zugreifen können (vgl. vorherige Aufgaben).
Method Summary
void loescheObjekt(java.lang.Object quelle,
java.lang.String name)
Ein mit den Parametern quelle und name vorher erzeugtes
graphisches Element wird gelöscht.
void neuesRechteck(java.lang.Object quelle,
java.lang.String name, java.lang.Integer x,
java.lang.Integer y, java.lang.Integer breite,
java.lang.Integer hoehe)
Methode zum Zeichnen eines neuen Rechtecks, das verändert
und dessen Nutzung beobachtet werden kann.
Seite 1 von 2
Prof. Dr. Stephan Kleuker
Hochschule Osnabrück
Fakultät Ing.-Wissenschaften und Informatik
- Software-Entwicklung -
Grundlagen Programmierung
Wintersemester 2011/12
Aufgabenblatt 5
Die Methode loescheObjekt(Object, String) bietet die Möglichkeit, Rechtecke wieder zu
löschen. Damit dies möglich ist, müssen die Rechtecke unterschiedliche Namen erhalten.
Achten Sie weiterhin darauf, dass sich die Rechtecke zwar berühren dürfen (Ränder
nebeneinander), aber nicht überlappen. Nutzen Sie zur Verwaltung der Rechtecke eine
eigene Klasse Rechteck (Sie können selbstgeschriebene Klassen aus vorherigen Aufgaben
nutzen und erweitern). Informieren Sie den Nutzer jeweils über Fehleingaben. Ein
Nutzungsdialog kann wie folgt aussehen, Eingaben sind umrandet.
Anmerkungen: Damit Sie beim Ausprobieren nicht immer wieder viele Rechtecke eingeben
müssen, können Sie z. B. eine Methode ergänzen, mit der drei von Ihnen fest vorgegebene
Rechtecke bereits ergänzt werden, im folgenden Beispiel haben die Rechtecke die Namen
„R1“, „R2“ und „R3“. Sie dürfen vereinfachend davon ausgehen, dass der Nutzer nur positive
Werte eingibt. Überlegen Sie sich auf Papier, welche Fälle es von Überlappungen von
Rechtecken geben kann.
(0) Programm beenden
(1) neues Rechteck
(2) Rechteck loeschen: 1
eindeutiger Name: Ute
X-Wert: 60
Y-Wert: 70
Breite: 30
Hoehe: 20
Rechteck Ute uebernommen
(0) Programm beenden
(1) neues Rechteck
(2) Rechteck loeschen: 1
eindeutiger Name: Ute
Name schon vergeben.
(0) Programm beenden
(1) neues Rechteck
(2) Rechteck loeschen: 1
eindeutiger Name: Ulf
X-Wert: 50
Y-Wert: 60
Breite: 20
Hoehe: 20
Leider Ueberlappung
(0) Programm beenden
(1) neues Rechteck
(2) Rechteck loeschen: 1
eindeutiger Name: Ulf
X-Wert: 91
Y-Wert: 70
Breite: 20
Hoehe: 20
Rechteck Ulf uebernommen
(0) Programm beenden
(1) neues Rechteck
(2) Rechteck loeschen: 2
R1
R2
R3
Ute
Ulf
Name des Rechtecks: R1
R1 geloescht
(0) Programm beenden
(1) neues Rechteck
(2) Rechteck loeschen: 2
R2
R3
Ute
Ulf
Name des Rechtecks: Uta
Gibt es nicht
(0) Programm beenden
(1) neues Rechteck
(2) Rechteck loeschen: 0
Freiwillig: Ändern Sie Ihr Programm so ab, dass sich die Rechtecke überlappen dürfen,
dabei soll jede Überlappung durch ein ausgefülltes Rechteck dargestellt werden.
Ändern Sie das Ursprungsprogramm so ab, dass die Rechtecke verschoben werden können,
aber wieder nur an Stellen platziert werden dürfen, an denen es keine Überlappung mit
anderen Rechtecken gibt.
Seite 2 von 2
Herunterladen