/* Beispiel: Klassen (Arrays von Objekten,Vererbung, Attribute, Methoden, Konstruktor) Filename: main.cpp Author: Lahmer Title: Geometrische Formen Description: In diesem Beispiel lernen Sie wie man Arrays von Objekten anlegt und verwendet. Change: 20.02.2018 */ #include <iostream> #include <stdlib.h> #include <time.h> #define PI 3.14 using namespace std; class Information { public: int kanten; int ecken; }; class GeometrischerKoerper { protected: float oberflaeche; float volumen; public: Information info; //Assoziation, ein geometrischer Koerper hat eine (Beziehung mit) Information float getVolumen() { return volumen; } float getOberflaeche() { return oberflaeche; } }; class Wuerfel : public GeometrischerKoerper //Vererbung, Klasse Wuerfel wird von Klasse GeometrischerKoerper abgeleitet { private: float a; public: Wuerfel() { a=0.0; } Wuerfel(float laenge) { a=laenge; } void berechneOberflaeche() { oberflaeche=a*a*6; //6 Seiten hat ein Würfel } void berechneVolumen() { volumen=a*a*a; } float getLaenge() { return a; } }; class Drehzylinder : public GeometrischerKoerper { public: float r; float h; void berechneOberflaeche() { oberflaeche=2*r*r*PI+2*r*PI*h; //2x Grundfläche + Mantel } void berechneVolumen() { volumen=r*r*PI*h; //Grundfläche * H } }; class Quader : public GeometrischerKoerper { public: float a; //a*b = Grundfläche float b; float c; //c=Höhe void berechneOberflaeche() { oberflaeche=2*(a*b+a*c+b*c); // } void berechneVolumen() { volumen=a*b*c; } }; int main(int argc, char** argv) { Wuerfel *w=new Wuerfel(3.3); w->berechneOberflaeche(); w->berechneVolumen(); w->info.ecken=8; w->info.kanten=12; cout << "Wuerfel: \t" << endl; cout << "----------------------------" << endl; cout << "Seitenlaenge: \t" << w->getLaenge() << endl; cout << "Oberflaeche: \t" << w->getOberflaeche() << endl; cout << "Volumen: \t" << w->getVolumen() << endl; cout << "Anzahl Kanten: \t" << w->info.kanten << endl; cout << "Anzahl Ecken: \t" << w->info.ecken << endl; cout << endl << "##############################" << endl; srand(time(NULL)); cout << endl << "Array von Wuerfeln: " << endl; Wuerfel *warray=new Wuerfel[3]; for(int i=0; i<3; i++) { warray[i]=Wuerfel((rand()%10+1)/2.0); warray[i].berechneOberflaeche(); warray[i].berechneVolumen(); cout << endl << "Wuerfel " << i << ":" << endl; cout << "----------------------------" << endl; cout << "Seitenlaenge: \t" << warray[i].getLaenge() << endl; cout << "Oberflaeche:\t" << warray[i].getOberflaeche() << endl; cout << "Volumen:\t" << warray[i].getVolumen() << endl; } cout << endl << "##############################" << endl; cout << endl << "Array von Drehzylindern: " << endl; Drehzylinder *zylinder=new Drehzylinder[3]; for(int i=0; i<3; i++) { zylinder[i].h=rand()%10; zylinder[i].r=(rand()%20+1)/2.0; zylinder[i].berechneOberflaeche(); zylinder[i].berechneVolumen(); cout << endl << "Drehzylinder " << i << ":" << endl; cout << "----------------------------" << endl; cout << "Radius: \t" << zylinder[i].r << endl; cout << "Hoehe: \t\t" << zylinder[i].h << endl; cout << "Oberflaeche:\t" << zylinder[i].getOberflaeche() << endl; cout << "Volumen:\t" << zylinder[i].getVolumen() << endl; } return 0; }