zurück weiter

C++ - Übung zu Datenverbunde

G.Eichelsdörfer - Staatliche Technikerschule Weilburg

Sechste Übungen

In diesen Übungen soll die Deklaration geeigneter Verbunde (Structs) und deren Verwendung geübt werden. Manchmal besitzt ein Struct ausschließlich Komponenten desselben Typs. Dann könnte man dafür auch ein Datenfeld einsetzen. Trotzdem ist zumeist ein Struct vorzuziehen, weil damit der Quelltext in höherem Maße selbstdokumentierend ist. Außerdem kann man im Gegensatz zu einem Datenfeld einen Struct auch in einer Funktion anlegen und diesen als Resultat per return liefern.

Arbeitsbereich: verbunde

6.1 Einlesen und ausgeben

Eine zusammengesetzte Variable soll die wichtigsten Daten einer Person aufnehmen können. Dies sind der Name, der Vorname, das Geburtsdatum und die Anschrift.

Erstellen Sie einen C++-Quelltext mit folgenden Teilen:

Projekt: structeinaus

Anregung: Sie sollten auch eine Textdatei aus ebensolchen Daten anlegen und diese per Umlenkung einlesen. Entsprechend können Sie die eingelesenen Daten in einer Datei speichern lassen.

6.2 Einlesen und ausgeben (2)

Lassen Sie nun das Einlesen und das Ausgeben in dafür spezialisierten Funktionen durchführen, die von der main-Funktion aufgerufen werden.
Projekt: structeinaus2

Die Funktion inPerson() soll das Einlesen von Personendaten übernehmen und diese als Resultat liefern. Dazu ist lokal in der Funktion eine Variable vom Typ Person anzulegen.

Die Funktion outPerson() soll die Ausgabe von Personendaten durchführen. Die Ausgabe soll genau so strukturiert werden wie in der vorhergehenden Übung.

6.3 Datenfeld mit Länge

Wenn an eine Funktion ein Datenfeld zwecks Verarbeitung übergeben wird, dann muss die Funktion die Information erhalten, wie viele Elemente des Datenfeldes zu verarbeiten sind. Dies kann der Funktion mit einem weiteren Parameter mitgeteilt werden.
Beispiel: double Max = maximum(Zahlen,50);
Um den zweiten Parameter einsparen zu können, kann man einen Verbund zusammenstellen, der neben dem Datenfeld selbst in einer weiteren Komponente dessen aktuelle Größe beinhaltet. Dann kann beispielsweise die Funktion maximum() mit nur einem Struct-Parameter aufgerufen werden.

Beispiel:
struct DoubleArray
{...}; // Ihre Aufgabe!
...
DoubleArray Zahlen;
...
double Max = maximum(Zahlen);

Erstellen Sie ein Programm mit folgenden Teilen:

Projekt: arrayinfo