- #include<iostream>
- #include<vector>
- #include <algorithm>
- using namespace std;
- class Produkt {
- protected:
- string firma;
- int pojemnosc;
- public:
- Produkt(string x=" ",int y = 0) {
- firma = x;
- pojemnosc = y;
- }
- virtual void nazwa() {
- cout << "Produkt firmy: "<<firma<<" i ma pojemnosc: "<<pojemnosc<<"ml";
- };
- };
- class Mleko : public Produkt {
- public:
- Mleko(string x,int y) :Produkt(x,y) {};
- virtual void nazwa() {
- cout << "Nazwa produktu: Mleko,firmy: "<<firma <<", o pojemosci: "<<pojemnosc;
- }
- };
- class Sok : public Produkt {
- public:
- Sok(string x, int y) :Produkt(x, y) {};
- virtual void nazwa() {
- cout << "Nazwa produktu: Sok,firmy: " << firma << ", o pojemosci: " << pojemnosc;
- }
- };
- class Kawa : public Produkt {
- public:
- Kawa(string x, int y) :Produkt(x, y) {};
- virtual void nazwa() {
- cout << "Nazwa produktu: Kawa,firmy: " << firma << ", o pojemosci: " << pojemnosc;
- }
- };
- class Magazyn :Produkt{
- public:
- vector<Produkt*> produkty;
- Magazyn() {};
- void operator +(Produkt *produkt) {
- produkty.push_back(produkt);
- }
- void operator -(Produkt* produkt) {
- produkty.erase(remove(produkty.begin(), produkty.end(), produkt), produkty.end());
- }
- void wypisz() {
- Produkt *wsk1;
- for (int i = 0; i < produkty.size(); i++) {
- wsk1 = &produkty[i][0];
- wsk1->nazwa();
- cout << endl;
- }
- }
- };
- int main() {
- /*
- vector<int> vec;
- vec.push_back(1);
- vec.push_back(45);
- vec.push_back(3);
- vec.push_back(4);
- vec.push_back(5);
- vec.erase(remove(vec.begin(), vec.end(), 45), vec.end());
- for (int i = 0; i < vec.size(); i++) {
- cout << vec[i] << endl;
- }
- */
- /*
- Magazyn magazyn;
- string ooo;
- cin >> ooo;
- Mleko m1(ooo, 500);
- Sok p("raz", 500);
- Kawa p1("dwa", 300);
- magazyn + &p;
- magazyn + &p1;
- magazyn + &m1;
- magazyn - &p1;
- magazyn.wypisz();
- */
- Magazyn magazyn;
- int ans;
- do {
- cout << "1.Jezeli chcesz dodac Mleko do magazynu wybierz 1" << endl;
- cout << "2.Jezeli chcesz dodac Sok do magazynu wybierz 2" << endl;
- cout << "3.Jezeli chcesz dodac Kawe do magazynu wybierz 3" << endl;
- cout << "4.Jezeli chcesz usunac produkt z magazynu wybierz 4" << endl;
- cout << "5.Jezeli chcesz wypisac zawartosc magazynu wybierz 5" << endl;
- cout << "6.Jezeli chcesz zakonczyc dzialanie wybierz 6" << endl<<endl;
- cout << "Twoja odpowiedz to: ";
- cin >> ans;
- string firma1;
- int objetosc;
- if (ans == 1) {
- cout << "Podaj nazwe firmy ktora wyprodukowala to Mleko: ";
- cin >> firma1;
- cout << "Podaj ile w ml jest tego mleka w butelce/katornie: ";
- cin >> objetosc;
- Mleko m1(firma1, objetosc);
- magazyn + &m1;
- m1.nazwa();
- }
- else if (ans == 2) {
- cout << "Podaj nazwe firmy ktora wyprodukowala ten Sok: ";
- cin >> firma1;
- cout << "Podaj ile w ml jest tego soku w butelce/katornie: ";
- cin >> objetosc;
- Sok s1(firma1, objetosc);
- magazyn + &s1;
- }
- else if (ans == 3) {
- cout << "Podaj nazwe firmy ktora wyprodukowala ta Kawa: ";
- cin >> firma1;
- cout << "Podaj ile w ml jest tej kawy: ";
- cin >> objetosc;
- Kawa p1(firma1,objetosc);
- magazyn + &p1;
- }
- else if (ans == 4) {
- cout << "Podaj zmienna pod ktora zostal zapisany produkt ktory chcesz usunac z magazynu: ";
- //cin >> zmienna;
- }
- else if (ans == 5) {
- magazyn.wypisz();
- }
- } while (ans != 6);
- }