CzarnyBarszcz

kolo

Jan 23rd, 2021 (edited)
335
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.93 KB | None | 0 0
  1. //imie nazwisko, nr indeksu, grupa laboratoryjna, data
  2. //Michal Szuleta, 131805,1,23.01.2021
  3. #include <iostream>
  4. #include <string>
  5. using namespace std;
  6.  
  7. //Tutaj umiescic definicje klas potrzebnych do prawidlowego dzialania kodu testujacego
  8. class Paczka{
  9. protected:
  10. string adres;
  11. float wartosc;
  12. public:
  13. Paczka() : adres("Brak"), wartosc(0.0){};
  14. Paczka(string adres,float wartosc)
  15. {
  16. this->adres = adres;
  17. this->wartosc = wartosc;
  18. }
  19. const string& Adres()const{return adres;}
  20. const float& Wartosc()const{return wartosc;}
  21. string& Adres(){return adres;}
  22. float& Wartosc(){return wartosc;}
  23. /*
  24. Paczka operator = (Paczka *p1)
  25. {
  26. adres = p1->adres;
  27. wartosc = p1->wartosc;
  28. }
  29. */
  30. };
  31. class Osoba
  32. {
  33. string imie,nazwisko;
  34. public:
  35. Osoba() : imie("Brak"),nazwisko("Brak"){};
  36. Osoba(string imie,string nazwisko)
  37. {
  38. this->imie = imie;
  39. this->nazwisko = nazwisko;
  40. }
  41. friend ostream& operator<<(ostream& out, const Osoba& o)
  42. {
  43. return out<<o.imie<<"\t"<<o.nazwisko<<"\n";
  44. }
  45. string firstname(Osoba)
  46. {
  47. string name = this->imie;
  48. return name;
  49. }
  50. string lastname(Osoba)
  51. {
  52. string name = this->nazwisko;
  53. return name;
  54. }
  55.  
  56. Osoba operator = (Osoba *o1)
  57. {
  58. imie = o1->imie;
  59. nazwisko = o1->nazwisko;
  60. }
  61.  
  62. Osoba(const Osoba &o1)
  63. {
  64. this->imie = o1.imie;
  65. this->nazwisko =o1.nazwisko;
  66. }
  67. const string& Imie() const{return imie;}
  68. const string& Nazwisko() const{return nazwisko;}
  69. string& Imie(){return imie;}
  70. string& Nazwisko(){return nazwisko;}
  71.  
  72. };
  73.  
  74. bool operator == (Osoba& o1, Osoba& o2)
  75. {
  76. if(o1.firstname(Osoba())==o2.firstname(Osoba())&&o1.lastname(Osoba())==o2.lastname(Osoba()))
  77. {
  78. return true;
  79. }
  80. else
  81. return false;
  82. }
  83.  
  84. class Kurier : public Osoba
  85. {
  86. private:
  87. Paczka* tab;
  88. int n=0;
  89. public:
  90. Kurier(Paczka*a,Paczka*b)
  91. {
  92. n=b-a;
  93. tab= new Paczka[n];
  94. for(int i=0;i<n;i++)
  95. {
  96. tab[i]=a[i];
  97. }
  98. }
  99. float wartosc()
  100. {
  101. float suma=0.0f;
  102. for(int i=0; i<n;i++)
  103. {
  104. suma+=tab[i].Wartosc();
  105. }
  106. return suma;
  107. }
  108. Paczka* Paczki()
  109. {
  110. return tab;
  111. }
  112. int N(){return n;}
  113. Kurier()
  114. {
  115. tab = NULL;
  116. }
  117.  
  118. Kurier(const Kurier *k)
  119. {
  120. tab=k->tab;
  121.  
  122. }
  123. Kurier operator = (const Kurier *k)
  124. {
  125. tab=k->tab;
  126. }
  127.  
  128.  
  129.  
  130. };
  131. Kurier operator + (Kurier& k1, Paczka& p)
  132. {
  133. Paczka *paka = new Paczka[k1.N()+1];
  134. for (int i=0; i<k1.N();i++)
  135. {
  136. paka[i]= k1.Paczki()[i];
  137. }
  138. paka[k1.N()]=p;
  139. Kurier kx(paka,paka+k1.N()+1);
  140.  
  141. return kx;
  142. }
  143.  
  144.  
  145. int main()
  146. {
  147. //Kod testujacy
  148. Paczka p[] = {
  149. Paczka("Dabrowskiego 33", 123.00),
  150. Paczka("NMP 12", 40.00),
  151. Paczka("Armii Krakowej 4", 30.00),
  152. Paczka("Andersa 6", 51.00),
  153. Paczka("Kukuczki 13", 12.00),
  154. Paczka("Skrzyneckiego 5", 40.00),
  155. };
  156.  
  157. Osoba o1("Jan", "Kowalski");
  158. cout << "---- 1 ----" << endl;
  159. cout << o1 << endl;
  160.  
  161. Osoba o2(o1);
  162. cout << "---- 2 ----" << endl;
  163. cout << o2 << endl;
  164.  
  165. cout << "---- 3 ----" << endl;
  166. cout << boolalpha << (o1 == o2) << endl;
  167.  
  168. Osoba o3;
  169. cout << "---- 4 ----" << endl;
  170. cout << o3 << endl;
  171.  
  172. o3 = o2;
  173. cout << "---- 5 ----" << endl;
  174. cout << o3 << endl;
  175.  
  176. Kurier k1(p, p+3);
  177. cout << "---- 6 ----" << endl;
  178. cout << k1.wartosc() << endl;
  179.  
  180. Kurier k2;
  181. cout << "---- 7 ----" << endl;
  182. cout << k2.wartosc() << endl;
  183.  
  184. Kurier k3(k1);
  185. cout << "---- 8 ----" << endl;
  186. cout << k3.wartosc() << endl;
  187.  
  188. k2 = k3;
  189. cout << "---- 9 ----" << endl;
  190. cout << k2.wartosc() << endl;
  191.  
  192. k1 = k1 + p[4];
  193. cout << "---- 10 ----" << endl;
  194. cout << k1.wartosc() << endl;
  195.  
  196. k1 = k1 + p[5];
  197. cout << "---- 11 ----" << endl;
  198. cout << k1.wartosc() << endl;
  199.  
  200. Kurier k4(k1);
  201. cout << "---- 12 ----" << endl;
  202. /*
  203. for(int i=0; i<7; ++i)
  204. cout << k4[i] << endl;
  205. */
  206. return 0;
  207. }
  208.  
  209.  
Add Comment
Please, Sign In to add comment