Autópálya
Public Member Functions | Private Attributes | List of all members
Auto_tarolo Class Reference

#include <auto_tarolo.h>

Public Member Functions

 Auto_tarolo ()
 
Autooperator[] (int i) const
 
 ~Auto_tarolo ()
 
int get_hossz () const
 
int get_autok () const
 
void csere (int regi_ind, int uj_ind)
 
void hossz_no (int uj_cellak)
 
void hossz_csokken (int torlendo_cellak)
 
void autok_no (int uj_autok)
 
void autok_csokken (int torlendo_autok)
 
void rajzol () const
 

Private Attributes

int hossz
 
int autok_szama
 
Auto ** autok
 

Detailed Description

Auto objektumokat tároló osztály.

Constructor & Destructor Documentation

◆ Auto_tarolo()

Auto_tarolo::Auto_tarolo ( )
inline

Az Auto_tarolo osztály konstruktora, ami az autópálya hosszát és az autók számát nullára állítja, az autókat tároló tömböt pedig NULL-ra. A szimuláció elkezdéséhez be kell állítani a két paraméter értékét a hossz_no() és az autok_no() függvényekkel.

◆ ~Auto_tarolo()

Auto_tarolo::~Auto_tarolo ( )

Destruktor, ami felszabadítja a rendszer összes autóját, majd magát a tömböt is

Member Function Documentation

◆ autok_csokken()

void Auto_tarolo::autok_csokken ( int  torlendo_autok)

A paraméterben kapott értékkel lecsökkenti a rendszerben lévő autók számát. Véletlenszerűen választja ki a törlendő autókat. A paraméter értékét nem ellenőrzi, az a hívó dolga.

Parameters
torlendo_autokEnnyi autót töröl a rendszerből.

◆ autok_no()

void Auto_tarolo::autok_no ( int  uj_autok)

A paraméterben kapott értékkel megnöveli a rendszerben lévő autók számát. Ha még nincs autó a rendszerben, vagyis a szimuláció még nem kezdődött el, akkor álló helyzetből indítja az új autókat. Az új autókat véletlenszerűen szórja el a már létező autók között. Ezzel a függvénnyel kell az autók számát inicializálni, hiszen a konstruktor azt 0-ra állítja.

Parameters
uj_autokEnnyi autót vesz fel a rendszerbe

◆ csere()

void Auto_tarolo::csere ( int  regi_ind,
int  uj_ind 
)

Megcseréli a két index által mutatott címet.

Parameters
regi_indElső index, itt Auto*-nek kell szerepelnie
uj_indMásodik index, itt NULL-nak kell szerepelnie
Exceptions
std::invalid_argumentHa valamelyik index nem jó adatra mutat

◆ get_autok()

int Auto_tarolo::get_autok ( ) const
inline

Az Auto_tarolo autok_szama tagváltozójának getter függvénye.

Returns
A jelenleg tárolt autók száma

◆ get_hossz()

int Auto_tarolo::get_hossz ( ) const
inline

Az Auto_tarolo hossz tagváltozójának getter függvénye.

Returns
Az autópálya jelenlegi hossza.

◆ hossz_csokken()

void Auto_tarolo::hossz_csokken ( int  torlendo_cellak)

A paraméterben kapott értékkel lecsökkenti a tároló hosszát, azaz az utolsó torlendo_cellak cellát törli a rendszerből. Ha ezeken a mezőkön voltak autók, azokat is törli, majd meghívja az autok_no() függvényt a törölt autók számával, hogy visszaállítsa az autók számát az eredetire. A paraméter értékét nem ellenőrzi, az a hívó dolga.

Parameters
torlendo_cellakHány cellát szeretnénk törölni.

◆ hossz_no()

void Auto_tarolo::hossz_no ( int  uj_cellak)

Megnöveli a tároló, és így az autópálya hosszát a paraméterben kapott értékkel. Ehhez új tömböt foglal, ahol az új cellákat mind NULL-ra állítja, majd a régi tömböt törli. Ezzel a függvénnyel kell az autópálya hosszát inicializálni, hiszen a konstruktor azt 0-ra állítja.

Parameters
uj_cellakEnnyi cellával növeljük meg a tömböt

◆ operator[]()

Auto * Auto_tarolo::operator[] ( int  i) const

Indexelő operátor

Parameters
iindex
Returns
A tömb i-edik Auto*-e

◆ rajzol()

void Auto_tarolo::rajzol ( ) const

Kirajzolja a képernyőre az autópálya jelen állását. Elválasztásként az autópálya teljes hosszában ír egy sort "-" karakterből, majd minden cellába " "-t ír, ha üres a cella, "o"-t egyébként. Végül egy újabb "-" sorral zárja.

Member Data Documentation

◆ autok

Auto** Auto_tarolo::autok
private

Az Auto*-eket tartalmazó tömb

◆ autok_szama

int Auto_tarolo::autok_szama
private

Autók száma az autópályán, azaz hány nem üres cella van a rendszerben

◆ hossz

int Auto_tarolo::hossz
private

A tömb, azaz az autópálya hossza (cellákban)


The documentation for this class was generated from the following files: