Prüfung 2. Februar 2008 Informatik 3 - BFH-TI Staff

Werbung
Berner Fachhochschule
Hochschule für Technik und Informatik, HTI
Fachbereich Mikrotechnik
Klasse:
F2a, F2b
Name, Vorname:
Prüfung 2. Februar 2008
Informatik 3
Dauer:
Von 8:00 bis 10:00
Zulässige Hilfsmittel:
Abgegebene Skripte, Übungen und Musterlösungen, ergänzt durch eigene Notizen.
Buch von Jobst oder ein anderes Java-Buch
Taschenrechner
Beilagen:
keine
Gewichtung / Bewertung der Aufgaben:
Aufgabe
Max. Punktzahl:
1
16
2
32
3
24
Total:
72
erreicht:
Viel Erfolg
Dr. E. Firouzi
Seite 1 von 9
Note
Aufgabe 1
Punkteverteilung: Total: 16
Eine Reihe von festen Steuerelement haben sich für Anwendungen innerhalb der graphischen
Benuzeroberfläche durchgesetzt, zum Beispiel Schalter, Rollbalken unw. Nennen Sie 8 Steuerelement aus dem
Paket AWT (4 Punkte)!
Layoutmanager erlauben die Komponenten nach diversen Strategien in einem Container zu platzieren. Nennen
die 5 Strategien des Paket AWT, und beschreiben Sie kurz ihre Platzierungsstrategie (4 Punkte)!
Seite 2 von 9
Im JDK 1.1 wurde die Bearbeitung von Ereignisse auf das sog. „Delegation Event Model“ nach dem
Beobachter-Entwurfmuster umgestellt. Beschreiben Sie kurz dieses Model (4 Punkte)!
Was sind die Unterschiede zwischen eine normale Java-Anwendung und ein Applet (4 Punkte)?
Seite 3 von 9
Aufgabe 2
Punkteverteilung: Total: 32
Programmierung von einem Zahlenratenspiel
Programmieren Sie ein Zahlenratenspiel auf die nächste Seite, welches eine unsichtbare Geheimzahl im Bereich
von 1 bis 100 erzeugt. Der Spieler muss anschliessend diese Zahl mit möglichst wenig Versuchen raten.
Benutzeroberfläche
Nach dem Start des Programms erscheint das Spielfeld mit einem Textfeld für die Eingabe der Ratezahl
(Guess number), einem Textfeld für die Ausgabe der Anzahl Versuche (Tries), einem „Enter“ und einem
„Exit“ Schalter sowie einem Textfeld für die Bewertung der Ratezahl (Guess number).
Spielvorgehen
Der Spiele muss zuerst seine Ratezahl in die Meldezeile eingeben und anschliessend das Enter Button drücken.
Das Programm vergleicht dann die Ratezahl mit der Geheimzahl und gibt eine Meldung aus, ob sie höher,
niedriger oder richtig war. Nach jedem Versuch muss die Anzahl der Versuche im entsprechenden Ausgabefeld
inkrementiert werden.
Hinweise
Der Aufruf der Methode „Math.random()“ lieferte ein Zufallwert des Typs double, welcher zwischen 0
und 1 ist.
Seite 4 von 9
import java.awt.*;
import java.awt.event.*;
import java.awt.event.ActionListener;
public class GuessNumber extends Frame implements ActionListener {
int secretNumber;
int tries = 0;
TextField guessNumber;
TextField tryFiled;
TextField infoMessage;
/* 18 points: Definition of the constructor.
* This method must initialize the GUI */
public GuessNumber (String Title)
{
}
Seite 5 von 9
/*
*
*
*
14 points: Definition of the method actionPerformed().
This method is called by the event handler.
It must read the value entered by the player,
and compare it with the secret one */
public void actionPerformed (ActionEvent event)
{
}
/* 2 points: Definition of the main method */
public static void main (String argv[])
{
}
}
Seite 6 von 9
Aufgabe 3
Punkteverteilung: Total: 26
Programmierung des Applets „Eyes“
Definieren Sie auf die nächste Seite das Applet „Eyes”, welches aus einem „Auge“ besteht. Dieses Aug soll
wie folgt die Mausbewegung folgen:
…
…
Dieser Eindruck soll dadurch erzeugt werden, dass nach jeder Mausbewegung ein gefüllter Kreis (das Augapfel)
in Richtung der Mausposition in einem Kreises (das Auge) gezeichnet wird.
Berechnung
mx und my bezeichnen den Mittelpunkt der Zeichenfläche:
mx = WIDTH 2 ; my = HEIGHT 2 .
Für den Mittelpunkt (mx1, my1) des gefühlten Kreises vom Radius rrr = 0.3 * r gilt somit:
mx1 = xMouse dist * r * 0.7
my1 = yMouse dist * r * 0.7
Abstand ist der Abstand der Maus vom Mittelpunkt. Alle Koordinaten sind hier in Bezug auf den
Mittelpunkt der Zeichenfläche gegeben.
mx1,my1
distance
mx,my
rrr
r
Seite 7 von 9
import java.applet.*;
import java.awt.*;
import java.awt.event.*;
public class Eyes extends Applet implements MouseMotionListener {
/* Definition of the attributes */
final int WIDTH = 300;
final int HEIGHT = 160;
int
int
int
int
int
r = HEIGHT / 2;
mx = WIDTH / 2;
my = HEIGHT / 2;
mx1;
my1;
/* 6 points: Definition of the method init().
* This method must initialize the applet Eyes as
* source and observer of the events MouseMotionListener */
public void init ()
{
}
public void mouseDragged (MouseEvent event) {
}
Seite 8 von 9
/*
*
*
*
12 points: Definition of the method mouseMoved().
This method is called from the event handler.
It must read the position of the mouse and compute
the coordinates of the small circle (mx1 and my1). */
public void mouseMoved (MouseEvent event)
{
}
/* 8 points: Definition of the method paint().
* This method must display the big circle in the middle of the screen
* and the small circle at position mx1 and my1 */
public void paint (Graphics g)
{
}
}
Seite 9 von 9
Herunterladen