Untitled

 avatar
unknown
plain_text
a year ago
2.3 kB
5
Indexable
#include <iostream>
#include <vector>
#include <string>

using namespace std;

class Stan {
private:
    string vlasnik;
    int velicina;
    int brojSoba;

public:
    Stan() {
        cout << "Stan constructor called" << endl;
    }

    ~Stan() {
        cout << "Stan destructor called" << endl;
    }
};

class Zgrada {
private:
    string nazivFirme;
    int brojKatova;
    string adresa;
    vector<Stan> stanovi;

public:
    Zgrada(string imeFirme, int brKatova, string adr) {
        if (imeFirme.length() < 5) {
            cout << "Naziv firme mora imati barem 5 znakova." << endl;
            return;
        }
        if (brKatova <= 0) {
            cout << "Broj katova mora biti veći od 0." << endl;
            return;
        }

        this->nazivFirme = imeFirme;
        this->brojKatova = brKatova;
        this->adresa = adr;
    } 

    void dodajStan1(Stan z) {
        stanovi.push_back(z);
    }

    void dodajStan2(Stan& z) {
        stanovi.push_back(z);
    }

    void dodajStan3(Stan* z) {
        stanovi.push_back(*z);
    }

    void ispisSvihStanova() {
        for (const auto& stan : stanovi) {
            // Ovdje implementirajte ispis svih podataka o stanu
        }
    }

    Stan nadjiStan1(string vlasnik) {
        for (auto& stan : stanovi) {
            // Ovdje implementirajte pretragu i vraćanje stana ako je pronađen
        }
        // Ako nije pronađen stan, možete vratiti neki defaultni stan ili baciti iznimku
    }

    Stan* nadjiStan2(string vlasnik) {
        for (auto& stan : stanovi) {
            // Ovdje implementirajte pretragu i vraćanje stana ako je pronađen
        }
        // Ako nije pronađen stan, možete vratiti nullptr ili baciti iznimku
    }

    Stan& nadjiStan3(string vlasnik) {
        for (auto& stan : stanovi) {
            // Ovdje implementirajte pretragu i vraćanje stana ako je pronađen
        }
        // Ako nije pronađen stan, možete baciti iznimku
    }
};

int main() {
    Zgrada zgrada("FirmaXYZ", 5, "Adresa ulice 123");

    Stan stan1;
    zgrada.dodajStan1(stan1);

    Stan stan2;
    zgrada.dodajStan2(stan2);

    Stan stan3;
    zgrada.dodajStan3(&stan3);

    zgrada.ispisSvihStanova();

    return 0;
}
Editor is loading...
Leave a Comment