04.08.2013 Aufrufe

Fachhochschule Südwestfalen - Homepage von Peter Ziesche

Fachhochschule Südwestfalen - Homepage von Peter Ziesche

Fachhochschule Südwestfalen - Homepage von Peter Ziesche

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

Einführung in die Programmierung<br />

Sommersemester 2005 – 2. Semester – Übungblatt Nr. 1<br />

Aufgabe 1<br />

Eine Anwendung zur Kundenverwaltung besteht aus den folgenden Klassen:<br />

public class Person<br />

{<br />

String Anrede;<br />

String Vorname;<br />

String Name;<br />

Anschrift PrivatAnschrift;<br />

Anschrift DienstAnschrift;<br />

}<br />

public class Anschrift<br />

{<br />

String Strasse;<br />

String Plz;<br />

String Ort;<br />

}<br />

public class Firma<br />

{<br />

String Name;<br />

Person Ansprechpartner;<br />

Anschrift FirmenAnschrift;<br />

}<br />

Zeichnen Sie das Speicherabbild, dass durch die folgende main()-Methode erzeugt wird.<br />

Tragen Sie dort neben den Objekten und den Referenzen zwischen ihnen auf jeden Fall auch die<br />

lokalen Variablen ein und deuten Sie durch einen Pfeil an, welche Objekte <strong>von</strong> ihnen<br />

referenziert werden.<br />

public static void main( String[] args )<br />

{<br />

Person p1 = new Person();<br />

p1.Anrede = “Herr”;<br />

p1.Vorname = “Willi”;<br />

p1.Name = “Müller”;<br />

Anschrift a1 = new Anschrift();<br />

a1.Strasse = “Markstr.”;<br />

a1.Plz = “44787”;<br />

a1.Ort = “Bochum”;<br />

Anschrift a2 = new Anschrift();<br />

a2.Strasse = “Steeler Str.”;<br />

<strong>Fachhochschule</strong> <strong>Südwestfalen</strong><br />

<strong>Peter</strong> <strong>Ziesche</strong><br />

E-Mail: mail@peterziesche.de


}<br />

a2.Plz = “44780”;<br />

a2.Ort = “Essen”;<br />

p1.PrivatAnschrift = a1;<br />

p1.DienstAnschrift = a2;<br />

Firma f1 = new Firma();<br />

f1.Name = “Ich AG”;<br />

f1.Ansprechpartner = p1;<br />

f1.FirmenAnschrift = a2;<br />

Person p2 = new Person();<br />

p2.Anrede = “Frau”;<br />

p2.Vorname = “Claudia”;<br />

p2.Name = “Schiller”;<br />

p2.PrivatAnschrfit = a1;<br />

p2.DienstAnschrift = new Anschrift();<br />

p2.DienstAnschrift.Strasse = “Hauptstr.”;<br />

p2.DienstAnschrift.Plz = “60309”;<br />

p2.DienstAnschrift.Ort = “Frankfurt”;<br />

Nun umgekehrt: Schreiben Sie eine main()-Methode, die das folgende Speicherbild erzeugt<br />

(Beachten Sie, dass es außer firmaA und firmaB keine lokalen Variablen in main() geben<br />

soll. Sie müssen statt Anschrift as = new Anschrift(); also z.B.<br />

firmaA.FirmenAnschrift = new Anschrift(); schreiben).<br />

Aufgabe 2<br />

:Firma<br />

Name = "IT GmbH"<br />

Ansprechpartner =<br />

Firmenanschrift =<br />

firmaA<br />

:Person<br />

Anrede = "Frau"<br />

Vorname = "Maria"<br />

Name = "Schreiber"<br />

PrivatAnschrift =<br />

DienstAnschrift =<br />

:Anschrift<br />

Strasse = "Dorstener Str."<br />

Plz = "44809"<br />

Ort = "Bochum"<br />

:Anschrift<br />

Strasse = "Unistr."<br />

Plz = "44787"<br />

Ort = "Bochum"<br />

:Anschrift<br />

Strasse = "Hellweg"<br />

Plz = "44807"<br />

Ort = "Bochum"<br />

:Person<br />

Anrede = "Frau"<br />

Vorname = "Claudia"<br />

Name = "Wagner"<br />

PrivatAnschrift =<br />

DienstAnschrift =<br />

:Firma<br />

Name = "Spielzeug AG"<br />

Ansprechpartner =<br />

Firmenanschrift =<br />

firmaB


Ein Automobilhersteller produziert Autos am Fließband. Jedes Auto durchläuft nacheinander<br />

mehrere Stationen und weiß immer genau, an welcher Station es sich zurzeit befindet. Jede<br />

Station hat eine Referenz auf die folgende Station (Ausnahme: die letzte Station).<br />

public class Station<br />

{<br />

String Bezeichnung;<br />

Station Folgestation;<br />

}<br />

public class Auto<br />

{<br />

int ProduktionsNummer;<br />

Station aktuelleStation;<br />

}<br />

Schreiben Sie eine Methode void weiter() in der Klasse Auto. Sie soll das Auto zur<br />

nächsten Station weitertakten, d.h. die Eigenschaft aktuelleStation auf die Folgestation<br />

setzen. Sie erkennen die letzte Station, zu der es keine Folgestation gibt, mit der Abfrage<br />

if( aktuelleStation.Folgestation == null ). Steht das Auto an der letzten<br />

Station, soll die Methode nichts tun.<br />

Schreiben Sie eine Methode boolean istFertig(), die true zurückliefert, wenn das<br />

Auto an der letzten Station steht.<br />

Zeichnen Sie das Speicherabbild, das durch die folgende main()-Methode erzeugt wird.<br />

public static void main( String[] args )<br />

{<br />

Station s1 = new Station();<br />

s1.Bezeichnung = “Motoreinbau”;<br />

Station s2 = new Station();<br />

s2.Bezeichnung = “Lackieren”;<br />

Station s3 = new Station();<br />

s3.Bezeichnung = “Räder montieren”;<br />

Station s4 = new Station();<br />

s4.Bezeichnung = “Scheiben einsetzen”;<br />

}<br />

s2.Folgestation = s4;<br />

s4.Folgestation = s1;<br />

s1.Folgestation = s3;<br />

Auto a1 = new Auto();<br />

a1.ProduktionsNummer = 356;<br />

a1.aktuelleStation = s2;<br />

Auto a2 = new Auto();<br />

a2.ProduktionsNummer = 357;<br />

a2.aktuelleStation = s1;<br />

Auto a3 = new Auto();<br />

a3.ProduktionsNummer = 358;<br />

a3.aktuelleStation = s1;


Ergänzen Sie am Ende der main()-Methode Code, der das Auto an der ersten Station bis zur<br />

letzten durchtaktet. Dieser Code soll unabhängig da<strong>von</strong> sein, wie viele Stationen es gibt.<br />

Verwenden Sie eine while-Schleife und die Methoden istFertig() und weiter() der<br />

Klasse Auto. Geben Sie anschließend für jedes Auto die Bezeichnung der aktuellen Station<br />

aus.<br />

Aufgabe 3<br />

Es soll eine einfache Kurssteuerung für ein Flugzeug entwickelt werden. Ein Flugzeug hat<br />

immer einen bestimmten Kurs, der durch eine Eigenschaft dargestellt wird. Entsprechend des in<br />

der in der Fliegerei verwendeten Systems ist Kurs 0 Richtung Norden, Kurs 90 Richtung Osten,<br />

Kurs 180 Richtung Süden und Kurs 270 Richtung Westen.<br />

Schreiben Sie die Klasse Flugzeug mit einer Eigenschaft Kurs und folgenden Methoden:<br />

void drehen(int grad)<br />

Ein positiver Grad-Wert ändert den Kurs im Uhrzeigersinn um den angegebenen Betrag, ein<br />

negativer Wert gegen den Uhrzeigersinn. Beachten Sie: 359 ist die höchste Wert für den Kurs.<br />

Wenn die Maschine sich noch einen Grad weiter im Uhrzeigersinn dreht, steuert sie wieder<br />

Kurs 0 Grad (Nord). Analog fliegt ein Flugzeug, das sich <strong>von</strong> Kurs 005 Grad um 10 Grad gegen<br />

den Uhrzeigersinn dreht, auf neuem Kurs 355 Grad. Die Methode soll die Eigenschaft Kurs, so<br />

ändern, dass anschließend der neue Kurs gespeichert wird.<br />

void neuerKurs( int grad )<br />

Die Methode soll das Flugzeug auf den angegebenen Kurs drehen. Gültige Werte für grad<br />

liegen also zwischen 0 und 359. Die Methode soll berechnen, um wie viel Grad sich die<br />

Maschine drehen muss, um vom aktuellen auf den neuen Kurs zu kommen. Mit dem<br />

berechneten Wert soll anschließend die Methode drehen() aufgerufen werden. Es soll nicht<br />

direkt die Eigenschaft Kurs verändert werden. Beachten Sie, dass man sowohl durch<br />

Rechtsdrehung als auch durch Linksdrehung auf einen Kurs kommen kann. Sie sollen<br />

neuerKurs() so schreiben, dass das Flugzeug sich möglichst wenig drehen muss. Beispiel:<br />

um <strong>von</strong> Kurs 180 auf Kurs 190 zu kommen, soll sich die Maschine nach rechts drehen. Um <strong>von</strong><br />

Kurs 010 auf Kurs 350 zu kommen, soll sie sich nach links drehen.<br />

void nachNorden()<br />

Die Methode dreht das Flugzeug nach Norden. Sie können diese Methode sehr kurz und einfach<br />

halten, wenn Sie geschickt die beiden vorangegangenen Methoden aufrufen.<br />

void nachOsten()<br />

Die Methode dreht das Flugzeug nach Osten. Sie können diese Methode sehr kurz und einfach<br />

halten, wenn Sie geschickt die beiden vorangegangenen Methoden aufrufen.<br />

void nachWesten()<br />

Die Methode dreht das Flugzeug nach Westen. Sie können diese Methode sehr kurz und einfach<br />

halten, wenn Sie geschickt die beiden vorangegangenen Methoden aufrufen.<br />

void nachSueden()<br />

Die Methode dreht das Flugzeug nach Süden. Sie können diese Methode sehr kurz und einfach<br />

halten, wenn Sie geschickt die beiden vorangegangenen Methoden aufrufen.<br />

Schreiben Sie eine main()-Methode, die das Flugzeug <strong>von</strong> Frankfurt über New York (Kurs<br />

280), <strong>von</strong> dort nach Los Angeles (Kurs 260) und <strong>von</strong> dort schließlich nach Caracas (Kurs 170)<br />

fliegen lässt.

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!