Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include<string.h>
- using namespace std;
- class Transport {
- protected:
- char destinacija[30];
- int cena;
- int km;
- public:
- Transport(char destinacija1[30]="",int cena1=0,int km1=0){
- strcpy(destinacija,destinacija1);
- cena=cena1;
- km=km1;
- }
- Transport( Transport &t){
- strcpy(destinacija,t.destinacija);
- cena=t.cena;
- km=t.km;
- }
- bool operator <(Transport &t){
- if(km<t.km){
- return 1;
- }else{
- return 0;
- }
- }
- virtual int cenaTransport()=0;
- virtual void pecati()=0;
- };
- class AvtomobilTransport:public Transport {
- private:
- int platenSofer;
- public:
- AvtomobilTransport( char destinacija1[30]="",int cena1=0,int km1=0,int platenSofer1=0):Transport(destinacija1,cena1,km1){
- platenSofer=platenSofer1;
- }
- int cenaTransport(){
- if(platenSofer==1){
- return cena+cena*0.2;
- }
- return cena;
- }
- void pecati(){
- cout<<destinacija<<" "<<cenaTransport()<<" "<<km<<endl;
- }
- };
- class KombeTransport :public Transport{
- private:
- int brojPatnici;
- public:
- KombeTransport( char destinacija1[30]="",int cena1=0,int km1=0,int brojPatnici1=0):Transport(destinacija1,cena1,km1){
- brojPatnici=brojPatnici1;
- }
- int cenaTransport(){
- return cena-brojPatnici*200;
- }
- void pecati(){
- cout<<destinacija<<" "<<cenaTransport()<<" "<<km<<endl;
- }
- };
- void pecatiPoloshiPonudi(Transport **ponudi,int n, Transport &ponuda){
- for(int i=0;i<n;i++){
- if(ponuda.cenaTransport()<ponudi[i]->cenaTransport()){
- ponudi[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