Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <cstdlib>
- #include <iostream>
- using namespace std;
- class Figura
- {
- public:
- Figura(){}
- virtual char * nazwa() = 0;
- virtual double pole() = 0;
- };
- class Kwadrat : public Figura
- {
- public:
- Kwadrat( int b ) : bok( b ) {}
- char * nazwa() { return "Kwadrat"; }
- double pole() { return bok * bok; }
- double bok;
- };
- class Kolo : public Figura
- {
- public:
- Kolo( int p ) : promien( p ) {}
- char * nazwa() { return "Kolo"; }
- double pole() { return 3.14 * promien * promien; }
- double promien;
- };
- class Barbapapa : public Figura
- {
- public:
- Barbapapa() {}
- char * nazwa() { return "Barbapapa"; }
- double pole() { return 1000; }
- };
- int oldMain()
- {
- Figura * f;
- int opcja;
- cout << "\n1. Kwadrat\n2. Kolo\n3. Barbapapa\n>> ";
- cin >> opcja;
- switch( opcja )
- {
- case 1: f = new Kwadrat( 10 );
- break;
- case 2: f = new Kolo( 5 );
- break;
- case 3: f = new Barbapapa();
- break;
- }
- cout << endl << "Figura: " << f->nazwa(); // (*f).nazwa()
- cout << endl << "Pole: " << f->pole();
- cin.ignore();
- cin.get();
- return EXIT_SUCCESS;
- }
- int main()
- {
- const int MAKS = 10;
- Figura * f[ MAKS ];
- int ileFigur = 0;
- int opcja;
- do
- {
- if( ileFigur >= MAKS )
- break;
- cout << "\n1. Kwadrat\n2. Kolo\n3. Barbapapa\n4. Koniec\n>> ";
- cin >> opcja;
- switch( opcja )
- {
- case 1: f[ ileFigur++ ] = new Kwadrat( 10 );
- break;
- case 2: f[ ileFigur++ ] = new Kolo( 5 );
- break;
- case 3: f[ ileFigur++ ] = new Barbapapa();
- break;
- }
- }
- while( opcja != 4 );
- cout << endl << "Liczba figur w kolekcji: " << ileFigur;
- for( int i = 0; i < ileFigur; ++i )
- cout << endl << "Figura: " << f[ i ]->nazwa(); // (*f).nazwa()
- double suma = 0;
- for( int i = 0; i < ileFigur; ++i )
- suma += f[ i ]->pole();
- cout << endl << "sumaryczne pole: " << suma;
- cin.ignore();
- cin.get();
- return EXIT_SUCCESS;
- }
Add Comment
Please, Sign In to add comment