Kapitel 8 - Programm 6 - VERERB6.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
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
    // Kapitel 8 - Programm 6 - VERERB6.CPP
#include <iostream>
#include <stdlib.h>

class Vehikel
{
    protected:
        int Raeder;
        double Gewicht;
    public:
        void Initialisiere(int EinRaeder, double EinGewicht);
        int HoleRaeder(void)       {return Raeder;}
        double HoleGewicht(void)    {return Gewicht;}
        double Radlast(void)       {return Gewicht/Raeder;}
};



class Auto : public Vehikel
{
    int Passagieranzahl;
    public:
    void Initialisiere(int EinRaeder, double EinGewicht, int Leute = 4);
    int Passagiere(void)       {return Passagieranzahl;}
};



class Laster : public Vehikel
{
    int Passagieranzahl;
    double Ladung;
    public:
    void InitLaster(int WieViele = 2, double MaxLadung = 10000.0);
    double Effizienz(void);
    int Passagiere(void)       {return Passagieranzahl;}
};



int main()
{
    Vehikel Hochrad;

    Hochrad.Initialisiere(1, 5.7);
    std::cout << "Das Hochrad hat " <<
        Hochrad.HoleRaeder() << " Rad.\n";
    std::cout << "Die Radlast des Hochrades betraegt " <<
        Hochrad.Radlast() << " kg auf dem einzigen Rad.\n";
    std::cout << "Das Hochrad wiegt " <<
        Hochrad.HoleGewicht() << " kg.\n\n";

    Auto Sedan[3];
    int Index;

    for (Index = 0 ; Index < 3 ; Index++)
    {
        Sedan[Index].Initialisiere(4, 1600.0, 5);
        std::cout << "Der Sedan fuehrt " << Sedan[Index].Passagiere() <<
            " Passagiere mit sich.\n";
        std::cout << "Der Sedan wiegt " <<
            Sedan[Index].HoleGewicht() << " kg.\n";
        std::cout << "Die Radlast des Sedan ist " <<
            Sedan[Index].Radlast() <<
            " kg pro Rad.\n\n";
    }

    Laster *Sattelschlepper;

    Sattelschlepper = new Laster;
    if (Sattelschlepper == NULL)
    {
        std::cout << "Speicherbeschaffung fehlgeschlagen\n";
        exit (EXIT_FAILURE);
    }
    Sattelschlepper->Initialisiere(18, 5700.0);
    Sattelschlepper->InitLaster(1, 15300.0);
    std::cout << "Der Sattelschlepper wiegt " << Sattelschlepper->HoleGewicht() << " kg.\n";
    std::cout << "Die Effizienz des Sattelschleppers ist " <<
        100.0 * Sattelschlepper->Effizienz() << " Prozent.\n";
    delete Sattelschlepper;

    return 0;
}



// Initialisiere mit den Paramtern
void Vehikel::Initialisiere(int EinRaeder, double EinGewicht)
{
    Raeder = EinRaeder;
    Gewicht = EinGewicht;
}



void Auto::Initialisiere(int EinRaeder, double EinGewicht, int Leute)
{
    Passagieranzahl = Leute;
    Raeder = EinRaeder;
    Gewicht = EinGewicht;
}



void Laster::InitLaster(int WieViele, double MaxLadung)
{
    Passagieranzahl = WieViele;
    Ladung = MaxLadung;
}



double Laster::Effizienz(void)
{
    return Ladung / (Ladung + Gewicht);
}


// Ergebnis beim Ausführen
//
// Das Hochrad hat 1 Rad.
// Die Radlast des Hochrades betraegt 5.7 kg auf den einzigen Rad.
// Das Hochrad wiegt 5.7 kg.
//
// Der Sedan fuehrt 5 Passagiere mit sich.
// Der Sedan wiegt 1600 kg.
// Die Radlast des Sedan ist 400 kg pro Rad.
//
// Der Sedan fuehrt 5 Passagiere mit sich.
// Der Sedan wiegt 1600 kg.
// Die Radlast des Sedan ist 400 kg pro Rad.
//
// Der Sedan fuehrt 5 Passagiere mit sich.
// Der Sedan wiegt 1600 kg.
// Die Radlast des Sedan ist 400 kg pro Rad.
//
// Der Sattelschlepper wiegt 5700 kg.
// Die Effizienz des Sattelschleppers ist 72.8571 Prozent.

zurück…