Advertisement
Guest User

Transport

a guest
Jan 27th, 2020
213
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.29 KB | None | 0 0
  1. #include <iostream>
  2. #include<string.h>
  3. using namespace std;
  4. class Transport {
  5. protected:
  6.     char destinacija[30];
  7.     int cena;
  8.     int km;
  9. public:
  10.     Transport(char destinacija1[30]="",int cena1=0,int km1=0){
  11.      strcpy(destinacija,destinacija1);
  12.      cena=cena1;
  13.      km=km1;
  14.     }
  15.     Transport( Transport &t){
  16.       strcpy(destinacija,t.destinacija);
  17.       cena=t.cena;
  18.       km=t.km;
  19.     }
  20.  
  21.       bool operator <(Transport &t){
  22.       if(km<t.km){
  23.         return 1;
  24.       }else{
  25.       return 0;
  26.       }
  27.     }
  28.       virtual int cenaTransport()=0;
  29.       virtual void pecati()=0;
  30. };
  31.  
  32. class AvtomobilTransport:public Transport {
  33. private:
  34.     int platenSofer;
  35. public:
  36.     AvtomobilTransport( char destinacija1[30]="",int cena1=0,int km1=0,int platenSofer1=0):Transport(destinacija1,cena1,km1){
  37.      platenSofer=platenSofer1;
  38.     }
  39.     int cenaTransport(){
  40.      if(platenSofer==1){
  41.         return cena+cena*0.2;
  42.      }
  43.      return cena;
  44.     }
  45.      void pecati(){
  46.       cout<<destinacija<<" "<<cenaTransport()<<" "<<km<<endl;
  47.       }
  48. };
  49.  
  50.  
  51. class KombeTransport :public Transport{
  52. private:
  53.     int brojPatnici;
  54.     public:
  55.     KombeTransport( char destinacija1[30]="",int cena1=0,int km1=0,int brojPatnici1=0):Transport(destinacija1,cena1,km1){
  56.      brojPatnici=brojPatnici1;
  57.     }
  58.      int cenaTransport(){
  59.      return cena-brojPatnici*200;
  60.     }
  61.     void pecati(){
  62.       cout<<destinacija<<" "<<cenaTransport()<<" "<<km<<endl;
  63.       }
  64. };
  65.  
  66. void pecatiPoloshiPonudi(Transport **ponudi,int n, Transport &ponuda){
  67.  for(int i=0;i<n;i++){
  68.     if(ponuda.cenaTransport()<ponudi[i]->cenaTransport()){
  69.        ponudi[i]->pecati();
  70.     }
  71.  }
  72.  
  73. }
  74. int main(){
  75.  
  76. char destinacija[20];
  77. int tip,cena,rastojanie,lugje;
  78. bool shofer;
  79. int n;
  80. cin>>n;
  81. Transport  **ponudi;
  82. ponudi=new Transport *[n];
  83.  
  84. for (int i=0;i<n;i++){
  85.  
  86.     cin>>tip>>destinacija>>cena>>rastojanie;
  87.     if (tip==1) {
  88.         cin>>shofer;
  89.         ponudi[i]=new AvtomobilTransport(destinacija,cena,rastojanie,shofer);
  90.  
  91.     }
  92.     else {
  93.         cin>>lugje;
  94.         ponudi[i]=new KombeTransport(destinacija,cena,rastojanie,lugje);
  95.     }
  96.  
  97.  
  98. }
  99.  
  100. AvtomobilTransport nov("Ohrid",2000,600,false);
  101. pecatiPoloshiPonudi(ponudi,n,nov);
  102.  
  103. for (int i=0;i<n;i++) delete ponudi[i];
  104. delete [] ponudi;
  105. return 0;
  106. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement