Ü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.
|