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