Advertisement
szmelu

zaj8

Dec 13th, 2017
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.97 KB | None | 0 0
  1. #pragma once
  2. #include <iostream>
  3. #include <cstdlib>
  4. #include <string>
  5. #include <cmath>
  6. #include <ctime>
  7. using namespace std;
  8. class Produkt {
  9. protected:
  10. static int id;
  11. static int licznik;
  12. int iid;
  13. double cena;
  14. string data_waznosci;
  15. public:
  16. virtual ~Produkt();
  17. virtual void wypisz()=0;
  18. static int getLicznik();
  19. virtual string getCecha()=0;
  20. virtual double getCena() = 0;
  21. };
  22.  
  23. ///////////////////////
  24. #include "Produkt.h"
  25. class Jajka
  26. :public Produkt
  27. {
  28. string rozmiar;
  29. public:
  30. Jajka();
  31. ~Jajka();
  32. virtual void wypisz();
  33. virtual string getCecha();
  34. virtual double getCena();
  35. };
  36.  
  37. //////////////////////
  38. #include "Produkt.h"
  39. class Mleko
  40. :public Produkt
  41. {
  42. string pojemnosc;
  43. public:
  44. Mleko();
  45. ~Mleko();
  46. virtual void wypisz();
  47. virtual string getCecha();
  48. virtual double getCena();
  49. };
  50.  
  51. //////////////////////
  52. #include "Mleko.h"
  53. #include "Jajka.h"
  54. template <int ilosc, class typ>
  55. class Koszyk {
  56. static int id;
  57. static int licznik;
  58. int iid;
  59. typ *produkty[ilosc];
  60. int iloscProduktow;
  61. public:
  62. Koszyk();
  63. virtual ~Koszyk();
  64. virtual void wypisz();
  65. static int getLicznik();
  66. virtual double suma();
  67. };
  68. //////////////////////
  69. #include "Produkt.h"
  70. int Produkt::licznik = 0;
  71. int Produkt::id = 0;
  72. Produkt::~Produkt()
  73. {
  74. --licznik;
  75. }
  76. int Produkt::getLicznik()
  77. {
  78. return licznik;
  79. }
  80.  
  81. ////////////////////////
  82. #include "Jajka.h"
  83. Jajka::Jajka()
  84. {
  85. iid = ++id;
  86. licznik++;
  87. cena = 0.5*(rand() % 10 + 1);
  88. data_waznosci = "20.12.2017";
  89. rozmiar = "M";
  90. }
  91. Jajka::~Jajka()
  92. {
  93. --licznik;
  94. }
  95. void Jajka::wypisz()
  96. {
  97. cout << "Produkt: Jajka" << endl;
  98. cout << "id: " << iid << endl;
  99. cout << "Data waznosci: " << data_waznosci << endl;
  100. cout << "Rozmiar: " << rozmiar << endl;
  101. cout << "Cena: " << cena << endl;
  102. }
  103. double Jajka::getCena()
  104. {
  105. return cena;
  106. }
  107. string Jajka::getCecha()
  108. {
  109. return rozmiar;
  110. }
  111. ////////////////////////
  112. #include "Mleko.h"
  113. Mleko::Mleko()
  114. {
  115. iid = ++id;
  116. licznik++;
  117. cena = rand() % 4 + 2;
  118. data_waznosci = "15.12.2017";
  119. pojemnosc = "1L";
  120. }
  121. Mleko::~Mleko()
  122. {
  123. }
  124. void Mleko::wypisz()
  125. {
  126. cout << "Produkt: Mleko" << endl;
  127. cout << "id: " << iid << endl;
  128. cout << "Data waznosci: " << data_waznosci << endl;
  129. cout << "Pojemnosc: " << pojemnosc << endl;
  130. cout << "Cena: " << cena << endl;
  131. }
  132. string Mleko::getCecha()
  133. {
  134. return pojemnosc;
  135. }
  136. double Mleko::getCena()
  137. {
  138. return cena;
  139. }
  140. ////////////////////////
  141. #include "Koszyk.h"
  142. template <int ilosc, class typ> int Koszyk<ilosc,typ>::id = 0;
  143. template <int ilosc, class typ> int Koszyk<ilosc,typ>::licznik = 0;
  144. template <int ilosc, class typ> Koszyk<ilosc, typ>::Koszyk()
  145. {
  146. iid = ++id;
  147. licznik++;
  148. iloscProduktow = ilosc;
  149. for (int i = 0; i < ilosc; i++)
  150. produkty[i] = new typ;
  151. }
  152. template <int ilosc, class typ> Koszyk<ilosc, typ>::~Koszyk()
  153. {
  154. --licznik;
  155. }
  156. template <int ilosc, class typ> void Koszyk<ilosc, typ>::wypisz()
  157. {
  158. cout << "id Koszyka: " << iid << endl;
  159. cout << "#####################" << endl;
  160. for (int i = 0; i < ilosc ; i++)
  161. produkty[i]->wypisz();
  162. cout << "#####################" << endl;
  163. cout << "Suma: " << suma() << endl;
  164. }
  165. template <int ilosc, class typ> int Koszyk<ilosc, typ>::getLicznik()
  166. {
  167. return licznik;
  168. }
  169. template <int ilosc, class typ> double Koszyk<ilosc, typ>::suma()
  170. {
  171. double suma = 0.0;
  172. for (int i = 0; i < iloscProduktow; i++)
  173. suma = suma + produkty[i]->getCena();
  174. return suma;
  175. }
  176. /////////////////////////
  177. #include "Koszyk.cpp"
  178. typedef Koszyk<12, Jajka> tuzin;
  179. typedef Koszyk<4, Mleko> zgrzewka;
  180. int main()
  181. {
  182. srand(time(NULL));
  183. {
  184. Koszyk<10, Jajka> A;
  185. Koszyk<4, Mleko> B;
  186. A.wypisz();
  187. cout << "#####################" << endl;
  188. B.wypisz();
  189. cout << "#####################" << endl;
  190. tuzin C;
  191. zgrzewka D;
  192. C.wypisz();
  193. cout << "#####################" << endl;
  194. D.wypisz();
  195. cout << "#####################" << endl;
  196. cout << "Licznik: " << Produkt::getLicznik() << endl;
  197. }
  198. cout << "Licznik: " << Produkt::getLicznik() << endl;
  199. system("pause");
  200. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement