sandra0309

Untitled

May 10th, 2015
207
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.73 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. using namespace std;
  4. class Vozilo
  5. {
  6. protected:
  7. float masa;
  8. int sirina;
  9. int visina;
  10. public:
  11. Vozilo(float masa=0.0,int sirina=0,int visina=0)
  12. {
  13. this->masa=masa;
  14. this->sirina=sirina;
  15. this->visina=visina;
  16.  
  17. }
  18. float getMasa()
  19. {
  20. return masa;
  21. }
  22. void setMasa(float masa)
  23. {
  24. this->masa=masa;
  25. }
  26. int getSirina()
  27. {
  28. return sirina;
  29. }
  30. void setSirina(int sirina)
  31. {
  32. this->sirina=sirina;
  33. }
  34. int getVisina()
  35. {
  36. return visina;
  37. }
  38. void setVisina(int visina)
  39. {
  40. this->visina=visina;
  41. }
  42.  
  43. virtual float vratiDnevnaCena()=0;
  44.  
  45. };
  46. class Avtomobil : public Vozilo
  47. {
  48. private:
  49. int br_vrati;
  50. public:
  51. Avtomobil(float masa,int sirina,int visina,int br_vrati=0): Vozilo(masa,sirina,visina)
  52. {
  53. this->br_vrati=br_vrati;
  54. }
  55. int getBrVrati()
  56. {
  57. return br_vrati;
  58. }
  59. void setBrVrati(int br_vrati)
  60. {
  61. this->br_vrati=br_vrati;
  62. }
  63. float vratiDnevnaCena()
  64. {
  65. if(br_vrati<5)
  66. return 100;
  67. else
  68. return 130;
  69.  
  70. }
  71.  
  72. };
  73. class Avtobus : public Vozilo
  74. {
  75. private:
  76. int br_patnici;
  77. public:
  78. Avtobus(float masa,int sirina,int visina,int br_patnici=0): Vozilo(masa,sirina,visina)
  79. {
  80. this->br_patnici=br_patnici;
  81. }
  82. int getBrPatnici()
  83. {
  84. return br_patnici;
  85. }
  86. void setBrPatnici(int br_patnici)
  87. {
  88. this->br_patnici=br_patnici;
  89. }
  90. float vratiDnevnaCena()
  91. {
  92. return br_patnici*5;
  93. }
  94. };
  95. class Kamion : public Vozilo
  96. {
  97. private:
  98. float max_masa;
  99. public:
  100. Kamion(float masa,int sirina,int visina,float max_masa=0)
  101. {
  102. this->max_masa=max_masa;
  103. }
  104. float getMaxMasa()
  105. {
  106. return max_masa;
  107. }
  108. void setMaxMasa(float max_masa)
  109. {
  110. this->max_masa=max_masa;
  111. }
  112. float vratiDnevnaCena()
  113. {
  114. return (masa+max_masa)*0.02;
  115. }
  116. };
  117. class ParkingPlac
  118. {
  119. private:
  120. Vozilo **v;
  121. int n;
  122. public:
  123. ParkingPlac(){
  124. v=NULL;
  125. n=0;}
  126.  
  127. ~ParkingPlac () {}
  128. ParkingPlac &operator+=(const Vozilo &vv)
  129. {
  130. Vozilo **tmp;
  131. tmp=new Vozilo*[n+1];
  132. for(int i=0;i<n;i++)
  133. {
  134. tmp[i]=v[i];
  135. }
  136. delete [] v;
  137. *tmp[n]=vv;
  138. v=tmp;
  139. tmp=NULL;
  140. n++;
  141. return *this;
  142. }
  143. float presmetajVkupnaMasa()
  144. {
  145. float brojac=0.0;
  146. for(int i=0;i<n;i++)
  147. {
  148. brojac+=v[i]->getMasa();
  149. }
  150. return brojac;
  151. }
  152. int brojVozilaPoshirokiOd(int i)
  153. { int maxi=0;
  154. for(int j=0;j<n;j++)
  155. {
  156. if(v[j]->getSirina()>i)
  157. {
  158. maxi++;
  159. }
  160.  
  161. }
  162. return maxi;
  163.  
  164. }
  165. void pecati()
  166. {
  167. int kola=0,av=0,kam=0;
  168. for(int i=0;i<n;i++)
  169. {
  170. if(dynamic_cast<Avtomobil*>(v[i]))
  171. {
  172. kola++;
  173. }
  174. else if(dynamic_cast<Avtobus*>(v[i]))
  175. {
  176. av++;
  177. }
  178. else if(dynamic_cast<Kamion*>(v[i]))
  179. {
  180. kam++;
  181. }
  182. }
  183. cout<<"Brojot na avtomobili e "<<kola<<", brojot na avtobusi e "<<av<<" i brojot na kamioni e "<<kam<<"."<<endl;
  184. }
  185. int pogolemaNosivostOd(Vozilo *vv)
  186. {
  187. int brojac=0;
  188. for(int i=0;i<n;i++)
  189. {
  190. if(dynamic_cast<Kamion*>(v[i])->getMaxMasa()>vv->getMasa())
  191. {
  192. brojac++;
  193. }
  194. }
  195. return brojac;
  196. }
  197. int vratiDnevnaZarabotka()
  198. {
  199. int suma=0;
  200. for(int i=0;i<n;i++)
  201. {
  202. suma+=v[i]->vratiDnevnaCena();
  203. }
  204. return suma;
  205.  
  206.  
  207. }
  208.  
  209. };
  210.  
  211.  
  212.  
  213.  
  214. int main(){
  215. ParkingPlac p;
  216.  
  217. int n;
  218. cin>>n;
  219. int shirina,visina, broj;
  220. float masa,nosivost;
  221. for (int i=0;i<n;i++){
  222. int type;
  223. cin>>type;
  224. if(type==1){
  225. cin>>masa>>shirina>>visina>>broj;
  226. Avtomobil *a=new Avtomobil(masa,shirina,visina,broj);
  227. p+=a;
  228. }
  229. if(type==2){
  230. cin>>masa>>shirina>>visina>>broj;
  231. p+=new Avtobus(masa,shirina,visina,broj);
  232. }
  233. if(type==3){
  234. cin>>masa>>shirina>>visina>>nosivost;
  235. p+=new Kamion(masa,shirina,visina,nosivost);
  236. }
  237. }
  238.  
  239. p.pecati();
  240.  
  241. cout<<"\nZarabotkata e "<<p.vratiDnevnaZarabotka()<<endl;
  242. cout<<"Vkupnata masa e "<<p.presmetajVkupnaMasa()<<endl;
  243. cout<<"Brojot poshiroki od 5 e "<<p.brojVozilaPoshirokiOd(5)<<endl;
  244. Avtomobil a(1200,4,3,5);
  245. cout<<"Brojot na kamioni so nosivost pogolema od avtomobilot e "<<p.pogolemaNosivostOd(a)<<endl;
  246.  
  247.  
  248. }
Advertisement
Add Comment
Please, Sign In to add comment