Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <cstdlib>
- #include <iostream>
- #include <cstring>
- using namespace std;
- class Figura
- {
- public:
- Figura() {}
- virtual double pole() { return 0; }
- virtual const char * nazwa() { return "Figura"; }
- };
- class Kwadrat : public Figura
- {
- public:
- Kwadrat( double bok = 0 ) : bok( bok ) {}
- double pole() { return bok * bok; }
- const char * nazwa() { return "Kwadrat"; }
- double bok;
- };
- class Kolo : public Figura
- {
- public:
- Kolo( double promien = 0 ) : promien( promien ) {}
- double pole() { return 3.14 * promien * promien; }
- const char * nazwa() { return "Kolo"; }
- double promien;
- };
- class Trojkat : public Figura
- {
- public:
- Trojkat(double wysokosc = 0, double bok = 0): wysokosc( wysokosc ) , bok( bok ) {}
- double pole () { return wysokosc * bok; }
- const char * nazwa () {return "Trojkat"; }
- double wysokosc;
- double bok;
- };
- class FabrykaFigur
- {
- public:
- Figura * zrobFigure( int jakFigura )
- {
- switch( jakFigura )
- {
- case 1 : return new Kwadrat;
- case 2 : return new Kolo;
- case 3 : return new Trojkat;
- default : return 0;
- }
- }
- };
- class Program
- {
- public:
- Program( const char * nazwa = 0 )
- {
- cout << "\nWitaj w programie " << ( ( nazwa != 0 ) ? nazwa : "" ) << endl;
- }
- ~Program()
- {
- cout << "\n\nPa, Pa!\nNacisnij Enter by zakonczyc...";
- cin.ignore();
- cin.get();
- }
- int wyborFigury()
- {
- int wybor;
- cout << "\n1. Kwadrat\n2. Kolo\n3. Trojkat\n4. Costam\n0. Koniec\n?> ";
- cin >> wybor;
- return wybor;
- }
- void ustalParametry( Figura * f )
- {
- if( stricmp( f->nazwa(), "Kwadrat" ) == 0 )
- {
- double wartosc ;
- cout << "Podaj dlugosc boku kwadratu";
- cin >> wartosc ;
- ( ( Kwadrat * ) f )->bok = wartosc;
- }
- if ( stricmp (f->nazwa(), "Kolo") ==0)
- {
- double pr;
- cout <<"Podaj dlugosc promienia kola";
- cin >> pr;
- ( (Kolo *) f )->promien = pr;
- }
- if (stricmp (f->nazwa(), "Trojkat") ==0)
- {
- double pod;
- cout <<"Podaj podstawe trojkata";
- cin >> pod;
- ((Trojkat *) f)->bok = pod;
- double wys;
- cout <<"Podaj dlugosc wysokosci";
- cin >> wys;
- ((Trojkat *) f)->wysokosc = wys;
- }
- }
- void wykonajSie()
- {
- Figura * f = 0;
- int wybor;
- FabrykaFigur fabryka;
- do
- {
- wybor = wyborFigury();
- f = fabryka.zrobFigure( wybor );
- if( f != 0 )
- {
- ustalParametry( f );
- liczIPisz( f );
- delete f;
- }
- }
- while( wybor != 0 );
- }
- void liczIPisz( Figura * figura )
- {
- cout << "\nFigura: " << figura->nazwa();
- cout << "\nPole: " << figura->pole();
- }
- };
- int main()
- {
- Program * mojProgramWspanialy = new Program( "Jedyny Taki :)" );
- mojProgramWspanialy->wykonajSie();
- delete mojProgramWspanialy;
- return EXIT_SUCCESS;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement