Advertisement
Guest User

Untitled

a guest
Nov 27th, 2014
147
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 10.49 KB | None | 0 0
  1. #include<iostream>
  2. #include<list>
  3. #include<vector>
  4. #include<string>
  5. #include<cstdlib>
  6. #include <cstddef>
  7. #include<sstream>
  8. using namespace std;
  9.  
  10. class Towar {
  11. protected:
  12.  
  13. int cena;
  14.  
  15. string opis;
  16.  
  17. public:
  18. string nazwa;
  19. Towar(){}
  20. Towar(int cena, string nazwa, string opis)
  21. {
  22. this->cena=cena;
  23. this->nazwa=nazwa;
  24. this->opis=opis;
  25. }
  26.  
  27. virtual void podsumuj(){};
  28.  
  29. int getCena(){
  30. return this->cena;
  31. }
  32.  
  33.  
  34. };
  35.  
  36. class Urzadzenie : public Towar {
  37. protected:
  38.  
  39. string nazwa_producenta;
  40.  
  41. public:
  42.  
  43. Urzadzenie(string nazwa_producenta,int cena, string nazwa, string opis): Towar(cena, nazwa, opis)
  44. {
  45.  
  46. this->nazwa_producenta=nazwa_producenta;
  47. }
  48. void podsumuj() {
  49.  
  50. cout<<"\nNazwa producenta: "<<nazwa_producenta<<"\nNazwa: "<<nazwa<<" "<<"\nOpis: "<<opis;
  51. }
  52.  
  53. };
  54. class Nosnik :public Towar{
  55. protected:
  56.  
  57. int wielkosc;
  58.  
  59. public:
  60.  
  61. Nosnik (int wielkosc, int cena, string nazwa, string opis):Towar(cena,nazwa,opis)
  62. {
  63. this->wielkosc=wielkosc;
  64. }
  65.  
  66. void podsumuj(){
  67. cout<<"\nWielkosc: "<<wielkosc<<"\nCena: "<<cena<<"\nNazwa"<<nazwa<<"\nOpis"<<opis;
  68. }
  69.  
  70. };
  71.  
  72. class Telefon :public Urzadzenie{
  73. protected:
  74.  
  75. string model;
  76.  
  77. public:
  78.  
  79. Telefon(string model,string nazwa_producenta,int cena, string nazwa, string opis):Urzadzenie(nazwa_producenta,cena,nazwa,opis)
  80. {
  81. this->model=model;
  82. }
  83.  
  84. void podsumuj(){
  85. cout<<"\nModel: "<<model<<"\nNazwa producenta: "<<nazwa_producenta<<"\nNazwa: "<<nazwa<<" "<<"\nOpis: "<<opis;
  86. }
  87.  
  88. };
  89. class Smartfon: public Telefon {
  90. protected:
  91.  
  92. bool barometr;
  93. bool hd;
  94. bool termometr;
  95.  
  96. public:
  97.  
  98. 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)
  99. {
  100. this->barometr=barometr;
  101. this->hd=hd;
  102. this->termometr=termometr;
  103. }
  104.  
  105. void podsumuj(){
  106. cout<<"\nCzy ma barometr? :"<<barometr<<"\nCzy ma wys. hd? :"<<hd<<"\nCzy ma termometr: "<<termometr<<"\nModel: "<<model<<"\nnazwa producenta: "<<nazwa_producenta;
  107. cout<<"\ncena: "<<cena<<"\nnazwa: "<<nazwa<<"\nopis: "<<opis;
  108. }
  109.  
  110.  
  111. };
  112. class Dumbfon: public Telefon {
  113.  
  114. protected:
  115.  
  116. bool wyswietlacz;
  117.  
  118. public:
  119. Dumbfon(bool wyswietlacz,string model,string nazwa_producenta,int cena, string nazwa, string opis):Telefon(model,nazwa_producenta,cena,nazwa,opis)
  120. {
  121. this->wyswietlacz=wyswietlacz;
  122. }
  123.  
  124. void podsumuj(){
  125. cout<<"\nCzy ma wyswietlacz? :"<<wyswietlacz<<"\nmodel: "<<model<<"\nnazwa producenta: "<<nazwa_producenta<<"\ncena: "<<cena<<"\nnazwa: "<<nazwa<<"\nopis: "<<opis;
  126. }
  127. };
  128.  
  129. class Komputer: public Urzadzenie{
  130. protected:
  131.  
  132. string model;
  133.  
  134. public:
  135.  
  136. Komputer(string model,string nazwa_producenta,int cena, string nazwa, string opis):Urzadzenie(nazwa_producenta,cena,nazwa,opis)
  137. {
  138. this->model=model;
  139. }
  140. void podsumuj(){
  141. cout<<"\nmodel:"<<model<<"\nnazwa producenta: "<<nazwa_producenta<<"\ncena: "<<cena<<"\nnazwa: "<<nazwa<<"\nopis: "<<opis;
  142. }
  143.  
  144. };
  145. class Tablet: public Komputer{
  146. protected:
  147.  
  148. int wyswietlacz;
  149.  
  150. public:
  151.  
  152. Tablet(int wyswietlacz,string model,string nazwa_producenta,int cena, string nazwa, string opis):Komputer(model,nazwa_producenta,cena,nazwa,opis)
  153. {
  154. this->wyswietlacz=wyswietlacz;
  155. }
  156.  
  157. void podsumuj(){
  158. cout<<"\nPrzekatna wyswietlacza: "<<wyswietlacz<<"\nmodel:"<<model<<"\nnazwa producenta: "<<nazwa_producenta<<"\ncena: "<<cena<<"\nnazwa: "<<nazwa<<"\nopis: "<<opis;
  159. }
  160.  
  161. };
  162. class Laptop:public Komputer{
  163. protected:
  164.  
  165. string system;
  166.  
  167. public:
  168.  
  169. Laptop(string system,string model,string nazwa_producenta,int cena, string nazwa, string opis):Komputer(model,nazwa_producenta,cena,nazwa,opis)
  170. {
  171. this->system=system;
  172. }
  173.  
  174. void podsumuj(){
  175. cout<<"\nSystem: "<<system<<"\nmodel:"<<model<<"\nnazwa producenta: "<<nazwa_producenta<<"\ncena: "<<cena<<"\nnazwa: "<<nazwa<<"\nopis: "<<opis;
  176. }
  177. };
  178. class Plyta :public Nosnik{
  179. protected:
  180.  
  181. string rodzaj_danych;
  182.  
  183. public:
  184.  
  185. Plyta(string rodzaj_danych,int wielkosc, int cena, string nazwa, string opis):Nosnik(wielkosc,cena,nazwa,opis)
  186. {
  187. this->rodzaj_danych=rodzaj_danych;
  188. }
  189.  
  190. void podsumuj(){
  191. cout<<"\nrodzaj danych: "<<rodzaj_danych<<"\nWielkosc: "<<wielkosc<<"\nCena: "<<cena<<"\nNazwa: "<<nazwa<<"\nOpis: "<<opis;
  192. }
  193.  
  194. };
  195. class Ksiazka:public Nosnik{
  196. protected:
  197.  
  198. int iloscStron;
  199.  
  200. public:
  201.  
  202. Ksiazka(int iloscStron,int wielkosc, int cena, string nazwa, string opis):Nosnik(wielkosc,cena,nazwa,opis)
  203. {
  204. this->iloscStron=iloscStron;
  205. }
  206. void podsumuj(){
  207. cout<<"ilosc stron: "<<iloscStron<<"\nWielkosc: "<<wielkosc<<"\nCena: "<<cena<<"\nNazwa: "<<nazwa<<"\nOpis: "<<opis;
  208. }
  209. };
  210. class CD :public Plyta{
  211. protected:
  212.  
  213. string nazwa1;
  214.  
  215. public:
  216.  
  217. CD(string nazwa1,string rodzaj_danych,int wielkosc, int cena, string nazwa, string opis):Plyta(rodzaj_danych,wielkosc,cena,nazwa,opis)
  218. {
  219. this->nazwa1=nazwa1;
  220. }
  221.  
  222. void podsumuj(){
  223. cout<<"\nNazwa: "<<nazwa1<<"\nrodzaj danych: "<<rodzaj_danych<<"\nWielkosc: "<<wielkosc<<"\nCena: "<<cena<<"\nNazwa: "<<nazwa<<"\nOpis: "<<opis;
  224. }
  225. };
  226. class DVD :public Plyta{
  227. protected:
  228.  
  229. string nazwa1;
  230. public:
  231.  
  232. DVD(string nazwa1,string rodzaj_danych,int wielkosc, int cena, string nazwa, string opis):Plyta(rodzaj_danych,wielkosc,cena,nazwa,opis)
  233. {
  234. this->nazwa1=nazwa1;
  235. }
  236.  
  237. void podsumuj(){
  238. cout<<"\nNazwa: "<<nazwa1<<"\nrodzaj danych: "<<rodzaj_danych<<"\nWielkosc: "<<wielkosc<<"\nCena: "<<cena<<"\nNazwa: "<<nazwa<<"\nOpis: "<<opis;
  239. }
  240.  
  241. };
  242. class BR :public Plyta{
  243. protected:
  244.  
  245. string nazwa1;
  246.  
  247. public:
  248.  
  249. BR(string nazwa1,string rodzaj_danych,int wielkosc, int cena, string nazwa, string opis):Plyta(rodzaj_danych,wielkosc,cena,nazwa,opis)
  250. {
  251. this->nazwa1=nazwa1;
  252. }
  253.  
  254. void podsumuj(){
  255. cout<<"\nNazwa: "<<nazwa1<<"\nrodzaj danych: "<<rodzaj_danych<<"\nWielkosc: "<<wielkosc<<"\nCena: "<<cena<<"\nNazwa"<<nazwa<<"\nOpis"<<opis;
  256. }
  257.  
  258. };
  259. class AD :public Plyta{
  260. protected:
  261.  
  262. string nazwa1;
  263.  
  264. public:
  265.  
  266. AD(string nazwa1,string rodzaj_danych,int wielkosc, int cena, string nazwa, string opis):Plyta(rodzaj_danych,wielkosc,cena,nazwa,opis)
  267. {
  268. this->nazwa1=nazwa1;
  269. }
  270. void podsumuj(){
  271. cout<<"\nNazwa: "<<nazwa1<<"\nrodzaj danych: "<<rodzaj_danych<<"\nWielkosc: "<<wielkosc<<"\nCena: "<<cena<<"\nNazwa"<<nazwa<<"\nOpis"<<opis;
  272. }
  273.  
  274. };
  275.  
  276. class Kontener{
  277. public:
  278. Towar *towarKontenera;
  279. int iloscKontenera;
  280. Kontener(){
  281. }
  282. int getIlosc(){
  283. return iloscKontenera;
  284. }
  285.  
  286. };
  287.  
  288.  
  289. class Magazyn {
  290. protected:
  291.  
  292. vector < Kontener > lista;
  293. string naz(){
  294. return "MAGAZYN";
  295. }
  296. public:
  297.  
  298. void dodajTowar(Towar *towar, int ilosc){
  299.  
  300. Kontener kontener;
  301.  
  302. kontener.towarKontenera = towar;
  303. kontener.iloscKontenera = ilosc;
  304. lista.push_back(kontener);
  305.  
  306. }
  307. /* void usunTowar(Towar *towar,int ilosc){
  308.  
  309. int i;
  310.  
  311. cout<<"wpisz numer jaki chcesz usunac";
  312. cin>>i;
  313. lista.erase(i);
  314.  
  315.  
  316. }*/
  317.  
  318. void listuj(){
  319.  
  320. cout<<"\n\n~~~~~~~~~~~~~~~~~~~~~~~~~~~MAGAZYN~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n";
  321.  
  322.  
  323. for(int i=0;i<lista.size();i++){
  324.  
  325. lista[i].towarKontenera->podsumuj();
  326. cout<<"\n____________________________________________________________";
  327. }
  328.  
  329.  
  330.  
  331. }
  332. Magazyn operator+ (Towar *t){
  333. this->dodajTowar(t,1);
  334. return *this;
  335. }
  336.  
  337. };
  338.  
  339. class Koszyk : public Magazyn{
  340. protected:
  341. int suma;
  342. string nazwa;
  343. public:
  344.  
  345. int podsumuj(){
  346. for(int i=0;i<lista.size();i++){
  347.  
  348. setSuma(lista[i].towarKontenera->getCena() * lista[i].getIlosc());
  349. }
  350.  
  351. cout<<"\nSuma cen w koszyku: "<<suma;
  352. }
  353.  
  354. void listuj(){\
  355.  
  356. cout<<"\n\n~~~~~~~~~~~~~~~~~~~~~~~~~~~KOSZYK~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n";
  357.  
  358. for(int i=0;i<lista.size();i++){
  359.  
  360. lista[i].towarKontenera->podsumuj();
  361. cout<<"\n____________________________________________________________";
  362. }
  363.  
  364.  
  365.  
  366. }
  367.  
  368. void setSuma(int suma){
  369. this->suma+=suma;
  370. }
  371. Koszyk operator+ (Towar *t){
  372. this->dodajTowar(t,1);
  373. return *this;
  374. }
  375. };
  376.  
  377. ostream operator<<(ostream &stream, Koszyk &k )
  378. {
  379. k.listuj();
  380. return stream;
  381. }
  382. ostream operator<<(ostream &stream, Magazyn &m )
  383. {
  384. m.listuj();
  385. return stream;
  386. }
  387.  
  388. int main ()
  389. {
  390.  
  391.  
  392. Towar * u1 = new Urzadzenie("nazwa prodcenta1", 500, "nazwa1", "lala1");
  393. Towar * u2 = new Urzadzenie("nazwa prodcenta2", 1000, "nazwa2", "lala2");
  394. Towar * u3 = new Urzadzenie("nazwa prodcenta3", 1500, "nazwa3", "lala3");
  395.  
  396. Towar * s1 = new Smartfon(true,true,true,"d900i","Samsung",72500,"telefon","ladny");
  397. Towar * s2 = new Dumbfon(false,"dumbForDumb","DumbFoneProducts",10000, "dumbfon", "dla debili") ;
  398.  
  399. Towar *t1 = new Tablet(10,"iPad","Apple",255555, "nazwa?", "fajny bo drogi");
  400. Towar *l1 = new Laptop("Windows 95", "dh674", "Chincyk", 10000, "nazwa?", "fajny bo tani");
  401.  
  402.  
  403.  
  404.  
  405. // Magazyn * magazyn = new Magazyn;
  406. Magazyn magazyn;
  407. Koszyk koszyk;
  408. koszyk=koszyk+u1;
  409. /* magazyn->dodajTowar(u1, 5);
  410. magazyn->dodajTowar(u2, 6);
  411. magazyn->dodajTowar(u3, 7);
  412.  
  413. magazyn->dodajTowar(s1, 15);
  414. magazyn->dodajTowar(s2, 10);
  415.  
  416. magazyn->dodajTowar(t1, 5);
  417. magazyn->dodajTowar(l1, 3);*/
  418.  
  419. magazyn=magazyn+u1;
  420. cout<<koszyk;
  421.  
  422. /*Koszyk * koszyk = new Koszyk;
  423. koszyk->dodajTowar(u1, 1);
  424. koszyk->dodajTowar(u1, 2);*/
  425.  
  426. //magazyn->listuj();
  427.  
  428. // magazyn.listuj();
  429. //koszyk.listuj();
  430. //koszyk.podsumuj();
  431.  
  432.  
  433. return 0;
  434. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement