Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <cstdlib>
- #include <cmath>
- #include <iostream>
- using namespace std;
- class Figura
- {
- public:
- virtual char * jakaToFigura() = 0;
- virtual double obliczPole() = 0;
- };
- class Kwadrat : public Figura
- {
- public:
- char * jakaToFigura() { return "Kwadrat"; }
- Kwadrat( double b ) : bok( 0 )
- {
- ustawBok( b );
- }
- Kwadrat() : bok( 0 )
- {
- }
- void ustawBok( double bok )
- {
- if( bok >= 0 )
- Kwadrat::bok = bok;
- }
- double pobierzBok()
- {
- return bok;
- }
- double obliczPole()
- {
- return bok * bok;
- }
- private:
- double bok;
- };
- class Kolo : public Figura
- {
- public:
- char * jakaToFigura() { return "Kolo"; }
- Kolo( double r ) : promien( 0 )
- {
- ustawPromien( r );
- }
- Kolo() : promien( 0 )
- {
- }
- void ustawPromien( double promien )
- {
- if( promien >= 0 )
- Kolo::promien = promien;
- }
- double pobierzPromien()
- {
- return promien;
- }
- double obliczPole()
- {
- return M_PI * promien * promien;
- }
- private:
- double promien;
- };
- class Barbapapa : public Figura
- {
- public:
- char * jakaToFigura() { return "Barbapapa"; }
- Barbapapa()
- {
- }
- double obliczPole()
- {
- return 100;
- }
- };
- class Szescian : public Kwadrat
- {
- public:
- char * jakaToFigura() { return "Szescian"; }
- Szescian() : Kwadrat()
- {
- }
- Szescian( double bok ) : Kwadrat( bok )
- {
- }
- double obliczPole()
- {
- return 6 * Kwadrat::obliczPole();
- }
- };
- void obliczIWypisz( Figura * wsk )
- {
- cout << wsk->jakaToFigura();
- cout << " pole to: " << wsk->obliczPole();
- }
- void fun( Figura * figury[], int ileFigur )
- {
- double suma = 0;
- for( int i = 0; i < ileFigur; ++i )
- {
- cout << endl << figury[ i ]->jakaToFigura();
- suma += figury[ i ]->obliczPole();
- }
- cout << "Suma pol: " << suma;
- }
- int main()
- {
- /*
- char klawisz;
- Figura * f;
- cout << "Wybierz figure\n1. Kwadrat\n2. Kolo\n3. Barbapapa\n>> ";
- cin >> klawisz;
- switch( klawisz )
- {
- case '1': cout << "Podaj bok: ";
- double bok;
- cin >> bok;
- f = new Kwadrat( bok );
- break;
- case '2': cout << "Podaj promien: ";
- double r;
- cin >> r;
- f = new Kolo( r );
- break;
- case '3' : f = new Szescian;
- break;
- }
- obliczIWypisz( f );
- delete f;
- */
- const int N = 5;
- Figura * figury[ N ];
- figury[ 0 ] = new Kwadrat( 2 );
- figury[ 1 ] = new Kwadrat( 3 );
- figury[ 2 ] = new Kolo( 1 );
- figury[ 3 ] = new Barbapapa;
- figury[ 4 ] = new Szescian( 2 );
- fun( figury, N );
- cin.get();
- cin.get();
- return EXIT_SUCCESS;
- }
- /*
- class Szescian : public Kwadrat
- {
- public:
- Szescian() : Kwadrat()
- {
- }
- Szescian( double bok ) : Kwadrat( bok )
- {
- }
- double obliczPole()
- {
- return 6 * Kwadrat::obliczPole();
- }
- };
- class Program
- {
- public:
- Program();
- ~Program();
- void figury();
- void bryly();
- void wykonanie();
- private:
- void pokazMenuFigury();
- void pokazMenuBryly();
- void pokazMenu();
- void kwadrat();
- void kolo();
- void prostokat();
- void trojkat();
- void szescian();
- void czyscEkran();
- };
- void Program::czyscEkran()
- {
- system( "cls" );
- }
- Program::Program()
- {
- cout << "\nObliczam pola figur plaskich, wybierz figure";
- }
- Program::~Program()
- {
- cout << "\nEnter=Koniec programu";
- cin.get();
- }
- void Program::pokazMenuFigury()
- {
- czyscEkran();
- cout << "\n1. Kwadrat\n2. Kolo\n3. Prostokat\n4. Trojkat\n\n0. Menu glowne\n>>";
- }
- void Program::figury()
- {
- char klawisz;
- do
- {
- pokazMenuFigury();
- cin >> klawisz;
- switch( klawisz )
- {
- case '1' : kwadrat();
- break;
- case '2' : kolo();
- break;
- case '3' : prostokat();
- break;
- case '4' : trojkat();
- break;
- }
- }
- while( klawisz != '0' );
- }
- void Program::pokazMenuBryly()
- {
- czyscEkran();
- cout << "\n1. Szescian\n2. Kula\n3. Prostopadloscian\n4. Graniastoslup\n\n0. Menu glowne\n>>";
- }
- void Program::szescian()
- {
- double bok;
- cout << "\nObliczenia dla szescianu\nPodaj dlugosc boku: ";
- cin >> bok;
- Szescian s( bok );
- // s.ustawBok( bok );
- cout << "Pole szecianu o boku " << s.pobierzBok() << " wynosi: " << s.obliczPole();
- cin.ignore();
- cin.get();
- }
- void Program::bryly()
- {
- char klawisz;
- do
- {
- pokazMenuBryly();
- cin >> klawisz;
- switch( klawisz )
- {
- case '1' : szescian();
- break;
- case '2' : ;
- break;
- case '3' : ;
- break;
- case '4' : ;
- break;
- }
- }
- while( klawisz != '0' );
- }
- void Program::pokazMenu()
- {
- czyscEkran();
- cout << "\n1. Figury\n2. Bryly\n\n0. Koniec\n>>";
- }
- void Program::wykonanie()
- {
- char klawisz;
- do
- {
- pokazMenu();
- cin >> klawisz;
- switch( klawisz )
- {
- case '1' : figury();
- break;
- case '2' : bryly();
- break;
- }
- }
- while( klawisz != '0' );
- }
- void Program::kwadrat()
- {
- double bok;
- cout << "\nObliczenia dla kwadratu\nPodaj dlugosc boku: ";
- cin >> bok;
- Kwadrat k;
- k.ustawBok( bok );
- cout << "Pole kwadratu o boku " << k.pobierzBok() << " wynosi: " << k.obliczPole();
- // Kwadrat k( bok );
- // cout << "Pole kwadratu o boku " << k.pobierzBok() << " wynosi: " << k.obliczPole();
- }
- void Program::kolo()
- {
- }
- void Program::prostokat()
- {
- }
- void Program::trojkat()
- {
- }
- int main()
- {
- Program prog;
- prog.wykonanie();
- return EXIT_SUCCESS;
- }
- */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement