Tartalom


Felhasználói dokumentáció


A program egy lift műkődését szimulálja. A program indítása után a felhasználónak a következő adatokat kell megadni: Ezután elindul a szimuláció. Ennek során a program véletlenszerű (1 és 5 mp közé eső)időközönként generál egy új utast véletlenszerű kiindulási helyzettel (emeletszámmal) és céllal. Természetesen az utas célja és kiindulási helyzete nem egyezhet meg. Az új utas jelez a liftnek, amely teljesíti ezeket a hívásokat egy adott algoritmus szerint.
A program futása során a következő információk jelennek meg a képernyőn: Ha a megadott paraméternek megfelelő számú utas létrejött és a lift mindegyiket elszállította a kívánt helyre (azaz a maradék utasok száma 0 lesz), a program befejezi műkődését.

Fejlesztői dokumentáció


A program a következő (osztály)mintákból:
utas
Az utast megvalósító minta.
Attribútumai:
emelet
Az emeletet valósítja meg.
Attribútumai: Műveletei:
lift
A liftet valósítja meg. A minta addig hívogatja a halad műveletét, amíg el nem "fogynak" az utasok.
Attribútumai: Műveletei:
írányító
A lift vezérlőjét megvalósító minta. Tárolja a hívásokat és megadja a következő célját a liftnek, ha az lekéri.
Attribútumai: Műveletei:
utasgeneráló
Véletlenszerű hellyel és céllal generál új utasokat és azokat beteszi az helyzetnek megfelelő azonosítójú emeletre.

A program globális változói:
emeletszám
emeletek száma
utasperemelet
legfeljebb ennyi utas lehet egyidőben egy emeleten
maxutas
a szimuláció alatt legfeljebb ennyi utas fog utazni a liften
maradekutas
ennyi utast kell még a liftnek elszállítani
liftido
egy emelet megtételéhez szükséges idő

A program műkődése: előszőr bekéri a felhasználótól az emeletszam, maxutas és liftido értékeit. Ezután inicializálja a maradék változókat is, létrehozza az emeleteket. Végül párhuzamosan elindítja az utasgeneralo és lift szálakat.

Forráskód

A program forráskódja: lift.bet

Zsolt Ferenc (dragon@inf.elte.hu)
2000.07.03.