Advertisement
Guest User

Untitled

a guest
Apr 28th, 2015
181
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.57 KB | None | 0 0
  1. #include<iostream>
  2. using namespace std;
  3. //вашиот код треба да биде тука
  4. class Vozilo{
  5. protected:
  6. double masa; int sirina,visina;
  7. public:
  8. Vozilo(){}
  9. Vozilo(double m,int s,int v) {
  10. masa=m; sirina=s; visina=v; }
  11. double get_masa(){return masa;}
  12. int get_sirina(){ return sirina;}
  13. int get_visina(){ return visina;}
  14. void set_masa(double m){ masa=m;}
  15. void set_sirina(int s){ sirina=s;}
  16. void set_visina(int v){ visina=v;}
  17. virtual int vratiDnevnaCena()=0;};
  18. class Avtobus:public Vozilo{
  19. protected:
  20. double broj_patnici;
  21. public:
  22. Avtobus(){}
  23. Avtobus(double m,int s,int v,double b)
  24. :Vozilo(m,s,v){ broj_patnici=b;}
  25. double get_broj_patnici(){ return broj_patnici;}
  26. int vratiDnevnaCena(){return broj_patnici*5; }};
  27. class Avtomobil:public Vozilo{
  28. protected:
  29. int broj_vrati;
  30. public:
  31. Avtomobil(){}
  32. Avtomobil(double m,int s,int v,int b)
  33. :Vozilo(m,s,v){ broj_vrati=b;}
  34. int get_broj_vrati(){ return broj_vrati;}
  35. int vratiDnevnaCena() {
  36. if(broj_vrati<5)return 100;return 130;}};
  37. class Kamion: public Vozilo{
  38. protected:
  39. double maks_tezina;
  40. public:
  41. Kamion(){}
  42. Kamion(double m,int s,int v,double mt)
  43. :Vozilo(m,s,v){ maks_tezina=mt;}
  44. double get_maks_tezina(){ return maks_tezina;}
  45. int vratiDnevnaCena(){
  46. return (masa+maks_tezina)*0.02;}};
  47. class ParkingPlac{
  48. private:
  49. Vozilo **v;int broj;
  50. public:
  51. ParkingPlac(){//v=NULL;
  52. v=new Vozilo*[100];broj=0;}
  53. ParkingPlac(Vozilo **vv, int b){
  54. broj=b;v=new Vozilo*[broj];
  55. for(int i=0;i<broj;i++)v[i]=vv[i];}
  56. ~ParkingPlac(){
  57. for(int i=0;i<broj;i++)delete v[i];}
  58. ParkingPlac &operator+=(Vozilo *v1){
  59. v[broj++]=v1;return *this;}
  60. float presmetajVkupnaMasa(){
  61. float n=0.0;for(int i=0;i<broj;i++)
  62. n+=v[i]->get_masa();return n;}
  63. float brojVozilaPoshirokiOd(int n){
  64. int c=0;for(int i=0;i<broj;i++)
  65. if(v[i]->get_sirina()>n)c++;return c;}
  66. int vratiDnevnaZarabotka(){
  67. int c=0;for(int i=0;i<broj;i++)
  68. c+=v[i]->vratiDnevnaCena();
  69. return c;}
  70. void pecati(){
  71. int x=0,y=0,z=0;for(int i=0;i<broj;i++){
  72. Avtomobil *a=dynamic_cast<Avtomobil*>(v[i]);
  73. if(a!=0)x++;
  74. Avtobus *s=dynamic_cast<Avtobus*>(v[i]);
  75. if(s!=0)y++;
  76. Kamion *b=dynamic_cast<Kamion*>(v[i]);
  77. if(b!=0)z++;}
  78. cout << "Brojot na avtomobili e "<< x <<", brojot na avtobusi e "<<y;
  79. cout << " i brojot na kamioni e "<<z<<"."<<endl;}
  80. int pogolemaNosivostOd(Vozilo& m){
  81. int c=0;for(int i=0;i<broj;i++){
  82. Kamion *b=dynamic_cast<Kamion*>(v[i]);
  83. if(b!=0)if(m.get_masa()<v[i]->get_masa())c++;}
  84. return c;}};
  85.  
  86. int main(){
  87. ParkingPlac p;
  88.  
  89. int n;
  90. cin>>n;
  91. int shirina,visina, broj;
  92. float masa,nosivost;
  93. for (int i=0;i<n;i++){
  94. int type;
  95. cin>>type;
  96. if(type==1){
  97. cin>>masa>>shirina>>visina>>broj;
  98. Avtomobil *a=new Avtomobil(masa,shirina,visina,broj);
  99. p+=a;
  100. }
  101. if(type==2){
  102. cin>>masa>>shirina>>visina>>broj;
  103. p+=new Avtobus(masa,shirina,visina,broj);
  104. }
  105. if(type==3){
  106. cin>>masa>>shirina>>visina>>nosivost;
  107. p+=new Kamion(masa,shirina,visina,nosivost);
  108. }
  109. }
  110.  
  111. p.pecati();
  112.  
  113. cout<<"\nZarabotkata e "<<p.vratiDnevnaZarabotka()<<endl;
  114. cout<<"Vkupnata masa e "<<p.presmetajVkupnaMasa()<<endl;
  115. cout<<"Brojot poshiroki od 5 e "<<p.brojVozilaPoshirokiOd(5)<<endl;
  116. Avtomobil a(1200,4,3,5);
  117. cout<<"Brojot na kamioni so nosivost pogolema od avtomobilot e "<<p.pogolemaNosivostOd(a)<<endl;
  118.  
  119.  
  120. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement