C++ -ban hogyan lehet eltárolni szövegfájlból adatokat, ha nem tudom, hogy hány sor van?
Eddig mindig sikerült beolvasni, de belefutottam egy olyan feladatba, ahol nem tudom, hány sor van.
A txt-ben így vannak az adatok(hónap,nap,vezetéknév,keresztnév)
Pl.:
02 12
Kovács András
Hujber Ferenc
Hajós András
...(szóval itt akárhány soron keresztül lehet név)
03 22
Nagy Feró
Varga Zoltán
05 08
Keszthelyi Gergely
Szóval hogy tudnám letárolni ezeket?
Kicsit erőltetett megoldás, de pl. kirakhatod külön szöveges fájlokba a dátumokhoz tartozó neveket, mindet a neki megfelelő fájlnévbe.
Milyen jellegű műveleteket kell végezni? Azt értem, hogy dátumonként összegyűjteni, de mondjuk rendezni is kell? Biztos, hogy tárolni kell, nem lehet "röptében", beolvasás közben megejteni a műveleteket?
Ezek a feladatok:
Határozza meg és írassa ki, hogy hány sor van a fájlban, ami hiányzást rögzít!
Számolja meg és írassa ki, hogy összesen hány óra igazolt és hány óra igazolatlan hiányzás volt a félév során! Néhány tanár azt feltételezi, hogy a tanulók bizonyos órákról gyakrabban hiányoznak. A következő három feladatban ennek vizsgálatát kell előkészítenie.
Készítsen függvényt hetnapja néven, amely a paraméterként megadott dátumhoz (hónap,
nap) megadja, hogy az a hét melyik napjára esik (hétfő, kedd…). Tudjuk, hogy az adott év nem volt szökőév, továbbá azt is, hogy január elseje hétfőre esett.
Kérjen be egy dátumot (hónap, nap), és a hetnapja függvény felhasználásával írassa ki, hogy az a hét melyik napjára esett!
Kérje be a hét egy tanítási napjának nevét és egy aznapi tanítási óra óraszámát (például: kedd 3)! Írassa ki a képernyőre, hogy a félév során az adott tanítási órára összesen hány hiányzás jutott!
Írassa ki a képernyőre a legtöbb órát hiányzó tanuló nevét! Ha több ilyen tanuló is van, akkor valamennyi neve jelenjen meg szóközzel elválasztva!
Szóval nagyon nehéz. Szerintem csak úgy lehetne megcsinálni, ha eltárolom az adatokat.
Kihagytam egyébként, hogy a nevek mellett van egy hosszú string ami azt rögzíti, hogy hiányzott-e az ember. Pl: XIXXXI
X-igazolatlan óra I-igazolt óra
Csak ezt úgy gondoltam felesleges leírni, ha már le tudom tárolni az adatokat, mert nem azt várom el hogy más megcsinálja helyettem. Csak hát még a beolvasás sem megy, nemhogy ezek a nehéz feladatok.
Ahogy látom, ehhez nem kell tárolni a neveket, szép sorban a soronkénti beolvasáskor megoldható.
Soronként beolvasod a fájlt, és az első karakterből tudható, hogy dátum vagy név. Egy sor beolvasás után pedig változókba gyűjtheted a feladat szerinti darabszámokat, csak meg kell vizsgálni, hogy feltételeknek megfelel-e a sor vagy sem (pl. az illető hiányzott-e, stb.)
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!