Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <string>
- #include <sstream>
- #include <cstdlib>
- #include <ctime>
- #define M 100
- using namespace std;
- class Figura
- {
- private:
- int kolor;
- public:
- int losuj(){
- srand(time(NULL));
- kolor = (rand()%5);
- return kolor;
- }
- Figura(){ losuj(); }
- };
- class Punkt
- {
- public:
- int x, y;
- Punkt(){}
- ~Punkt(){}
- Punkt(int parametr1, int parametr2){
- x = parametr1;
- y = parametr2;
- }
- Punkt(const Punkt &punkt){
- x = punkt.x;
- y = punkt.y;
- }
- void mov(int mov_x, int mov_y){
- x += mov_x;
- y += mov_y;
- }
- string toString(){
- ostringstream napis;
- napis << "(" << x << "," << y << ") ";
- return napis.str();
- }
- };
- class Linia
- {
- public:
- Punkt *p1, *p2;
- ~Linia(){}
- Linia(){
- *p1 = Punkt();
- *p2 = Punkt();
- }
- Linia(Punkt punkt1, Punkt punkt2){
- p1 = new Punkt(punkt1);
- p2 = new Punkt(punkt2);
- }
- Linia(const Linia &linia){
- p1 = linia.p1;
- p2 = linia.p2;
- }
- void mov(int mov_x, int mov_y){
- p1->mov(mov_x, mov_y);
- p2->mov(mov_x, mov_y);
- }
- void toString(){
- cout << "Punkt 1: " << p1->toString() << endl;
- cout << "Punkt 2: " << p2->toString() << endl << endl;
- }
- };
- class Trojkat : public Figura
- {
- public:
- int k;
- Linia *l1, *l2, *l3;
- ~Trojkat(){}
- Trojkat(){}
- Trojkat(Punkt p1, Punkt p2, Punkt p3){
- k = losuj();
- l1 = new Linia(p1, p2);
- l2 = new Linia(p2, p3);
- l3 = new Linia(p3, p1);
- }
- Trojkat(const Trojkat &trojkat){
- l1 = trojkat.l1;
- l2 = trojkat.l2;
- l3 = trojkat.l3;
- }
- void mov(int mov_x, int mov_y){
- l1->mov(mov_x, mov_y);
- l2->mov(mov_x, mov_y);
- l3->mov(mov_x, mov_y);
- }
- void toString(){
- cout << "Trojkat: Linia 1" << endl;
- l1->toString();
- cout << "Linia 2" << endl;
- l2->toString();
- cout << "Linia 3" << endl;
- l3->toString();
- }
- };
- class Czworokat : public Figura
- {
- public:
- int k;
- Linia *l1, *l2, *l3, *l4;
- ~Czworokat(){}
- Czworokat(){}
- Czworokat(Punkt p1, Punkt p2, Punkt p3, Punkt p4){
- k = losuj();
- l1 = new Linia(p1, p2);
- l2 = new Linia(p2, p3);
- l3 = new Linia(p3, p4);
- l4 = new Linia(p4, p1);
- }
- Czworokat(const Czworokat &czw){
- l1 = czw.l1;
- l2 = czw.l2;
- l3 = czw.l3;
- l4 = czw.l4;
- }
- void mov(int mov_x, int mov_y){
- l1->mov(mov_x, mov_y);
- l2->mov(mov_x, mov_y);
- l3->mov(mov_x, mov_y);
- l4->mov(mov_x, mov_y);
- }
- void toString(){
- cout << "Czworokat: Linia 1" << endl;
- l1->toString();
- cout << "Linia 2" << endl;
- l2->toString();
- cout << "Linia 3" << endl;
- l3->toString();
- cout << "Linia 4" << endl;
- l4->toString();
- }
- };
- class Kwadrat : public Figura
- {
- public:
- int k;
- Linia *l1, *l2, *l3, *l4;
- ~Kwadrat(){}
- Kwadrat(){}
- Kwadrat(Punkt p1){
- k = losuj();
- Punkt p2=Punkt(p1.x, p1.y+2);
- l1 = new Linia(p1, p2);
- Punkt p3=Punkt(p1.x+2, p1.y+2);
- Punkt p4=Punkt(p1.x+2, p1.y);
- l2 = new Linia(p2, p3);
- l3 = new Linia(p3, p4);
- l4 = new Linia(p4, p1);
- }
- Kwadrat(const Kwadrat &kw){
- l1 = kw.l1;
- l2 = kw.l2;
- l3 = kw.l3;
- l4 = kw.l4;
- }
- void mov(int mov_x, int mov_y){
- l1->mov(mov_x, mov_y);
- l2->mov(mov_x, mov_y);
- l3->mov(mov_x, mov_y);
- l4->mov(mov_x, mov_y);
- }
- void toString(){
- cout << "Kwadrat: Linia 1" << endl;
- l1->toString();
- cout << "Linia 2" << endl;
- l2->toString();
- cout << "Linia 3" << endl;
- l3->toString();
- cout << "Linia 4" << endl;
- l4->toString();
- }
- };
- class Prostokat : public Figura
- {
- public:
- int k;
- Linia *l1, *l2, *l3, *l4;
- ~Prostokat(){}
- Prostokat(){}
- Prostokat(Punkt p1, Punkt p2){
- k = losuj();
- l1 = new Linia(p1, p2);
- Punkt p3 = Punkt(p2.x, p2.y+3);
- Punkt p4 = Punkt(p1.x, p1.y+3);
- l2 = new Linia(p2, p3);
- l3 = new Linia(p3, p4);
- l4 = new Linia(p4, p1);
- }
- Prostokat(const Prostokat &pr){
- l1 = pr.l1;
- l2 = pr.l2;
- l3 = pr.l3;
- l4 = pr.l4;
- }
- void mov(int mov_x, int mov_y){
- l1->mov(mov_x, mov_y);
- l2->mov(mov_x, mov_y);
- l3->mov(mov_x, mov_y);
- l4->mov(mov_x, mov_y);
- }
- void toString(){
- cout << "Prostokat: Linia 1" << endl;
- l1->toString();
- cout << "Linia 2" << endl;
- l2->toString();
- cout << "Linia 3" << endl;
- l3->toString();
- cout << "Linia 4" << endl;
- l4->toString();
- }
- };
- class Obraz
- {
- private:
- int licznik_tr, licznik_czw, licznik_k, licznik_pr;
- Trojkat *tr;
- Czworokat *czw;
- Kwadrat *k;
- Prostokat *pr;
- public:
- Obraz(){
- tr = new Trojkat[M];
- czw = new Czworokat[M];
- pr = new Prostokat[M];
- k = new Kwadrat[M];
- licznik_k = -1;
- licznik_tr = -1;
- licznik_czw = -1;
- licznik_pr = -1;
- }
- Obraz(const Obraz &obraz){
- tr = new Trojkat[M];
- czw = new Czworokat[M];
- pr = new Prostokat[M];
- k = new Kwadrat[M];
- licznik_tr = obraz.licznik_tr;
- licznik_czw = obraz.licznik_czw;
- licznik_k = obraz.licznik_k;
- licznik_pr = obraz.licznik_pr;
- for(int i=0; i<=licznik_tr; i++)
- tr[i]=obraz.tr[i];
- for(int i=0; i<=licznik_czw; i++)
- czw[i]=obraz.czw[i];
- for(int i=0; i<=licznik_k; i++)
- k[i]=obraz.k[i];
- for(int i=0; i<=licznik_pr; i++)
- pr[i]=obraz.pr[i];
- }
- void add_tr(Trojkat trojkat){
- if(licznik_tr != M-1){
- licznik_tr++;
- tr[licznik_tr] = trojkat;
- }
- else
- cout << "Tablica jest pelna!" << endl;
- }
- void add_czw(Czworokat kwadrat){
- if(licznik_czw != M-1){
- licznik_czw++;
- czw[licznik_czw] = kwadrat;
- }
- else
- cout << "Tablica jest pelna!" << endl;
- }
- void add_k(Kwadrat kw){
- if(licznik_k != M-1){
- licznik_k++;
- k[licznik_k] = kw;
- }
- else
- cout << "Tablica jest pelna!" << endl;
- }
- void add_pr(Prostokat pros){
- if(licznik_pr != M-1){
- licznik_pr++;
- pr[licznik_pr] = pros;
- }
- else
- cout << "Tablica jest pelna!" << endl;
- }
- void mov(int mov_x, int mov_y){
- for(int i=0; i<=licznik_tr; i++)
- tr[i].mov(mov_x, mov_y);
- for(int i=0; i<=licznik_czw; i++)
- czw[i].mov(mov_x, mov_y);
- for(int i=0; i<=licznik_k; i++)
- k[i].mov(mov_x, mov_y);
- for(int i=0; i<=licznik_pr; i++)
- pr[i].mov(mov_x, mov_y);
- }
- void toString(){
- for(int i=0; i<= licznik_tr; i++)
- {
- cout << "Trojkat "<< i+1 << "Kolor " << endl;
- tr[i].toString();
- }
- for(int i=0; i<=licznik_czw; i++)
- {
- cout << "Czworokat "<< i+1 << endl;
- czw[i].toString();
- }
- for(int i=0; i<=licznik_k; i++)
- {
- cout << "Kwadrat "<< i+1 << endl;
- k[i].toString();
- }
- for(int i=0; i<=licznik_pr; i++)
- {
- cout << "Prostokat "<< i+1 << endl;
- pr[i].toString();
- }
- }
- };
- int main()
- {
- Punkt *p1=new Punkt(1,1);
- Punkt *p2=new Punkt(3,1);
- Punkt *p3=new Punkt(3,3);
- Punkt *p4=new Punkt(4,4);
- Czworokat *cz=new Czworokat(*p1, *p2, *p3, *p4);
- Trojkat *t = new Trojkat(*p1, *p2, *p3);
- Kwadrat *kw = new Kwadrat(*p1);
- Prostokat *pr = new Prostokat(*p1, *p2);
- if(pr->k==0)
- cout << "Kolor prostokata: Bialy" << endl;
- if(pr->k==1)
- cout << "Kolor prostokata: Czerwony" << endl;
- if(pr->k==2)
- cout << "Kolor prostokata: Czarny" << endl;
- if(pr->k==3)
- cout << "Kolor prostokata: Zolty" << endl;
- if(pr->k==4)
- cout << "Kolor prostokata: Zielony" << endl;
- if(pr->k==5)
- cout << "Kolor prostokata: Niebieski" << endl;
- if(kw->k==0)
- cout << "Kolor kwadratu: Bialy" << endl;
- if(kw->k==1)
- cout << "Kolor kwadratu: Czerwony" << endl;
- if(kw->k==2)
- cout << "Kolor kwadratu: Czarny" << endl;
- if(kw->k==3)
- cout << "Kolor kwadratu: Zolty" << endl;
- if(kw->k==4)
- cout << "Kolor kwadratu: Zielony" << endl;
- if(kw->k==5)
- cout << "Kolor kwadratu: Niebieski" << endl;
- Obraz o;
- o.add_k(*kw);
- o.add_pr(*pr);
- o.toString();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement