Kapitel 6 - Programm 6 - OBJVERB.CPP

zurück…

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
    // Kapitel 6 - Programm 6 - OBJVERB.CPP
#include <iostream>

class Box
{
    int Laenge;
    int Breite;
    Box *AndereBox;
    public:
    Box(void);        //Konstruktor
    void Setze(int NeueLaenge, int NeueBreite);
    int HoleFlaeche(void);
    void ZeigeAufNaechste(Box *ZeigeDahin);
    Box *HoleNaechste(void);
};

Box::Box(void)      //Implementation des Konstruktors
{
    Laenge = 8;
    Breite = 8;
    AndereBox = NULL;
}

// Diese Methode setzt die Größe der Box auf die Parameter
void Box::Setze(int NeueLaenge, int NeueBreite)
{
    Laenge = NeueLaenge;
    Breite = NeueBreite;
}

// Diese Methode berechnet den Flächeninhalt der Box und gibt ihn zurück
int Box::HoleFlaeche(void)
{
    return (Laenge * Breite);
}

// Diese Methode lässt den Zeiger auf den Parameter zeigen
void Box::ZeigeAufNaechste(Box *ZeigeDahin)
{
    AndereBox = ZeigeDahin;
}

// Diese Methode gibt die Box, auf die die momentane zeigt, zurück
Box *Box::HoleNaechste(void)
{
    return AndereBox;
}

int main()
{
    Box *Start = NULL;    // Zeigt immer auf den Beginn der Liste
    Box *Temp;          // Arbeitstier
    Box *BoxZeiger;     // Für das Erzeugen von Boxen

    // Erzeuge die Liste
    for (int Index = 0 ; Index < 10 ; Index++)
    {
        BoxZeiger = new Box;
        BoxZeiger->Setze(Index + 1, Index + 3);
        if (Start == NULL)
        {
            Start = BoxZeiger;           // Erstes Element in der Liste
        }
        else
        {
            Temp->ZeigeAufNaechste(BoxZeiger); // Zusätzliches Element
        }
        Temp = BoxZeiger;
    }

    // Gib die Liste aus
    Temp = Start;
    do
    {
        std::cout << "Der Flaecheninhalt ist " << Temp->HoleFlaeche() << "\n";
        Temp = Temp->HoleNaechste();
    } while (Temp != NULL);

    // Lösche die Liste
    Temp = Start;
    do
    {
        Temp = Temp->HoleNaechste();
        delete Start;
        Start = Temp;
    } while (Temp != NULL);

    return 0;
}


// Ergebnis beim Ausführen
//
// Der Flaecheninhalt ist 3
// Der Flaecheninhalt ist 8
// Der Flaecheninhalt ist 15
// Der Flaecheninhalt ist 24
// Der Flaecheninhalt ist 35
// Der Flaecheninhalt ist 48
// Der Flaecheninhalt ist 63
// Der Flaecheninhalt ist 80
// Der Flaecheninhalt ist 99
// Der Flaecheninhalt ist 120

zurück…