Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // вашиот код треба да биде тука
- #include <iostream>
- #include <cstring>
- using namespace std;
- class Transport {
- public:
- char ime[15];
- int cena, km;
- public:
- Transport(char *_ime, int c, int k) {
- strcpy(ime, _ime);
- cena = c;
- km = k;
- }
- virtual int cenaTransport() = 0;
- virtual bool operator >(Transport &) = 0;
- char * getIme() {
- return ime;
- }
- int getKm() {
- return km;
- }
- virtual ~Transport(){}
- };
- class AvtomobilTransport :public Transport {
- private:
- bool sofer;
- public:
- AvtomobilTransport(char *_ime, int c, int k, bool s) :Transport(_ime, c, k) {
- sofer = s;
- }
- int cenaTransport(){
- if (sofer) {
- return (cena + (cena*0.2));
- }
- else return cena;
- }
- bool operator > (Transport &a) {
- if (km > a.km) {
- return km;
- }
- else return a.km;
- }
- };
- class KombeTransport :public Transport {
- private:
- int brLuge;
- public:
- KombeTransport(char *_ime, int c, int k, int br) :Transport(_ime, c, k) {
- brLuge = br;
- }
- int cenaTransport() {
- //cena = cena - (brLuge*200);
- //cout<<"Cena= "<<cena << " Broj na Luge= "<<brLuge<<endl;
- return (cena - (brLuge*200));
- }
- bool operator > (Transport &a) {
- if (km > a.km) {
- return km;
- }
- else return a.km;
- }
- };
- void pecatiPoloshiPonudi(Transport **p, int n, AvtomobilTransport t) {
- int j=0;
- Transport **pom;
- pom = new Transport *[n];
- for (int i=0; i < n; i++) {
- if ((p[i])->cenaTransport() > t.cenaTransport()) {
- pom[j] = p[i];
- j++;
- // cout<<"i="<<i<<" "<<endl;
- }
- }
- for (int i = 0; i < j; i++) {
- for (int k = 0; k < j - 1; k++) {
- if (pom[k]->cenaTransport() > pom[k + 1]->cenaTransport()) {
- Transport *pom1 = pom[k + 1];
- pom[k + 1] = pom[k];
- pom[k] = pom1;
- }
- }
- }
- //cout<<"pred for"<<" j="<<j<<endl;
- for (int i = 0; i < j; i++) {
- //cout<<"Vo for"<<endl;
- //pom[i]->cenaTransport();
- cout << (pom[i])->getIme() << " " << (pom[i])->getKm() << " " << (pom[i])->cenaTransport() << endl;
- }
- }
- // вашиот код треба да биде тука
- 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;
- //cout<<"lugje= "<<lugje<<endl;
- 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