Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <cstring>
- using namespace std;
- class Transport{
- protected:
- char destinacija[20];
- int cena;
- int kilometri;
- public:
- virtual int cenaTransport()=0;
- virtual void pecati()=0;
- bool operator<(const Transport &A)
- {
- if(cena<A.cena) return 1;
- return 0;
- }
- };
- class AvtomobilTransport : public Transport{
- protected:
- bool shofer;
- public:
- AvtomobilTransport(char *d,int c,int k,bool s)
- {
- strcpy(destinacija,d);
- cena=c;
- kilometri=k;
- shofer=s;
- }
- int cenaTransport()
- {
- int p=cena;
- if(shofer==1)
- p+=(0.2*cena);
- return p;
- }
- char *getDestinacija()
- {
- return destinacija;
- }
- int getRastojanie()
- {
- return kilometri;
- }
- void pecati()
- {
- cout<<getDestinacija()<<" "<<getRastojanie()<<" "<<cenaTransport()<<endl;
- }
- };
- class KombeTransport : public Transport{
- protected:
- int broj;
- public:
- KombeTransport(char *d,int c,int k, int b)
- {
- strcpy(destinacija,d);
- cena=c;
- kilometri=k;
- broj=b;
- }
- int cenaTransport()
- {
- int p=cena;
- p-=broj*200;
- return p;
- }
- char *getDestinacija()
- {
- return destinacija;
- }
- int getRastojanie()
- {
- return kilometri;
- }
- void pecati()
- {
- cout<<getDestinacija()<<" "<<getRastojanie()<<" "<<cenaTransport()<<endl;
- }
- };
- void pecatiPoloshiPonudi(Transport **a, int n, AvtomobilTransport &m )
- {
- for(int i=0;i<n;i++)
- {
- if(m.cenaTransport()<a[i]->cenaTransport())
- {
- a[i]->pecati();
- }
- }
- }
- int main(){
- char destinacija[20];
- int tip,cena,rastojanie,lugje;
- bool shofer;
- int n;
- cin>>n;
- Transport **ponudi;
- ponudi=new Transport *[n];
- for (int i=0;i<n;i++){
- cin>>tip>>destinacija>>cena>>rastojanie;
- if (tip==1) {
- cin>>shofer;
- ponudi[i]=new AvtomobilTransport(destinacija,cena,rastojanie,shofer);
- }
- else {
- cin>>lugje;
- ponudi[i]=new KombeTransport(destinacija,cena,rastojanie,lugje);
- }
- }
- AvtomobilTransport nov("Ohrid",2000,600,false);
- pecatiPoloshiPonudi(ponudi,n,nov);
- for (int i=0;i<n;i++) delete ponudi[i];
- delete [] ponudi;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement