Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #pragma once
- #include <iostream>
- #include <cstdlib>
- #include <string>
- #include <cmath>
- #include <ctime>
- using namespace std;
- class Produkt {
- protected:
- static int id;
- static int licznik;
- int iid;
- double cena;
- string data_waznosci;
- public:
- virtual ~Produkt();
- virtual void wypisz()=0;
- static int getLicznik();
- virtual string getCecha()=0;
- virtual double getCena() = 0;
- };
- ///////////////////////
- #include "Produkt.h"
- class Jajka
- :public Produkt
- {
- string rozmiar;
- public:
- Jajka();
- ~Jajka();
- virtual void wypisz();
- virtual string getCecha();
- virtual double getCena();
- };
- //////////////////////
- #include "Produkt.h"
- class Mleko
- :public Produkt
- {
- string pojemnosc;
- public:
- Mleko();
- ~Mleko();
- virtual void wypisz();
- virtual string getCecha();
- virtual double getCena();
- };
- //////////////////////
- #include "Mleko.h"
- #include "Jajka.h"
- template <int ilosc, class typ>
- class Koszyk {
- static int id;
- static int licznik;
- int iid;
- typ *produkty[ilosc];
- int iloscProduktow;
- public:
- Koszyk();
- virtual ~Koszyk();
- virtual void wypisz();
- static int getLicznik();
- virtual double suma();
- };
- //////////////////////
- #include "Produkt.h"
- int Produkt::licznik = 0;
- int Produkt::id = 0;
- Produkt::~Produkt()
- {
- --licznik;
- }
- int Produkt::getLicznik()
- {
- return licznik;
- }
- ////////////////////////
- #include "Jajka.h"
- Jajka::Jajka()
- {
- iid = ++id;
- licznik++;
- cena = 0.5*(rand() % 10 + 1);
- data_waznosci = "20.12.2017";
- rozmiar = "M";
- }
- Jajka::~Jajka()
- {
- --licznik;
- }
- void Jajka::wypisz()
- {
- cout << "Produkt: Jajka" << endl;
- cout << "id: " << iid << endl;
- cout << "Data waznosci: " << data_waznosci << endl;
- cout << "Rozmiar: " << rozmiar << endl;
- cout << "Cena: " << cena << endl;
- }
- double Jajka::getCena()
- {
- return cena;
- }
- string Jajka::getCecha()
- {
- return rozmiar;
- }
- ////////////////////////
- #include "Mleko.h"
- Mleko::Mleko()
- {
- iid = ++id;
- licznik++;
- cena = rand() % 4 + 2;
- data_waznosci = "15.12.2017";
- pojemnosc = "1L";
- }
- Mleko::~Mleko()
- {
- }
- void Mleko::wypisz()
- {
- cout << "Produkt: Mleko" << endl;
- cout << "id: " << iid << endl;
- cout << "Data waznosci: " << data_waznosci << endl;
- cout << "Pojemnosc: " << pojemnosc << endl;
- cout << "Cena: " << cena << endl;
- }
- string Mleko::getCecha()
- {
- return pojemnosc;
- }
- double Mleko::getCena()
- {
- return cena;
- }
- ////////////////////////
- #include "Koszyk.h"
- template <int ilosc, class typ> int Koszyk<ilosc,typ>::id = 0;
- template <int ilosc, class typ> int Koszyk<ilosc,typ>::licznik = 0;
- template <int ilosc, class typ> Koszyk<ilosc, typ>::Koszyk()
- {
- iid = ++id;
- licznik++;
- iloscProduktow = ilosc;
- for (int i = 0; i < ilosc; i++)
- produkty[i] = new typ;
- }
- template <int ilosc, class typ> Koszyk<ilosc, typ>::~Koszyk()
- {
- --licznik;
- }
- template <int ilosc, class typ> void Koszyk<ilosc, typ>::wypisz()
- {
- cout << "id Koszyka: " << iid << endl;
- cout << "#####################" << endl;
- for (int i = 0; i < ilosc ; i++)
- produkty[i]->wypisz();
- cout << "#####################" << endl;
- cout << "Suma: " << suma() << endl;
- }
- template <int ilosc, class typ> int Koszyk<ilosc, typ>::getLicznik()
- {
- return licznik;
- }
- template <int ilosc, class typ> double Koszyk<ilosc, typ>::suma()
- {
- double suma = 0.0;
- for (int i = 0; i < iloscProduktow; i++)
- suma = suma + produkty[i]->getCena();
- return suma;
- }
- /////////////////////////
- #include "Koszyk.cpp"
- typedef Koszyk<12, Jajka> tuzin;
- typedef Koszyk<4, Mleko> zgrzewka;
- int main()
- {
- srand(time(NULL));
- {
- Koszyk<10, Jajka> A;
- Koszyk<4, Mleko> B;
- A.wypisz();
- cout << "#####################" << endl;
- B.wypisz();
- cout << "#####################" << endl;
- tuzin C;
- zgrzewka D;
- C.wypisz();
- cout << "#####################" << endl;
- D.wypisz();
- cout << "#####################" << endl;
- cout << "Licznik: " << Produkt::getLicznik() << endl;
- }
- cout << "Licznik: " << Produkt::getLicznik() << endl;
- system("pause");
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement