Advertisement
Guest User

Untitled

a guest
Apr 24th, 2017
61
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 9.07 KB | None | 0 0
  1. #include <iostream>
  2. #include <string>
  3. #include <sstream>
  4. #include <cstdlib>
  5. #include <ctime>
  6. #define M 100
  7.  
  8. using namespace std;
  9.  
  10. class Figura
  11. {
  12. private:
  13.     int kolor;
  14. public:
  15.     int losuj(){
  16.         srand(time(NULL));
  17.         kolor = (rand()%5);
  18.         return kolor;
  19.     }
  20.     Figura(){ losuj(); }
  21. };
  22.  
  23. class Punkt
  24. {
  25. public:
  26.     int x, y;
  27.     Punkt(){}
  28.     ~Punkt(){}
  29.     Punkt(int parametr1, int parametr2){
  30.         x = parametr1;
  31.         y = parametr2;
  32.     }
  33.     Punkt(const Punkt &punkt){
  34.         x = punkt.x;
  35.         y = punkt.y;
  36.     }
  37.     void mov(int mov_x, int mov_y){
  38.         x += mov_x;
  39.         y += mov_y;
  40.     }
  41.     string toString(){
  42.             ostringstream napis;
  43.             napis << "(" << x << "," << y << ") ";
  44.             return napis.str();
  45.     }
  46. };
  47.  
  48. class Linia
  49. {
  50. public:
  51.     Punkt *p1, *p2;
  52.     ~Linia(){}
  53.     Linia(){
  54.         *p1 = Punkt();
  55.         *p2 = Punkt();
  56.     }
  57.     Linia(Punkt punkt1, Punkt punkt2){
  58.         p1 = new Punkt(punkt1);
  59.         p2 = new Punkt(punkt2);
  60.     }
  61.     Linia(const Linia &linia){
  62.         p1 = linia.p1;
  63.         p2 = linia.p2;
  64.     }
  65.     void mov(int mov_x, int mov_y){
  66.         p1->mov(mov_x, mov_y);
  67.         p2->mov(mov_x, mov_y);
  68.     }
  69.     void toString(){
  70.         cout << "Punkt 1: " << p1->toString() << endl;
  71.         cout << "Punkt 2: " << p2->toString() << endl << endl;
  72.     }
  73. };
  74.  
  75. class Trojkat : public Figura
  76. {
  77. public:
  78.     int k;
  79.     Linia *l1, *l2, *l3;
  80.     ~Trojkat(){}
  81.     Trojkat(){}
  82.     Trojkat(Punkt p1, Punkt p2, Punkt p3){
  83.         k = losuj();
  84.         l1 = new Linia(p1, p2);
  85.         l2 = new Linia(p2, p3);
  86.         l3 = new Linia(p3, p1);
  87.     }
  88.     Trojkat(const Trojkat &trojkat){
  89.         l1 = trojkat.l1;
  90.         l2 = trojkat.l2;
  91.         l3 = trojkat.l3;
  92.     }
  93.     void mov(int mov_x, int mov_y){
  94.         l1->mov(mov_x, mov_y);
  95.         l2->mov(mov_x, mov_y);
  96.         l3->mov(mov_x, mov_y);
  97.     }
  98.     void toString(){
  99.         cout << "Trojkat: Linia 1" << endl;
  100.         l1->toString();
  101.         cout << "Linia 2" << endl;
  102.         l2->toString();
  103.         cout << "Linia 3" << endl;
  104.         l3->toString();
  105.     }
  106. };
  107.  
  108. class Czworokat : public Figura
  109. {
  110. public:
  111.     int k;
  112.     Linia *l1, *l2, *l3, *l4;
  113.     ~Czworokat(){}
  114.     Czworokat(){}
  115.     Czworokat(Punkt p1, Punkt p2, Punkt p3, Punkt p4){
  116.         k = losuj();
  117.         l1 = new Linia(p1, p2);
  118.         l2 = new Linia(p2, p3);
  119.         l3 = new Linia(p3, p4);
  120.         l4 = new Linia(p4, p1);
  121.     }
  122.     Czworokat(const Czworokat &czw){
  123.         l1 = czw.l1;
  124.         l2 = czw.l2;
  125.         l3 = czw.l3;
  126.         l4 = czw.l4;
  127.     }
  128.     void mov(int mov_x, int mov_y){
  129.         l1->mov(mov_x, mov_y);
  130.         l2->mov(mov_x, mov_y);
  131.         l3->mov(mov_x, mov_y);
  132.         l4->mov(mov_x, mov_y);
  133.     }
  134.     void toString(){
  135.         cout << "Czworokat: Linia 1" << endl;
  136.         l1->toString();
  137.         cout << "Linia 2" << endl;
  138.         l2->toString();
  139.         cout << "Linia 3" << endl;
  140.         l3->toString();
  141.         cout << "Linia 4" << endl;
  142.         l4->toString();
  143.     }
  144. };
  145.  
  146.  
  147. class Kwadrat : public Figura
  148. {
  149. public:
  150.     int k;
  151.     Linia *l1, *l2, *l3, *l4;
  152.     ~Kwadrat(){}
  153.     Kwadrat(){}
  154.     Kwadrat(Punkt p1){
  155.         k = losuj();
  156.         Punkt p2=Punkt(p1.x, p1.y+2);
  157.         l1 = new Linia(p1, p2);
  158.         Punkt p3=Punkt(p1.x+2, p1.y+2);
  159.         Punkt p4=Punkt(p1.x+2, p1.y);
  160.         l2 = new Linia(p2, p3);
  161.         l3 = new Linia(p3, p4);
  162.         l4 = new Linia(p4, p1);
  163.     }
  164.     Kwadrat(const Kwadrat &kw){
  165.         l1 = kw.l1;
  166.         l2 = kw.l2;
  167.         l3 = kw.l3;
  168.         l4 = kw.l4;
  169.     }
  170.     void mov(int mov_x, int mov_y){
  171.         l1->mov(mov_x, mov_y);
  172.         l2->mov(mov_x, mov_y);
  173.         l3->mov(mov_x, mov_y);
  174.         l4->mov(mov_x, mov_y);
  175.     }
  176.     void toString(){
  177.         cout << "Kwadrat: Linia 1" << endl;
  178.         l1->toString();
  179.         cout << "Linia 2" << endl;
  180.         l2->toString();
  181.         cout << "Linia 3" << endl;
  182.         l3->toString();
  183.         cout << "Linia 4" << endl;
  184.         l4->toString();
  185.     }
  186. };
  187.  
  188. class Prostokat : public Figura
  189. {
  190. public:
  191.     int k;
  192.     Linia *l1, *l2, *l3, *l4;
  193.     ~Prostokat(){}
  194.     Prostokat(){}
  195.     Prostokat(Punkt p1, Punkt p2){
  196.         k = losuj();
  197.         l1 = new Linia(p1, p2);
  198.         Punkt p3 = Punkt(p2.x, p2.y+3);
  199.         Punkt p4 = Punkt(p1.x, p1.y+3);
  200.         l2 = new Linia(p2, p3);
  201.         l3 = new Linia(p3, p4);
  202.         l4 = new Linia(p4, p1);
  203.     }
  204.     Prostokat(const Prostokat &pr){
  205.         l1 = pr.l1;
  206.         l2 = pr.l2;
  207.         l3 = pr.l3;
  208.         l4 = pr.l4;
  209.     }
  210.     void mov(int mov_x, int mov_y){
  211.         l1->mov(mov_x, mov_y);
  212.         l2->mov(mov_x, mov_y);
  213.         l3->mov(mov_x, mov_y);
  214.         l4->mov(mov_x, mov_y);
  215.     }
  216.     void toString(){
  217.         cout << "Prostokat: Linia 1" << endl;
  218.         l1->toString();
  219.         cout << "Linia 2" << endl;
  220.         l2->toString();
  221.         cout << "Linia 3" << endl;
  222.         l3->toString();
  223.         cout << "Linia 4" << endl;
  224.         l4->toString();
  225.     }
  226. };
  227.  
  228.  
  229. class Obraz
  230. {
  231. private:
  232.     int licznik_tr, licznik_czw, licznik_k, licznik_pr;
  233.     Trojkat *tr;
  234.     Czworokat *czw;
  235.     Kwadrat *k;
  236.     Prostokat *pr;
  237. public:
  238.     Obraz(){
  239.         tr = new Trojkat[M];
  240.         czw = new Czworokat[M];
  241.         pr = new Prostokat[M];
  242.         k = new Kwadrat[M];
  243.         licznik_k = -1;
  244.         licznik_tr = -1;
  245.         licznik_czw = -1;
  246.         licznik_pr = -1;
  247.     }
  248.     Obraz(const Obraz &obraz){
  249.         tr = new Trojkat[M];
  250.         czw = new Czworokat[M];
  251.         pr = new Prostokat[M];
  252.         k = new Kwadrat[M];
  253.         licznik_tr = obraz.licznik_tr;
  254.         licznik_czw = obraz.licznik_czw;
  255.         licznik_k = obraz.licznik_k;
  256.         licznik_pr = obraz.licznik_pr;
  257.  
  258.         for(int i=0; i<=licznik_tr; i++)
  259.             tr[i]=obraz.tr[i];
  260.         for(int i=0; i<=licznik_czw; i++)
  261.             czw[i]=obraz.czw[i];
  262.         for(int i=0; i<=licznik_k; i++)
  263.             k[i]=obraz.k[i];
  264.         for(int i=0; i<=licznik_pr; i++)
  265.             pr[i]=obraz.pr[i];
  266.     }
  267.     void add_tr(Trojkat trojkat){
  268.         if(licznik_tr != M-1){
  269.             licznik_tr++;
  270.             tr[licznik_tr] = trojkat;
  271.         }
  272.         else
  273.             cout << "Tablica jest pelna!" << endl;
  274.     }
  275.     void add_czw(Czworokat kwadrat){
  276.         if(licznik_czw != M-1){
  277.             licznik_czw++;
  278.             czw[licznik_czw] = kwadrat;
  279.         }
  280.         else
  281.             cout << "Tablica jest pelna!" << endl;
  282.     }
  283.     void add_k(Kwadrat kw){
  284.         if(licznik_k != M-1){
  285.             licznik_k++;
  286.             k[licznik_k] = kw;
  287.         }
  288.         else
  289.             cout << "Tablica jest pelna!" << endl;
  290.     }
  291.     void add_pr(Prostokat pros){
  292.         if(licznik_pr != M-1){
  293.             licznik_pr++;
  294.             pr[licznik_pr] = pros;
  295.         }
  296.         else
  297.             cout << "Tablica jest pelna!" << endl;
  298.     }
  299.     void mov(int mov_x, int mov_y){
  300.         for(int i=0; i<=licznik_tr; i++)
  301.             tr[i].mov(mov_x, mov_y);
  302.         for(int i=0; i<=licznik_czw; i++)
  303.             czw[i].mov(mov_x, mov_y);
  304.         for(int i=0; i<=licznik_k; i++)
  305.             k[i].mov(mov_x, mov_y);
  306.         for(int i=0; i<=licznik_pr; i++)
  307.             pr[i].mov(mov_x, mov_y);
  308.  
  309.     }
  310.     void toString(){
  311.         for(int i=0; i<= licznik_tr; i++)
  312.         {
  313.             cout << "Trojkat  "<< i+1 << "Kolor  " << endl;
  314.             tr[i].toString();
  315.         }
  316.         for(int i=0; i<=licznik_czw; i++)
  317.         {
  318.             cout << "Czworokat  "<< i+1 << endl;
  319.             czw[i].toString();
  320.         }
  321.         for(int i=0; i<=licznik_k; i++)
  322.         {
  323.             cout << "Kwadrat  "<< i+1 << endl;
  324.             k[i].toString();
  325.         }
  326.         for(int i=0; i<=licznik_pr; i++)
  327.         {
  328.             cout << "Prostokat  "<< i+1 << endl;
  329.             pr[i].toString();
  330.         }
  331.     }
  332. };
  333.  
  334. int main()
  335. {
  336.     Punkt *p1=new Punkt(1,1);
  337.     Punkt *p2=new Punkt(3,1);
  338.     Punkt *p3=new Punkt(3,3);
  339.     Punkt *p4=new Punkt(4,4);
  340.     Czworokat *cz=new Czworokat(*p1, *p2, *p3, *p4);
  341.     Trojkat *t = new Trojkat(*p1, *p2, *p3);
  342.     Kwadrat *kw = new Kwadrat(*p1);
  343.     Prostokat *pr = new Prostokat(*p1, *p2);
  344.  
  345.     if(pr->k==0)
  346.         cout << "Kolor prostokata: Bialy" << endl;
  347.     if(pr->k==1)
  348.         cout << "Kolor prostokata: Czerwony" << endl;
  349.     if(pr->k==2)
  350.         cout << "Kolor prostokata: Czarny" << endl;
  351.     if(pr->k==3)
  352.         cout << "Kolor prostokata: Zolty" << endl;
  353.     if(pr->k==4)
  354.         cout << "Kolor prostokata: Zielony" << endl;
  355.     if(pr->k==5)
  356.         cout << "Kolor prostokata: Niebieski" << endl;
  357.  
  358.     if(kw->k==0)
  359.         cout << "Kolor kwadratu: Bialy" << endl;
  360.     if(kw->k==1)
  361.         cout << "Kolor kwadratu: Czerwony" << endl;
  362.     if(kw->k==2)
  363.         cout << "Kolor kwadratu: Czarny" << endl;
  364.     if(kw->k==3)
  365.         cout << "Kolor kwadratu: Zolty" << endl;
  366.     if(kw->k==4)
  367.         cout << "Kolor kwadratu: Zielony" << endl;
  368.     if(kw->k==5)
  369.         cout << "Kolor kwadratu: Niebieski" << endl;
  370.  
  371.  
  372.     Obraz o;
  373.     o.add_k(*kw);
  374.     o.add_pr(*pr);
  375.     o.toString();
  376.     return 0;
  377. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement