Beléptető rendszer (2024. május)

Kategória: python - emelt szint

Feladat leírása

Beléptető rendszer (2024. május) illusztráció

Egy iskolában minden diáknak van egy tanulói kártyája, amelyet nemcsak a be- és kilépéskor
használnak, hanem ez helyettesíti a könyvtári olvasójegyet és a menzán az ebédjegyet is.
A rendszer adatbázisából statisztikai elemzés céljából lekérték az október 12-én rögzített
adatokat. A bedat.txt állomány a tanuló kódját, az esemény időpontját, valamint az esemény
kódját tartalmazza szóközzel elválasztva. Az esemény kódja a következő lehet: 

1 belépés a főkapun át
2 kilépés a főkapun át
3 az ebéd kiadása a menzán
4 kölcsönzés a könyvtárban

Például: 


KYPG 14:04 1

CIVX 14:04 2
XHTR 14:04 2
RYUI 14:04 3
SBUG 14:04 4
… 

A fenti példában a 14:04-kor a KYPG kódú tanuló belépett az iskolába, ugyanabban
a percben a CIVX és az XHTR kódú tanuló éppen távozott, az RYUI kódú tanuló megkapta a
menzán az ebédet, míg az SBUG kódú tanuló könyvet kölcsönzött a könyvtárban. A tanulók
kódja négybetűs, az időpontok formátuma óó:pp. 

Az iskolában a tanulók 07:00-tól 19:00-ig tartózkodhatnak. A tanulók napközben a főkapun
át többször be- vagy kiléphetnek, a könyvtárban többször kölcsönözhetnek, de a menzán
legfeljebb egyszer ebédelhetnek. A feladatok megoldása során kihasználhatja, hogy az adatok
időrendi sorrendben szerepelnek abban az esetben is, amikor azokat egy időponttal rögzítették. 

A fájlban az első esemény egy belépés, az utolsó egy kilépés a főkapun. 

Készítsen programot, amely az állomány adatait felhasználva az alábbi kérdésekre válaszol!
A program forráskódját mentse belepteto néven! A program megírásakor a felhasználó által
megadott adatok helyességét, érvényességét nem kell ellenőriznie, és feltételezheti, hogy
a rendelkezésre álló adatok a leírtaknak megfelelnek. 

A képernyőre írást igénylő részfeladatok esetén – a mintához tartalmában hasonlóan – írja
ki a képernyőre a feladat sorszámát (például: 2. feladat), és utaljon a kiírt tartalomra is!
Ha a felhasználótól kér be adatot, jelenítse meg a képernyőn, hogy milyen értéket vár! Mindkét
esetben az ékezetmentes kiírás is elfogadott.


Részfeladatok

  1. 1. Olvassa be a bedat.txt állomány tartalmát, tárolja el az abban szereplő adatokat, és annak felhasználásával oldja meg a következő feladatokat! Feltételezheti, hogy az állomány legfeljebb 2000 adatsort tartalmaz

  2. 2. Határozza meg, hogy mikor lépett be az épületbe az első tanuló, és mikor távozott az utolsó! Az időpontokat a mintához hasonlóan jelenítse meg a képernyőn! 

  3. 3. Készítsen listát a kesok.txt nevű állományba, amely megadja, hogy mely tanulók léptek be a nagykapun 07:50 után, de legkésőbb 08:15-kor! A fájlban a belépések a mintának megfelelően külön sorban szerepeljenek, az időpontot egy szóköz válassza el a tanuló azonosítójától! Ha egy tanuló ezalatt többször is belépett, minden belépése jelenjen meg a fájlban! 

  4. 4. Határozza meg, hány tanuló ebédelt aznap a menzán! Írassa ki az eredményt a képernyőre a mintának megfelelően! 

  5. 5. Szeretnénk tudni, hogy a könyvtári kölcsönzés vagy a menza a népszerűbb-e ezen a napon. 

    • a) Határozza meg, hány tanuló kölcsönzött aznap a könyvtárban! Ha egy tanuló többször is kölcsönzött, akkor azt csak egyszer vegye figyelembe! Írassa ki az eredményt a képernyőre a mintának megfelelően! 

    • b) A könyvtárosok szerint több tanuló kölcsönöz egy nap a könyvtárban, mint ahányan a menzán ebédelnek. Így volt-e ez ezen a napon is? A választ („Többen voltak, mint a menzán.” vagy „Nem voltak többen, mint a menzán.”) a mintának megfelelő formában írassa ki a képernyőre! 

  6. 6. A portás reggel elfelejtette a hátsó kaput bezárni, ezért a 10:45-kor kezdődő szünetben néhány tanuló kiment a hátsó kijáraton át a szemközti pékségbe tízórait venni. A portás csak 10:50-kor zárta be a hátsó kaput, így 10:50 után a korábban a hátsó kapun át távozott tanulóknak a főbejáraton át kellett visszajönniük. Írassa ki a képernyőre egy-egy szóközzel elválasztva ezeknek a tanulóknak az azonosítóját! (A szünet 11:00-ig tartott, és feltételezheti, hogy azt megelőzően valamennyi érintett tanuló visszaért.) Vegye figyelembe, hogy a tanulók egy része aznap csak 11:00-ra jött iskolába, illetve szabályosan lépett ki! 

  7. 7. Kérje be egy tanuló azonosítóját, és írassa ki a minta szerinti formátumban, hogy mennyi idő telt el az iskolába való első belépése és utolsó távozása között! Feltételezheti, hogy 19:00-ig minden tanuló elhagyta az iskolát. Ha aznap az adott azonosítójú tanuló nem járt az iskolában, akkor írassa ki az Ilyen azonosítójú tanuló aznap nem volt az iskolában. üzenetet!  

  8. 8.


Mintaképek


Forrásfájlok