Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<iostream>
- #include<list>
- #include<vector>
- #include<string>
- #include<cstdlib>
- #include <cstddef>
- #include<sstream>
- using namespace std;
- class Towar {
- protected:
- int cena;
- string opis;
- public:
- string nazwa;
- Towar(){}
- Towar(int cena, string nazwa, string opis)
- {
- this->cena=cena;
- this->nazwa=nazwa;
- this->opis=opis;
- }
- virtual void podsumuj(){};
- int getCena(){
- return this->cena;
- }
- };
- class Urzadzenie : public Towar {
- protected:
- string nazwa_producenta;
- public:
- Urzadzenie(string nazwa_producenta,int cena, string nazwa, string opis): Towar(cena, nazwa, opis)
- {
- this->nazwa_producenta=nazwa_producenta;
- }
- void podsumuj() {
- cout<<"\nNazwa producenta: "<<nazwa_producenta<<"\nNazwa: "<<nazwa<<" "<<"\nOpis: "<<opis;
- }
- };
- class Nosnik :public Towar{
- protected:
- int wielkosc;
- public:
- Nosnik (int wielkosc, int cena, string nazwa, string opis):Towar(cena,nazwa,opis)
- {
- this->wielkosc=wielkosc;
- }
- void podsumuj(){
- cout<<"\nWielkosc: "<<wielkosc<<"\nCena: "<<cena<<"\nNazwa"<<nazwa<<"\nOpis"<<opis;
- }
- };
- class Telefon :public Urzadzenie{
- protected:
- string model;
- public:
- Telefon(string model,string nazwa_producenta,int cena, string nazwa, string opis):Urzadzenie(nazwa_producenta,cena,nazwa,opis)
- {
- this->model=model;
- }
- void podsumuj(){
- cout<<"\nModel: "<<model<<"\nNazwa producenta: "<<nazwa_producenta<<"\nNazwa: "<<nazwa<<" "<<"\nOpis: "<<opis;
- }
- };
- class Smartfon: public Telefon {
- protected:
- bool barometr;
- bool hd;
- bool termometr;
- public:
- Smartfon(bool barometr, bool hd,bool termometr,string model,string nazwa_producenta,int cena, string nazwa, string opis): Telefon(model,nazwa_producenta,cena,nazwa,opis)
- {
- this->barometr=barometr;
- this->hd=hd;
- this->termometr=termometr;
- }
- void podsumuj(){
- cout<<"\nCzy ma barometr? :"<<barometr<<"\nCzy ma wys. hd? :"<<hd<<"\nCzy ma termometr: "<<termometr<<"\nModel: "<<model<<"\nnazwa producenta: "<<nazwa_producenta;
- cout<<"\ncena: "<<cena<<"\nnazwa: "<<nazwa<<"\nopis: "<<opis;
- }
- };
- class Dumbfon: public Telefon {
- protected:
- bool wyswietlacz;
- public:
- Dumbfon(bool wyswietlacz,string model,string nazwa_producenta,int cena, string nazwa, string opis):Telefon(model,nazwa_producenta,cena,nazwa,opis)
- {
- this->wyswietlacz=wyswietlacz;
- }
- void podsumuj(){
- cout<<"\nCzy ma wyswietlacz? :"<<wyswietlacz<<"\nmodel: "<<model<<"\nnazwa producenta: "<<nazwa_producenta<<"\ncena: "<<cena<<"\nnazwa: "<<nazwa<<"\nopis: "<<opis;
- }
- };
- class Komputer: public Urzadzenie{
- protected:
- string model;
- public:
- Komputer(string model,string nazwa_producenta,int cena, string nazwa, string opis):Urzadzenie(nazwa_producenta,cena,nazwa,opis)
- {
- this->model=model;
- }
- void podsumuj(){
- cout<<"\nmodel:"<<model<<"\nnazwa producenta: "<<nazwa_producenta<<"\ncena: "<<cena<<"\nnazwa: "<<nazwa<<"\nopis: "<<opis;
- }
- };
- class Tablet: public Komputer{
- protected:
- int wyswietlacz;
- public:
- Tablet(int wyswietlacz,string model,string nazwa_producenta,int cena, string nazwa, string opis):Komputer(model,nazwa_producenta,cena,nazwa,opis)
- {
- this->wyswietlacz=wyswietlacz;
- }
- void podsumuj(){
- cout<<"\nPrzekatna wyswietlacza: "<<wyswietlacz<<"\nmodel:"<<model<<"\nnazwa producenta: "<<nazwa_producenta<<"\ncena: "<<cena<<"\nnazwa: "<<nazwa<<"\nopis: "<<opis;
- }
- };
- class Laptop:public Komputer{
- protected:
- string system;
- public:
- Laptop(string system,string model,string nazwa_producenta,int cena, string nazwa, string opis):Komputer(model,nazwa_producenta,cena,nazwa,opis)
- {
- this->system=system;
- }
- void podsumuj(){
- cout<<"\nSystem: "<<system<<"\nmodel:"<<model<<"\nnazwa producenta: "<<nazwa_producenta<<"\ncena: "<<cena<<"\nnazwa: "<<nazwa<<"\nopis: "<<opis;
- }
- };
- class Plyta :public Nosnik{
- protected:
- string rodzaj_danych;
- public:
- Plyta(string rodzaj_danych,int wielkosc, int cena, string nazwa, string opis):Nosnik(wielkosc,cena,nazwa,opis)
- {
- this->rodzaj_danych=rodzaj_danych;
- }
- void podsumuj(){
- cout<<"\nrodzaj danych: "<<rodzaj_danych<<"\nWielkosc: "<<wielkosc<<"\nCena: "<<cena<<"\nNazwa: "<<nazwa<<"\nOpis: "<<opis;
- }
- };
- class Ksiazka:public Nosnik{
- protected:
- int iloscStron;
- public:
- Ksiazka(int iloscStron,int wielkosc, int cena, string nazwa, string opis):Nosnik(wielkosc,cena,nazwa,opis)
- {
- this->iloscStron=iloscStron;
- }
- void podsumuj(){
- cout<<"ilosc stron: "<<iloscStron<<"\nWielkosc: "<<wielkosc<<"\nCena: "<<cena<<"\nNazwa: "<<nazwa<<"\nOpis: "<<opis;
- }
- };
- class CD :public Plyta{
- protected:
- string nazwa1;
- public:
- CD(string nazwa1,string rodzaj_danych,int wielkosc, int cena, string nazwa, string opis):Plyta(rodzaj_danych,wielkosc,cena,nazwa,opis)
- {
- this->nazwa1=nazwa1;
- }
- void podsumuj(){
- cout<<"\nNazwa: "<<nazwa1<<"\nrodzaj danych: "<<rodzaj_danych<<"\nWielkosc: "<<wielkosc<<"\nCena: "<<cena<<"\nNazwa: "<<nazwa<<"\nOpis: "<<opis;
- }
- };
- class DVD :public Plyta{
- protected:
- string nazwa1;
- public:
- DVD(string nazwa1,string rodzaj_danych,int wielkosc, int cena, string nazwa, string opis):Plyta(rodzaj_danych,wielkosc,cena,nazwa,opis)
- {
- this->nazwa1=nazwa1;
- }
- void podsumuj(){
- cout<<"\nNazwa: "<<nazwa1<<"\nrodzaj danych: "<<rodzaj_danych<<"\nWielkosc: "<<wielkosc<<"\nCena: "<<cena<<"\nNazwa: "<<nazwa<<"\nOpis: "<<opis;
- }
- };
- class BR :public Plyta{
- protected:
- string nazwa1;
- public:
- BR(string nazwa1,string rodzaj_danych,int wielkosc, int cena, string nazwa, string opis):Plyta(rodzaj_danych,wielkosc,cena,nazwa,opis)
- {
- this->nazwa1=nazwa1;
- }
- void podsumuj(){
- cout<<"\nNazwa: "<<nazwa1<<"\nrodzaj danych: "<<rodzaj_danych<<"\nWielkosc: "<<wielkosc<<"\nCena: "<<cena<<"\nNazwa"<<nazwa<<"\nOpis"<<opis;
- }
- };
- class AD :public Plyta{
- protected:
- string nazwa1;
- public:
- AD(string nazwa1,string rodzaj_danych,int wielkosc, int cena, string nazwa, string opis):Plyta(rodzaj_danych,wielkosc,cena,nazwa,opis)
- {
- this->nazwa1=nazwa1;
- }
- void podsumuj(){
- cout<<"\nNazwa: "<<nazwa1<<"\nrodzaj danych: "<<rodzaj_danych<<"\nWielkosc: "<<wielkosc<<"\nCena: "<<cena<<"\nNazwa"<<nazwa<<"\nOpis"<<opis;
- }
- };
- class Kontener{
- public:
- Towar *towarKontenera;
- int iloscKontenera;
- Kontener(){
- }
- int getIlosc(){
- return iloscKontenera;
- }
- };
- class Magazyn {
- protected:
- vector < Kontener > lista;
- string naz(){
- return "MAGAZYN";
- }
- public:
- void dodajTowar(Towar *towar, int ilosc){
- Kontener kontener;
- kontener.towarKontenera = towar;
- kontener.iloscKontenera = ilosc;
- lista.push_back(kontener);
- }
- /* void usunTowar(Towar *towar,int ilosc){
- int i;
- cout<<"wpisz numer jaki chcesz usunac";
- cin>>i;
- lista.erase(i);
- }*/
- void listuj(){
- cout<<"\n\n~~~~~~~~~~~~~~~~~~~~~~~~~~~MAGAZYN~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n";
- for(int i=0;i<lista.size();i++){
- lista[i].towarKontenera->podsumuj();
- cout<<"\n____________________________________________________________";
- }
- }
- Magazyn operator+ (Towar *t){
- this->dodajTowar(t,1);
- return *this;
- }
- };
- class Koszyk : public Magazyn{
- protected:
- int suma;
- string nazwa;
- public:
- int podsumuj(){
- for(int i=0;i<lista.size();i++){
- setSuma(lista[i].towarKontenera->getCena() * lista[i].getIlosc());
- }
- cout<<"\nSuma cen w koszyku: "<<suma;
- }
- void listuj(){\
- cout<<"\n\n~~~~~~~~~~~~~~~~~~~~~~~~~~~KOSZYK~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n";
- for(int i=0;i<lista.size();i++){
- lista[i].towarKontenera->podsumuj();
- cout<<"\n____________________________________________________________";
- }
- }
- void setSuma(int suma){
- this->suma+=suma;
- }
- Koszyk operator+ (Towar *t){
- this->dodajTowar(t,1);
- return *this;
- }
- };
- ostream operator<<(ostream &stream, Koszyk &k )
- {
- k.listuj();
- return stream;
- }
- ostream operator<<(ostream &stream, Magazyn &m )
- {
- m.listuj();
- return stream;
- }
- int main ()
- {
- Towar * u1 = new Urzadzenie("nazwa prodcenta1", 500, "nazwa1", "lala1");
- Towar * u2 = new Urzadzenie("nazwa prodcenta2", 1000, "nazwa2", "lala2");
- Towar * u3 = new Urzadzenie("nazwa prodcenta3", 1500, "nazwa3", "lala3");
- Towar * s1 = new Smartfon(true,true,true,"d900i","Samsung",72500,"telefon","ladny");
- Towar * s2 = new Dumbfon(false,"dumbForDumb","DumbFoneProducts",10000, "dumbfon", "dla debili") ;
- Towar *t1 = new Tablet(10,"iPad","Apple",255555, "nazwa?", "fajny bo drogi");
- Towar *l1 = new Laptop("Windows 95", "dh674", "Chincyk", 10000, "nazwa?", "fajny bo tani");
- // Magazyn * magazyn = new Magazyn;
- Magazyn magazyn;
- Koszyk koszyk;
- koszyk=koszyk+u1;
- /* magazyn->dodajTowar(u1, 5);
- magazyn->dodajTowar(u2, 6);
- magazyn->dodajTowar(u3, 7);
- magazyn->dodajTowar(s1, 15);
- magazyn->dodajTowar(s2, 10);
- magazyn->dodajTowar(t1, 5);
- magazyn->dodajTowar(l1, 3);*/
- magazyn=magazyn+u1;
- cout<<koszyk;
- /*Koszyk * koszyk = new Koszyk;
- koszyk->dodajTowar(u1, 1);
- koszyk->dodajTowar(u1, 2);*/
- //magazyn->listuj();
- // magazyn.listuj();
- //koszyk.listuj();
- //koszyk.podsumuj();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement