kramann.info
© Guido Kramann

Login: Passwort:










Informatik3
1 Vom_struct_zur_Klasse
..1.1 Vom_struct_zur_Klasse
..1.2 struct_Programm
..1.3 Klassen_Programm
..1.4 Offene_Fragen
..1.5 Historie
..1.6 Objektabstraktion
..1.7 OO_Kundenverwaltung
..1.8 Objektfaehigkeiten
..1.9 Formatierung
..1.10 Motivation
..1.11 Uebung1
..1.12 Uebung2
2 UML
..2.1 Volumenberechnung
..2.2 UML_Klassendiagramm
..2.3 Konstruktor
..2.4 Statische_Variable
3 Strings
..3.1 Klassenbibliotheken
..3.2 stringUML
..3.3 Uebung3
4 Initialisierungen
4 bluej
5 Zeiger_und_Arrays
..5.1 Zeiger
..5.2 Zeiger_und_Funktion
..5.3 Uebung4
6 Vererbung
..6.1 MesswerteUML
..6.2 MesswerteProgramm
..6.3 VererbungsProgramm
..6.4 Vector
..6.5 Uebung
7 Modifikatoren
..7.1 public_Vererbung
..7.2 protected_Vererbung
8 Listen_und_Templates
..8.1 Containertypen
....8.1.1 ListeUML
....8.1.2 ListeProgramm
..8.2 Templates
....8.2.1 Listentemplate
....8.2.2 STLvectorTemplate
..8.3 Uebung5
..8.4 Uebung6
..8.5 Uebung7
9 Java
..9.1 Uebung
..9.2 GettingStarted
..9.3 Animation
..9.4 Hybrid
..9.5 Threads
10 Delegation
11 LayoutProjekt
12 Fenster
13 Uebung
14 Zwischenprojekt
..14.1 Befehle
..14.2 Planung
..14.3 JNI
..14.4 JNIumsetzen
..14.5 Anwendungsklasse
..14.6 GUI01
..14.7 GUI02
15 Rasterlayout
..15.1 Bilder_Packages
..15.2 interfaces
..15.3 ArrayList
..15.4 clone
..15.5 Uebung
16 Nuetzliches
..16.1 Threads
..16.2 Animation
..16.3 RungeKutta
..16.4 Loesungsansatz
..16.5 Internetprogrammierung
....16.5.1 Codegenerierung
....16.5.2 PHP_Programmierung
....16.5.3 PHP_OOP
....16.5.4 Java
17 Algorithmen
..17.1 RungeKutta
..17.2 Loesungsansatz
..17.3 Evoopt
..17.4 Uebung12
..17.5 Uebung8_2014
..17.6 Ausdruecke
18 Uebung10
19 UML_ALT
..19.1 Flaechenberechnung
..19.2 UML_Flaechenberechnung
..19.3 Implementierung
..19.4 ListeUML
..19.5 ListenImplementierung
..19.6 Anwendung
kramann.info
© Guido Kramann

Login: Passwort:




Übung 5



vorl_oop_2014_10_29.zip - Während der Vorlesung am 29.10.2014 entwickelte Programme

Übung zum 30.10.2014

Grundlage der Übung ist der Quelltext im Ordner "liste2":

#include<iostream>
#include<string>

using namespace std;

class Listenelement
{
    public:
        Listenelement* nachfolger;
        int kundennummer;
        string name;

        Listenelement(string name,int kundennummer)
        {
             //nachfolger=0;  //geht auch
             this->nachfolger=0;
             this->name = name;
             this->kundennummer = kundennummer;
        }
        Listenelement()
        {
             //nachfolger=0;  //geht auch
             this->nachfolger=0;
        }
};

class Containerklasse
{
    public:
        Listenelement* kopf;
        Listenelement* suchzeiger;

        Containerklasse()
        {
            kopf = new Listenelement();    
        }

        Listenelement* at(int i)
        {
            suchzeiger = kopf;
            for(int k=0;k<i+1;k++)
            {
                  suchzeiger = suchzeiger->nachfolger;
            }
            return suchzeiger;
        }

        int getKundennummer(string name)
        {
        }

        void add(string name, int kundennummer)
        {
            //1. Neues Element erzeugen
            Listenelement* neuesElement = new Listenelement(name,kundennummer);
            //2. Ende der Liste suchen
            suchzeiger = kopf;
            while(suchzeiger->nachfolger!=0)
                  suchzeiger = suchzeiger->nachfolger;
            //3. Neues Element an das Ende anhängen 
            suchzeiger->nachfolger = neuesElement;
        }
  
        int size()
        {
        }
};

int main()
{
     Containerklasse c;
     Listenelement* zeiger;
     
     c.add("Alfa",1);
     c.add("Beta",2);
     c.add("Gamma",3);

     zeiger = c.at(0);
     cout<<zeiger->name<<endl;     
     zeiger = c.at(1);
     cout<<zeiger->name<<endl;     
     zeiger = c.at(2);
     cout<<zeiger->name<<endl;     
}

Code 0-1: C++-Quelltext als Grundlage dieser Übung.

Bei allen Aufgaben soll in der main-Methode Quelltext hinzugefügt werden, um die ergänzten Objektmethoden zu testen.

Aufgabe 1

  • Vervollständigen Sie die noch fehlende Objektmethode size() der Klasse Containerklasse und testen Sie sie.

Aufgabe 2

  • Ergänzen Sie in der Klasse Listenelement eine Methode ausgeben(), die die Daten eines Listenelement-Objektes auf der Konsole ausgibt.
  • Ergänzen Sie in der Klasse Containerklasse eine Methode ausgeben(), die die Daten aller gerade gespeicherten Listenelement-Objekte auf der Konsole ausgibt.
  • Ergänzen Sie in der Klasse Containerklasse eine Methode ausgeben(int i), die die Daten des i-ten Listenelement-Objektes auf der Konsole ausgibt.

Aufgabe 3

  • Ergänzen Sie in der Klasse Containerklasse eine Methode loesche(int i), die den i-ten Dateneintrag aus der Liste entfernt.

Aufgabe 4

  • Ergänzen Sie in der Klasse Containerklasse eine Methode tausche(int i, int k), die den i-ten Dateneintrag der Liste mit dem k-ten vertauscht.
  • Entwickeln Sie mit Hilfe der gerade geschriebenen Methode eine Methode sortierenK(), die die Listenelemente nach ihrer Kundennummer sortiert.
  • Entwickeln Sie mit Hilfe der gerade geschriebenen Methode eine Methode sortierenN(), die die Listenelemente nach ihren Namenseinträgen sortiert.

Aufgabe 5

  • Schreiben Sie das Gesamtprogramm in Java um.
Listen und Containertypen

Aufgabe 1

  • Setzen Sie alle in der Klasse "ListenContainer" angebotenen Methoden "zu Fuß" in dem Beipsielprogramm zu Listen aus der Vorlesung um.
  • In dem Beispielprogramm wurde bereits gezeigt, wie Listenobjekte miteinander verkettet werden können.
  • Wie ist die Aufgabe zu verstehen?
  • Beispiel: In "ListenContainer" gibt es eine Methode "del(..)", mit der das i-te Element der verwalteten Liste gelöscht werden kann.
  • Analog dazu entfernen Sie dann in dem kleinen Beispiel-Programm durch entsprechende Befehle in der main-Methode in der Liste k1->k2>k3 das Element k2, so, dass die Kette k1->k3 entsteht.

Aufgabe 2

  • Analysieren Sie das Listen-Beispiel aus Kapitel 9.1.2
  • Ergänzen Sie die Klasse ListenContainer um eine Methode int findeElement(string text), die den Index des ersten Listenelements ausgibt, in dem der übergebene Text gespeichert ist.
  • Erläuterung: Mit Hilfe dieser Methode soll der Index desjenigen Elementes zurückgegeben werden, das als Dateninhalt das übergebene String enthält.
  • Schreiben Sie eine main-Methode, in der dieses Feature getestet wird.