home  |  suche  |  kontakt/johner  |  institut 
studierende  |  tech-docs  |  mindmailer 

Übungen 2006-03-27

     

  • Starten Sie Eclipse
  • Legen Sie ein neues Java-Projekt “Fuhrpark” an
  • Erstellen Sie ein Package „de.fhkn.ss06.proctstruc“
  • Legen Sie eine Klasse Fahrer mit den Attributen Kürzel und Name an.
  • Erzeugen Sie die den Konstruktor und die getter/setter-Methoden mit Eclipse. Tragen Sie dabei Sorge, dass es keine Zombie-Fahrer gibt und das Kürzel nicht nachträglich geändert werden kann
  • Legen Sie eine Klasse Auto an mit den Attributen Fahrgestellnummer, Typ (z.B. Audi A6), Tankfüllung in Liter (Gleitkommazahl), Tachostand (Ganzzahl) und Fahrer an.
  • Schreiben Sie eine dritte Klasse Fuhrpark, die über eine main-Methode verfügt, in der Sie zwei Autos und zwei Fahrer erzeugen. Dann weisen Sie jedem Auto je einen der beiden Fahrer zu.
  • Ergänzen Sie die Klassen so mit Ausgaben (System.out.println), dass Sie überprüfen können, welcher Fahrer auf welchem Auto gesetzt wurde.

Übungen 2006-04-03

Diese Übungen dienen dazu, Ihre Java-Kentnisse bezüglich Bedingungen und Schleifen zu üben.

     

  • Fügen Sie der Klasse Auto die folgenden Methoden hinzu:
    •  

    • public void tanken(float liter){...}: Die Methode erhöht die Tankfüllung um die gegebene Anzahl an Litern. Die Tankfüllung darf die Maximalkapazität von 70 Litern nicht überschreiten.
    • public void fahren(int km) {...}: Die Methode erhöht den Tachostand und beeinflusst die Tankfüllung (das Auto brauche 6l/100km). Sie sollten Sorge tragen, dass keine negativen Füllstände erzeugt werden
    • public int getReichweite() {...}: Die Methode gibt an, wieviel Kilometer Sie mit der aktuellen Tankfüllung noch fahren können.

  • Unterziehen Sie das Auto einem Langzeittest. Sie fahren 10km, 20km, 30km ... 200km und wiederholen diese Sequenz zehnmal. Sie prüfen vor jedem Schritt, ob getankt werden muss und tanken bei Bedarf voll. 
  • Implementieren Sie eine geeignete equals-Methode für die Klasse Auto.

Übungen 2006-04-10

     

  • Schreiben Sie eine Klasse Fahrzeug, von der Auto erbt. Verschieben Sie alle sinnvollen Methoden und Attribute in diese Superklasse. Wie sieht nun der Konstruktor der Klasse Auto aus?
  • Fügen Sie eine Klasse Lastwagen hinzu, die ebenfalls von Fahrzeug erbt. Lastwagen zeichnen sich durch die Möglichkeit aus, (bis zu einem zulässigen Gesamtgewicht) beladen zu werden. Implementieren Sie eine Methode beladen/entladen. Nutzen Sie die Eclipse-Funktion Source -> Add Constructors from Superclass.
  • Legen Sie ein Interface PersistentEntity an, welches die folgenden Methoden hat
    •  

    • save(obj: Object) : void (simuliert ein Speichern in einer DB)
    • load(key: int) : Object (simuliert ein Laden aus einer DB)
    • getKey(): int
    • setKey(key: int)
  • Die Klasse Fahrzeug soll nun dieses Interface implementieren. Was müssen Sie an den Klassen Auto und Lastwagen ändern?

Übungen 2006-04-24

Übungsaufgabe 1: Dynamisches Array

Bitte in Vorlesung begonnene Aufgabe mit „dynamischem Array“ fertig stellen. Insbesondere gilt es die add, delete und print Methoden zu implementieren und mit einer Startklasse das dynamische Array zu testen.

Erweitere die Klasse um

     

  • Add-Methode, bei der die Position des neuen Elements bestimmt werden kann
  • Delete-Methode, bei der nicht das zu löschende Element, sondern dessen Position angegeben wird

Übungsaufgabe 2: Fehlerbehandlung

Geben sei eine Klasse PoorMansDb, mit der man Strings unter einem Schlüssel in eine Datei schreiben und von dort wieder lesen kann. Sie stellt somit eine äußerst primitive Datenbank dar.

Schreiben Sie eine "Startklasse", welche diese Datenbank nutzt und über mehrere Methoden verfügt:

     

  • Methode, die mehrere Datensätze in “DB” zu speichet. Nutze try-catch
  • Methode, in der versucht wird existierende oder nicht existierende Daten zu lesen. Werfen Sie den Fehler weiter zur main-Methode (die try-catch nutzt)
  • Methode, die einige existierende Daten ändert. Nutze try-catch

Sie brauchen die Klassen PoorMansDb nicht verstehen, sondern nur benutzen.

Übung (2006-05-08)

Übung 1

Implementieren Sie eine LinearList, die über die folgenden Methoden verfügt:

     

  • public void add(Object content): Erzeugt intern einen Node, setzt den “Content” und setzt die Verweise
  • public void delete(Object content): Setzt die Verweise neu (Sonderfälle erster und letzter Node beachten) und löschte den Node (setzt ihn auf null)
  • public void printList(): Interiert über alle Nodes und gibt deren Inhalte aus

Übung 2

Implementieren Sie eine Hashtable mit Überlaufspeicher und einer internen Größe des Arrays von maximal 32161. Neben den Methoden put und get sollte auch eine print-Methode implementiert wird, welche tabellarisch die Länge der Überlaufliste angibt (0, 1, 2, 3, 4, 5, und >5) sowie die zugehörige Anzahl der Überlauflisten mit dieser Länge.

Übungen (2006-05-26)

Traversieren Sie den Baum "TestTree" mit Tiefensuchen

     

  • Pre order
  • Post order
  • In order

Der Baum ist als lineare Listen (Vector) von Nodes implementiert.

Übungen (2006-06-19)

Bäume

Traversieren Sie den Testtree in

     

  • Pre-order (in Vorlesung bereits fertiggestellt)
  • Post-order (in Vorlesung teilweise fertiggestellt)
  • In-order (optional)
  • Breitensuche

Graphen

Implementieren Sie einen gerichteten, ungewichteten Graphen, der über folgende Methoden verfügt:

     

  • void addElement(String value)
  • void createConnection(String startValue, String endValue)
  • boolean containsElement(String value)
  • void deleteElement(String value)
  • ...

Implementieren Sie eine Main-Klasse, welche den Graphen aus der Vorlesung topologisch sortiert.