#include #include using namespace std; class Vozilo { public: string Vrsta() const { return "Automobil"; } int BrojProzora() const { return 6; } int BrojTockova() const { return 4; } int BrojSedista() const { return 4; } }; class Perionica { public: Perionica() : prvoVozilo(0), prvoSlobodnoMesto(0) {} void DodajVoziloURed( Vozilo v ) { int narednoSlobodnoMesto = (prvoSlobodnoMesto + 1) % max_vozila; if( prvoVozilo == narednoSlobodnoMesto ) cout << "Nema vise mesta, vozilo je otislo u drugu perionicu." << endl; else{ red[prvoSlobodnoMesto] = v; prvoSlobodnoMesto = narednoSlobodnoMesto; } } bool ImaVozilaURedu() const { return prvoVozilo != prvoSlobodnoMesto; } Vozilo IzdvojiPrvoVozilo() { Vozilo v = red[prvoVozilo]; prvoVozilo = (prvoVozilo + 1) % max_vozila; return v; } void OperiPrvoVozilo() { if( ImaVozilaURedu() ){ Vozilo v = IzdvojiPrvoVozilo(); cout << "Na redu je jedan " << v.Vrsta() << "." << endl; cout << "Prvo peremo prozore, ima ih " << v.BrojProzora() << endl; cout << "Zatim prelazimo na tockove, ima ih " << v.BrojTockova() << endl; cout << "Sada su na redu sedista, njih " << v.BrojSedista() << endl; cout << "Gotovo, za sada." << endl; } } private: static const int max_vozila = 300; Vozilo red[max_vozila]; int prvoVozilo; int prvoSlobodnoMesto; }; main(){ Perionica kodZike; kodZike.DodajVoziloURed( Vozilo() ); kodZike.OperiPrvoVozilo(); return 0; }