Advertisement
Marcel12311

wielopostaciowość/polymorphism(użycie figur)

Jan 12th, 2021
214
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.76 KB | None | 0 0
  1. #include <iostream>
  2. #include <cstdlib>
  3. using namespace std;
  4. class Figury{
  5. protected:
  6.     int BokA,BokB;
  7. public:
  8.     virtual void Wyswietl()=0;
  9.     virtual void Pole()=0;
  10.     virtual void Obwod()=0;
  11. };
  12. class Kolo :public Figury{
  13. public:
  14.     Kolo(int a=10,int b=4){BokA=a,BokB=b;}
  15.     void Wyswietl(){cout<<"Nazwa: (Kwadrat), ";
  16.                     cout<<"Bok A: "<< BokA<<", ";
  17.                     cout<<"Bok B: "<< BokB;}
  18.     void Pole(){cout<< ", Pole: "<<BokA*BokA; }
  19.     void Obwod(){cout<< ", Obwod: "<<4*BokA<<endl;}
  20.  
  21. };
  22. class Trojkat :public Figury{
  23.     int BokC;
  24.     int WysokoscH;
  25. public:
  26.     Trojkat(int a=8,int b=4,int c=5,int h=6){BokA=a;BokB=b;BokC=c;WysokoscH=h;}
  27.     void Wyswietl(){cout<<"Nazwa: (Trojkat)";
  28.                 cout << ", Bok A: " << BokA;
  29.                 cout << ", Bok B: "<< BokB;
  30.                 cout << ", Bok C: "<< BokC;
  31.                 cout << ", Wysokosc: "<< WysokoscH;}
  32.     void Pole(){cout << ", Pole: "<<(BokA*WysokoscH)/2;}
  33.     void Obwod(){cout << ", Obwod: "<<BokA+BokB+BokC;}
  34. };
  35. void funkcja1(Figury* t){
  36.     t->Wyswietl();
  37.     t->Pole();
  38.     t->Obwod();
  39. }
  40. int main()
  41. {
  42.     Kolo obj1;
  43.     Trojkat obj2;
  44.     Figury* wsk;
  45.     int gr=0;
  46. while(gr!=9){
  47.     cout << "co chcesz wyswietlic? \n";
  48.     cout << "1.Kwadrat\n";
  49.     cout << "2.Trojkat\n";
  50.     cout << "9.aby wyjsc\n";
  51.     cout << "Enter: ";
  52.     cin >> gr;
  53.     system("cls");
  54.     switch(gr){
  55.     case 1:
  56.         wsk=&obj1;
  57.         funkcja1(wsk);
  58.         break;
  59.     case 2:
  60.         wsk=&obj2;
  61.         funkcja1(wsk);
  62.         break;
  63.     case 9:
  64.         break;
  65.     default:
  66.         cout << "Blednie wprowadziles dane!";
  67.         exit(0);
  68.     }}
  69. if(gr==9){
  70.         cout << "Pomyslnie wyszedles!";
  71.         exit(0);
  72.     }
  73.     return 0;
  74. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement