Autópálya
|
#include <autopalya.h>
Public Member Functions | |
Autopalya () | |
Autopalya (int hossz, int autok) | |
void | ciklus () |
void | hossz_valtozas (int uj_hossz) |
void | autok_valtozas (int uj_autok) |
Private Member Functions | |
int | kovi_auto (int auto_ind) const |
void | autok_visszaallit () const |
Private Attributes | |
Auto_tarolo | sav |
Ez a felhasználó felé is publikus osztály. Ha egy autópályát szeretne modellezni a programjában, akkor egy Autopalya objektumot kell készíteni. A másik két osztályt ez az osztály tartalmazza, és csak a belső működéshez szükségesek. Az osztály feladata a feladatkiírásbanban megadott ciklusok végrehajtása és a másik két osztály kezelése.
Autopalya::Autopalya | ( | ) |
Az Autopalya osztály default konstruktora, ami a tárolót inicializálja (annak a default konstruktorával). Ha ezt a konstruktort használjuk, akkor szükség van a hossz_valtozas() és az autok_valtozas() függvényekre, az autópálya paramétereinek beállításához.
Autopalya::Autopalya | ( | int | hossz, |
int | autok | ||
) |
Az Autopalya osztály kétparaméteres konstruktora. Inicializálja az Auto_tarolo-t, ellenőrzi majd inicializálja a paramétereket.
hossz | Az autópálya hossza cellákban |
autok | Az autók száma az autópályán |
std::invalid_argument | Ha autok < 2 || autok >= hossz. |
void Autopalya::autok_valtozas | ( | int | uj_autok | ) |
Ellenőrzi a paraméterként adott új autók számát, és a tároló megfelelő függvényét meghívja.
uj_autok | Erre az értékre állítja az autók számát. |
std::invalid_argument | Ha nem teljesülnek a feltételek a paraméterre. |
|
private |
A tömb minden autóját visszaállítja abba az állapotba, hogy lehessen rajtuk a ciklust végezni.
void Autopalya::ciklus | ( | ) |
A feladatleírásban megadott 4 pontot hajtja végre a segédosztályokon, majd kirajzolja az autópálya jelenlegi állását. Az autópálya végétől kezdve, visszafele minden autóra megvizsgálja, hogy hány üres cella van előtte a kovi_auto() függvénnyel, meghatározza az autó új sebességét az Auto osztály sebesseg_valtozas() függvényével, végül előremozgatja az autót az új sebességével az Auto_tarolo osztály csere() függvényével. Közben figyel arra, hogy minden autót csak egyszer vizsgáljon.
void Autopalya::hossz_valtozas | ( | int | uj_hossz | ) |
Ellenőrzi a paraméterként adott új hossz értékét, és a tároló megfelelő függvényét meghívja. Végül kirajzolja a jelenlegi állapotot (kivéve, ha először állítjuk be a hosszt).
uj_hossz | Erre az értékre állítja az autópálya hosszát |
std::invalid_argument | Ha nem teljesülnek a feltételek a paraméterre. |
|
private |
Megadja, hogy az adott indexű autó előtt hány üres cella van a következő autóig. Ha a sorban az utolsó autót vizsgáljuk, akkor a következő autó a sorban első autóra vonatkozik.
auto_ind | A vizsgált autó indexe a sav tömbben |
|
private |
Az autópálya egyetlen sávja, ami egy Auto_tarolo objektum, ebben tárolódnak az autók.