Advertisement
Guest User

Untitled

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