Download as pdf or txt
Download as pdf or txt
You are on page 1of 1

Programozási paradigmák és technikák (levelező) 2022/2023. I.

félév pót

FONTOS TUDNIVALÓK
Helyezze el nevét, neptun kódját megjegyzésként a forrásállomány(ok) első sorában! A megoldásra 60
perc áll rendelkezésre. A feladat szövegében, ahol meg van adva, a megadott elnevezéseket használja!
Használjon bekezdéses írásmódot!
Ha a projektet a VisualStudio 2019 nem tudja lefordítani szintaktikai hiba miatt, a feladat értékelése 0
pont! A bizonyíthatóan azonos megoldások mindegyike 0 pont.

Feladat:
Írjon programot, amely egy parkoló automata naplójának eredményeit olvassa be egy fájlból és
kiértékeli az adatokat. A napló az alábbi formátumú text fájlban vannak tárolva:

s<sorszám> érkezés_másodperc távozás_másodperc Kategória rendszám


Pl:
s1 1220 2102 D ABV-043
s2 2220 6705 V GLS-031
s3 3230 3992 V AHR-140
s4 4160 5806 V MBS-204
s5 5220 6102 D ABV-043
s6 5610 6723 M MSV-146

A kategória háromféle lehet: Dolgozó, Vendég, Mozgássérült. A fájlban ennek csak az első betűje van
megadva.
Az érkezések szerinti sorrendben vannak a járművek.

Definiáljon egy enum típust a névérben, aminek a neve: PKategória és a fenti háromféle értéke lehet.
(5 pont)
Definiáljon egy interfészt IFizet néven, amely egy metódus deklarációt tartalmaz:
Fizetes(); Egész típust ad vissza, és nem vesz át paramétert. (5 pont)

Definiáljon egy Parkol nevű osztályt, amely megvalósítja az IFizet interfészt és privát tagjai:
erkezes, ami egy egész szám (másodpercben)
tavozas, ami egy egész szám (másodpercben)
rsz, ami egy string
pk, ami egy PKategória típus (5 pont)
Publikus tagjai:
paraméteres konstruktor: A konstruktor paraméterként vegye át egy darab stringben a fájl egy sorát,
benne az összes járműre vonatkozó adattal (pl: „s1 1220 3202 D ABV-043”). A konstruktor a
stringből állapítsa meg az érkezési időt és a távozási időt, a kategóriát és a rendszámot. Írja be
ezeket az adatokat a neki megfelelő tagokba. (5 pont)
Készítsen egy lekérdező (getter) tulajdonságot, melynek neve legyen ParkolasiIdo. Ha negatív, legyen a
parkolási idő 0. (5 pont)
Fizetes nevű metódus: visszatérési értéke a fizetendő összeg. Ezt a következőképpen állapítsa meg:
Vendégek esetén: ha a parkolási idő < 700, akkor 0 a díj, egyébként minden megkezdett óra 300
Ft. Azaz pl. ha 4300 az idő, akkor az 1 óra + 700 mp, tehát 2*300Ft = 600Ft. A dolgozóknak és a
mozgássérülteknek a parkolás ingyenes, azaz a díj 0. (5 pont)
Az Object-től örökölt, felülírt ToString() metódust: amely a példányt a következő formában jelenítse
meg: rendszám erkezes-tavozas * ParkolasiIdo * Fizetes Ft
Pl:
ABV-043 1220-2102 * 882 * 0 Ft # Dolgozó (5 pont)

Tesztelés:
Hozzon létre egy tesztfájlt, melyben 5-6 jármű adatai szerepelnek a megadott minta szerint. Hozzon
létre egy Parkol típusú listát és adja hozzá a listához a fájlból beolvasott adatokból létrehozott Parkol
példányokat. A fájl-megnyitási kivételt kezelje: adjon hibaüzenetet a konzolra és mást ne csináljon. Ha
nincs kivétel, akkor hajtsa végre a többi tesztelő feladatot.
A ToString használatával jelenítse meg a képernyőn a járművek adatait. (10 pont)
Írja ki a legrövidebb ideig parkoló, nem 0 Ft-ot fizető jármű adatait. (5 pont)

You might also like