sandra0309

Untitled

May 10th, 2015
180
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.69 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. int 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(){v=NULL;
  124. int n=0;}
  125.  
  126. ~ParkingPlac () {}
  127. ParkingPlac &operator +=(const Vozilo &vv)
  128. {
  129. Vozilo **tmp;
  130. tmp=new Vozilo*[n+1];
  131. for(int i=0;i<n;i++)
  132. {
  133. tmp[i]=v[i];
  134. }
  135. delete [] v;
  136. tmp[n]=vv;
  137. v=tmp;
  138. tmp=NULL;
  139. n++;
  140. return *this;
  141. }
  142. float presmetajVkupnaMasa()
  143. {
  144. float brojac=0.0;
  145. for(int i=0;i<n;i++)
  146. {
  147. brojac+=v[i]->getMasa();
  148. }
  149. return brojac;
  150. }
  151. int brojVozilaPoshirokiOd(int i)
  152. { int maxi=0;
  153. for(int j=0;j<n;j++)
  154. {
  155. if(v[j]->getSirina()>i)
  156. {
  157. maxi++;
  158. }
  159.  
  160. }
  161. return maxi;
  162.  
  163. }
  164. void pecati()
  165. {
  166. int kola=0,av=0,kam=0;
  167. for(int i=0;i<n;i++)
  168. {
  169. if(dynamic_cast<Avtomobil*>v[i])
  170. {
  171. kola++;
  172. }
  173. else if(dynamic_cast<Avtobus*>v[i])
  174. {
  175. av++;
  176. }
  177. else if(dynamic_cast<Kamion*>v[i])
  178. {
  179. kam++;
  180. }
  181. }
  182. cout<<"Brojot na avtomobili e "<<kola<<", brojot na avtobusi e "<<av<<" i brojot na kamioni e "<<kam<<"."<<endl;
  183. }
  184. int pogolemaNosivostOd(Vozilo &v)
  185. {
  186. int brojac=0;
  187. for(int i=0;i<n;i++)
  188. {
  189. if(v[i]->getMaxMasa>v.getMasa())
  190. {
  191. brojac++;
  192. }
  193. }
  194. return brojac;
  195. }
  196. int vratiDnevnaZarabotka()
  197. {
  198. int suma=0;
  199. for(int i=0;i<n;i++)
  200. {
  201. suma+=v[i]->vratiDnevnaCena();
  202. }
  203. return suma;
  204.  
  205.  
  206. }
  207.  
  208. };
  209.  
  210.  
  211.  
  212.  
  213. int main(){
  214. ParkingPlac p;
  215.  
  216. int n;
  217. cin>>n;
  218. int shirina,visina, broj;
  219. float masa,nosivost;
  220. for (int i=0;i<n;i++){
  221. int type;
  222. cin>>type;
  223. if(type==1){
  224. cin>>masa>>shirina>>visina>>broj;
  225. Avtomobil *a=new Avtomobil(masa,shirina,visina,broj);
  226. p+=a;
  227. }
  228. if(type==2){
  229. cin>>masa>>shirina>>visina>>broj;
  230. p+=new Avtobus(masa,shirina,visina,broj);
  231. }
  232. if(type==3){
  233. cin>>masa>>shirina>>visina>>nosivost;
  234. p+=new Kamion(masa,shirina,visina,nosivost);
  235. }
  236. }
  237.  
  238. p.pecati();
  239.  
  240. cout<<"\nZarabotkata e "<<p.vratiDnevnaZarabotka()<<endl;
  241. cout<<"Vkupnata masa e "<<p.presmetajVkupnaMasa()<<endl;
  242. cout<<"Brojot poshiroki od 5 e "<<p.brojVozilaPoshirokiOd(5)<<endl;
  243. Avtomobil a(1200,4,3,5);
  244. cout<<"Brojot na kamioni so nosivost pogolema od avtomobilot e "<<p.pogolemaNosivostOd(a)<<endl;
  245.  
  246.  
  247. }
Advertisement
Add Comment
Please, Sign In to add comment