Advertisement
frusso1337

auto

Apr 2nd, 2018
117
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.25 KB | None | 0 0
  1. #include<iostream>
  2. #include<cstring>
  3. using namespace std;
  4. class Automobile
  5. {
  6. private:
  7. char *marka;
  8. int *registracija;
  9. int maks_brzina;
  10. public:
  11. Automobile(const char *m="", const int *reg=0, int maksb=0)
  12. {
  13. marka = new char[strlen(m)+1];
  14. strcpy(marka,m);
  15. registracija = new int[5];
  16. if(reg==0)
  17. {
  18. for(int i=0;i<5;i++)
  19. {
  20. registracija[i]=0;
  21. }
  22. }
  23. else
  24. {
  25. for(int i=0;i<5;i++)
  26. {
  27. registracija[i]=reg[i];
  28. }
  29. }
  30. maks_brzina=maksb;
  31. }
  32. Automobile(const Automobile &a)
  33. {
  34. marka = new char[strlen(a.marka)+1];
  35. strcpy(marka,a.marka);
  36. registracija = new int[5];
  37. for(int i=0;i<5;i++)
  38. {
  39. registracija[i]=a.registracija[i];
  40. }
  41. maks_brzina=a.maks_brzina;
  42. }
  43. Automobile &operator =(const Automobile &a)
  44. {
  45. if(this==&a)return *this;
  46. delete [] marka;
  47. marka = new char[strlen(a.marka)+1];
  48. strcpy(marka,a.marka);
  49. registracija = new int[5];
  50. for(int i=0;i<5;i++)
  51. {
  52. registracija[i]=a.registracija[i];
  53. }
  54. maks_brzina=a.maks_brzina;
  55. return *this;
  56. }
  57. ~Automobile(){delete [] marka; delete [] registracija;}
  58. bool operator ==(const Automobile &a)
  59. {
  60. bool flag=true;
  61. for(int i=0;i<5;i++)
  62. {
  63. if(registracija[i]!=a.registracija[i])
  64. flag=false;
  65. }
  66. return flag;
  67. }
  68. friend ostream &operator <<(ostream &out, const Automobile &a)
  69. {
  70. out<<"Marka\t";
  71. out<<a.marka<<""<<"\tRegistracija[ ";
  72. for(int i=0;i<5;i++)
  73. {
  74. out<<a.registracija[i]<<" ";
  75. }
  76. out<<"]"<<endl;
  77. }
  78. int get_brzina()
  79. {
  80. return maks_brzina;
  81. }
  82. };
  83. class RentACar
  84. {
  85. private:
  86. char ime[100];
  87. Automobile *av;
  88. int broj_alto;
  89. public:
  90. RentACar(const char *im="", const Automobile *avt=0, int br_al=0)
  91. {
  92. av = new Automobile[br_al];
  93. strcpy(ime,im);
  94. for(int i=0;i<br_al;i++)
  95. {
  96. av[i] = avt[i];
  97. }
  98. broj_alto=br_al;
  99. }
  100. RentACar (const RentACar &rc)
  101. {
  102. strcpy(ime,rc.ime);
  103. av = new Automobile[rc.broj_alto];
  104. for(int i=0;i<rc.broj_alto;i++)
  105. {
  106. av[i] = rc.av[i];
  107. }
  108. broj_alto=rc.broj_alto;
  109. }
  110. RentACar &operator +=(const Automobile &a)
  111. {
  112. Automobile *temp;
  113. temp = new Automobile [broj_alto+1];
  114. for(int i=0;i<broj_alto;i++)
  115. {
  116. temp[i] = av[i];
  117. }
  118. temp[broj_alto]=a;
  119. delete [] av;
  120. av=temp;
  121. broj_alto++;
  122. return *this;
  123. }
  124. RentACar &operator -=(const Automobile &a)
  125. {
  126. Automobile *temp;
  127. int brojac=0;
  128. for(int i=0;i<broj_alto;i++)
  129. {
  130. if(av[i]==a)brojac++;
  131. }
  132. temp = new Automobile[broj_alto-brojac];
  133. int b=0;
  134. for(int i=0;i<broj_alto;i++)
  135. {
  136. if(!(av[i]==a))
  137. {
  138. temp[b]=av[i];
  139. b++;
  140. }
  141. }
  142. delete [] av;
  143. av=temp;
  144. broj_alto=broj_alto-brojac;
  145. return *this;
  146. }
  147. void pecatiNadBrzina(int maks)
  148. {
  149. for(int i=0;i<broj_alto;i++)
  150. {
  151. if(av[i].get_brzina()>maks)
  152. cout<<av[i];
  153. }
  154. }
  155. };
  156. int main()
  157. {
  158. RentACar agencija("FINKI-Car");
  159. int n;
  160. cin>>n;
  161. cout<<"FINKI-Car"<<endl;
  162. for (int i=0;i<n;i++)
  163. {
  164. char marka[100];
  165. int regisracija[5];
  166. int maximumBrzina;
  167. cin>>marka;
  168. for (int i=0;i<5;i++)
  169. cin>>regisracija[i];
  170. cin>>maximumBrzina;
  171. Automobile nov=Automobile(marka,regisracija,maximumBrzina);
  172. //dodavanje na avtomobil
  173. agencija+=nov;
  174. }
  175. //se cita grehsniot avtmobil, za koj shto avtmobilot so ista registracija treba da se izbrishe
  176. char marka[100];
  177. int regisracija[5];
  178. int maximumBrzina;
  179. cin>>marka;
  180. for (int i=0;i<5;i++)
  181. cin>>regisracija[i];
  182. cin>>maximumBrzina;
  183. Automobile greshka=Automobile(marka,regisracija,maximumBrzina);
  184. //brishenje na avtomobil
  185. agencija-=greshka;
  186. agencija.pecatiNadBrzina(150);
  187. return 0;
  188. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement