Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Kolokwium2.cpp : Defines the entry point for the console application.
- //
- #include "stdafx.h"
- #include <iostream>
- #include <string>
- using namespace std;
- class Figura
- {
- private:
- string nazwa;
- public:
- virtual double pole()
- {
- return -1;
- }
- virtual string typ()
- {
- return "figura";
- }
- Figura(string name) : nazwa(name) {}
- virtual void wyswietl()
- {
- cout << nazwa << " ";
- }
- string getNazwa()
- {
- return nazwa;
- }
- Figura() {}
- };
- class Kwadrat : public Figura
- {
- private:
- double bok;
- string nazwa;
- //string typ = "kwadrat";
- public:
- Kwadrat() {};
- Kwadrat(string name, double b) :Figura(name), bok(b) {}
- double pole()
- {
- return bok * bok;
- }
- string typ()
- {
- return "kwadrat";
- }
- void wyswietl()
- {
- Figura::wyswietl();
- cout << nazwa << " Bok " << bok << " ";
- }
- Kwadrat( Kwadrat &kwa)
- {
- nazwa = kwa.getNazwa();
- bok = kwa.bok;
- }
- };
- class Trojkat : public Figura
- {
- private:
- double podstawa, wysokosc;
- string nazwa;
- //string typ = "trojkat";
- public:
- Trojkat() {};
- Trojkat(string name, double p, double w) :nazwa(name), podstawa(p), wysokosc(w) {}
- double pole()
- {
- return podstawa*wysokosc/2;
- }
- string typ()
- {
- return "trojkat";
- }
- void wyswietl()
- {
- Figura::wyswietl();
- cout <<nazwa<<" Podstawa"<< podstawa << " " << wysokosc << " ";
- }
- Trojkat(Trojkat &troj)
- {
- nazwa = troj.getNazwa();
- podstawa = troj.podstawa;
- wysokosc = troj.wysokosc;
- }
- };
- class Pojemnik
- {
- public:
- int rozmiar;
- Figura ***Tab = new Figura**[rozmiar];
- int licznik_t = 0, licznik_k = 0;
- int licznik=0;
- Pojemnik(int r) : rozmiar(r) {}
- void wyswietl_2()
- {
- for (int i = 0; i < 2; i++)
- for (int j = 0; j < licznik; j++)
- {
- Tab[i][j]->wyswietl();
- Tab[i][j]->typ();
- }
- }
- void dodaj_K(Kwadrat obiekt)
- {
- if (licznik < rozmiar)
- {
- Tab[0][licznik_k] = new Kwadrat(obiekt);
- //Tab[licznik] = obiekt;
- licznik_k++;
- licznik = licznik_t + licznik_k;
- //cout << "Licznik k = " << licznik_k << endl;
- //cout << " licznik " << licznik << endl;
- //Tab[0][licznik_k]->wyswietl();
- }
- }
- void dodaj_T(Trojkat obiekt)
- {
- if (licznik < rozmiar)
- {
- Tab[1][licznik_t] = new Trojkat(obiekt);
- //Tab[licznik] = obiekt;
- licznik_t++;
- licznik = licznik_t + licznik_k;
- //cout << "Licznik t = " << licznik_t << endl;
- //cout << " licznik " << licznik << endl;
- //Tab[1][licznik_t]->wyswietl();
- }
- }
- void fun()
- {
- Tab[0] = new Figura*[rozmiar];
- Tab[1] = new Figura*[rozmiar];
- }
- /*void usun(double u_pole)
- {
- for (int i = 0; i < rozmiar; i++)
- {
- if (Tab[i]->pole() == u_pole)
- {
- delete Tab[i];
- }
- }
- }*/
- };
- int main()
- {
- int N, M, do_usuniecia;
- int licznik_trojkaty=0, licznik_kwadraty=0;
- cin >> N;
- Pojemnik poj(N);
- poj.fun();
- cin >> M;
- //Trojkat trojkaty[M];
- //Kwadrat kwadraty[M];
- for (int i = 0; i < M; i++)
- {
- string nazwa;
- string typ;
- cin >> typ;
- if (typ == "trojkat")
- {
- //cout << "jestesmy w trojkacie" << endl;
- cin >> nazwa;
- int podstawa, wysokosc;
- cin >> podstawa;
- cin >> wysokosc;
- Trojkat obiekt(nazwa, podstawa, wysokosc);
- licznik_trojkaty++;
- poj.dodaj_T(obiekt);
- //obiekt.wyswietl();
- }
- else if (typ == "kwadrat")
- {
- //cout << "jestesmy w kwadracie" << endl;
- cin >> nazwa;
- int bok;
- cin >> bok;
- //cout << "koniec2" << endl;
- Kwadrat obiekt(nazwa, bok);
- //cout << "koniec3" << endl;
- licznik_kwadraty++;
- poj.dodaj_K(obiekt);
- //cout << "koniec4" << endl;
- //obiekt.wyswietl();
- }
- }
- cout << "koniec" << endl;
- poj.wyswietl_2();
- cout << "koniec" << endl;
- poj.Tab[0][0]->wyswietl();
- poj.Tab[0][1]->wyswietl();
- poj.Tab[1][0]->wyswietl();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement