Advertisement
Guest User

Untitled

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