Advertisement
Guest User

Untitled

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