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 8
17. Aufgabe (4 Punkte)
Ergänzen Sie Ihre Klasse Zahlenanalyse aus Aufgabe 16 um folgende Methoden.
a) Zu entwickeln ist eine Methode eingabeanalyse(), die den Nutzer immer wieder zur
Eingabe einer Fließkommazahl (Double) auffordert, die immer zwischen -100.0 und
100.0 liegt (muss geprüft werden, falsche Werte ignorieren) und die nach jeder
Eingabe den kleinsten und den größten bisher eingegebenen Wert sowie den
Mittelwert (Durchschnitt aller eingegebenen Werte) ausgibt. Überlegen Sie, welche
Informationen man in lokalen Variablen speichern muss (man muss sich nicht alle
Zahlen merken). Das Programm wird mit der Eingabe der Zahl 102 terminiert, nutzen
Sie die Klasse EinUndAusgabe.java von der Veranstaltungsseite. Ein Nutzungsdialog
kann wie folgt aussehen, Eingaben sind umrandet.
Geben Sie einen Wert ein: 3.5
Minimum: 3.5 Maximum: 3.5 Schnitt:
Geben Sie einen Wert ein: 7.5
Minimum: 3.5 Maximum: 7.5 Schnitt:
Geben Sie einen Wert ein: 2
Minimum: 2.0 Maximum: 7.5 Schnitt:
Geben Sie einen Wert ein: 4.33
Minimum: 2.0 Maximum: 7.5 Schnitt:
Geben Sie einen Wert ein: 101
Geben Sie einen Wert ein: 102
3.5
5.5
4.333333333333333
4.3325
b) Entwickeln Sie eine Methode zahlenRaten() mit der Sie mit dem Computer
„Zahlenraten“ spielen können. Dazu soll der Computer eine Zahl zwischen 1 und 100
(jeweils einschließlich) wählen. Die Klasse EinUndAusgabe.java bietet dazu die
Methode zufall(Integer,Integer), die einen Zufallswert zwischen den übergebenen
minimalen und maximalen Werten liefert. Danach kann der Spieler seinen Tipp
eingeben und der Computer antwortet mit „zu hoch“, „zu tief“ oder „korrekt“. Weiterhin
zählt der Computer die Anzahl der Versuche und gibt dies vor jedem Rateversuch
aus. Ein Nutzungsdialog kann wie folgt aussehen, Eingaben sind umrandet.
1.Versuch: Zahl raten: 67
zu hoch
2.Versuch: Zahl raten: 46
zu hoch
3.Versuch: Zahl raten: 23
zu hoch
4.Versuch: Zahl raten: 11
zu tief
5.Versuch: Zahl raten: 17
zu tief
6.Versuch: Zahl raten: 20
Bravo, getroffen.
18. Aufgabe (5 Punkte)
Method Summary
void neuesRechteck(java.lang.Integer x, java.lang.Integer y, java.lang.Integer breite,
java.lang.Integer hoehe)
Methode zum Zeichnen eines neuen Rechtecks.
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.
void loescheObjekt(java.lang.Object quelle, java.lang.String name)
Ein mit den Parametern quelle und name vorher erzeugtes graphisches
Element wird gelöscht.
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 8
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 die letzten beiden der
oben genannten Methoden nutzen, damit Sie wieder auf die Rechtecke zugreifen können.
Die erste Methode wurde bereits zum Zeichnen von Rechtecken genutzt. Die zweite
Methode hat zwei Parameter mehr, vom Typ Object und String, die genutzt werden, damit
man später wieder auf das gezeichnete Rechteck zugreifen kann. Vereinfachend kann als
erster Parameter immer this genutzt werden. Der String ist dann ein Name, der eindeutig
sein muss. Die Methode loescheObjekt(Object, String) bietet dann die Möglichkeit,
Rechtecke (und andere graphische Elemente) wieder zu löschen. Damit dies möglich ist,
müssen die Rechtecke unterschiedliche Namen erhalten, was bei der Eingabe zu prüfen ist.
Ein Programmfragment mit dem ein Rechteck gezeichnet und gleich wieder gelöscht wird,
sieht wie folgt aus.
Interaktionsbrett ibrett = new Interaktionsbrett();
ibrett.neuesRechteck(this,"gnarf",10,10,40,40);
ibrett.loescheObjekt(this,"gnarf");
Nutzen Sie zur Verwaltung der Rechtecke eine eigene Klasse Rechteck (Sie können
selbstgeschriebene Klassen aus vorherigen Aufgaben nutzen und abändern) und zur
Verwaltung der Sammlung von Rechtecken eine ArrayList<Rechteck>. Informieren Sie den
Nutzer über nicht nutzbare Namen. 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.
(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: 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 nicht überlappen dürfen.
Seite 2 von 2
Herunterladen