A kerekdombi Pitypang wellness hotel nem régen nyitotta meg kapuit. A szállodában összesen 27 szoba van. A szobák egységesen kétágyasak, de minden szobában egy pótágy elhelyezésére is van lehetőség. Árképzés szempontjából három különböző időszakot határolt el a szálloda vezetősége: tavaszi, nyári és őszi szakaszt. Ennek megfelelően az árakat az alábbi táblázat tartalmazza.
Tavasz
01. 01. - 04. 30. |
Nyár
05. 01. - 08. 31. |
Ősz
09. 01. - 12. 31. |
9 000 Ft |
10 000 Ft |
8 000 Ft |
A feltüntetett értékek egy szoba árát mutatják egy éjszakára. Ha csak egy fő száll meg, akkor is ki kell fizetni a teljes szobaárat. Egy adott foglalás besorolása az érkezés napjától függ.
A pótágy díja 2 000 Ft éjszakánként. Amennyiben a vendég igényel reggelit, azért a fenti áron felül személyenként és naponként 1 100 Ft-ot kell fizetni. Ha például a két felnőttből és egy gyermekből álló Tóth család április 30. és május 4. között 4 éjszakát tölt a hotelben és kér reggelit, akkor ők az alábbi összegeket fizetik:
- 4 × 9 000 Ft-ot a szobáért,
- 4 × 2 000 Ft-ot a pótágyért,
- 4 × 3 × 1 100 Ft-ot a reggeliért.
A végső számla így 36 000 Ft + 8 000 Ft + 13 200 Ft = 57 200 Ft lesz. A szálloda eddigi foglalásait a
pitypang.txt fájl tartalmazza. Az első sor a fájlban tárolt foglalások számát mutatja. A további sorokban szóközzel elválasztva soronként az alábbi adatok találhatók:
- a foglalás sorszáma,
- a szoba száma (1–27),
- az érkezés napjának sorszáma,
- a távozás napjának sorszáma,
- a vendégek száma,
- kérnek-e reggelit (1=igen vagy 0=nem),
- a foglalást végző vendég nevéből képzett azonosítója (maximum 25 karakter).
A napok sorszámozása január 1-jétől (1-es sorszám) kezdődik. Április 30-hoz például a 31 + 28 + 31 + 30 = 120-as sorszám tartozik.
A Tóth család foglalása ebben a szerkezetben a következőképpen néz ki:
123 21 120 124 3 1 Toth_Balint
A fájl egy éven belül tartalmaz foglalásokat. Az adatok az érkezés napja szerint növekvő sorrendben vannak rendezve a fájlban.
Tájékoztatásul a
honapok.txt fájl a hónapok neveit, a rá következő sorban az adott hónap napjainak számát, majd az ezt követő sorban pedig a hónap első napjának sorszámát tartalmazza. Az állományt forrásfájlként is felhasználhatja. A fenti táblázatnak megfelelő
nyári időszak a 121. napon, míg az őszi a 244. napon kezdődik.
Készítsen programot
szalloda
néven, amely az alábbi kérdésekre válaszol!
A képernyőre írást igénylő részfeladatok eredményének megjelenítése előtt írja a képernyőre a feladat sorszámát (például
3. feladat:)!
Ahol a felhasználótól kér be adatot, ott írja a képernyőre, hogy milyen adatot vár!
Kérdések
- Olvassa be az pitypang.txt állományban található maximum 1 000 foglalás adatát, s annak felhasználásával oldja meg a következő feladatokat! Ha az állományt nem tudja beolvasni, akkor a benne található adatok közül az 1-5, 326-330 és 695-699 foglalási sorszámú sorok adatait jegyezze be a programba, s úgy oldja meg a feladatokat!
- Jelenítse meg a képernyőn a leghosszabb szállodai tartózkodást! Csak az időtartamot vegye figyelembe, azaz nem számít, hogy hány vendég lakott az adott szobában! Az esetlegesen azonos hosszúságú tartózkodások közül bármelyiket kiválaszthatja. Az eredményt ebben a formában írja a képernyőre:
Név (érkezési_nap_sorszáma) – eltöltött_éjszakák_száma
például: Nagy_Bertalan (105) – 16
- Számítsa ki, hogy az egyes foglalások után mennyit kell fizetnie az egyes vendégeknek! A foglalás sorszámát és a kiszámított értékeket kettősponttal elválasztva írja ki a bevetel.txt fájlba!
Ez – a példában szereplő Tóth család esetén – a következő lenne:
123:57200
(Amennyiben nem tudja a fájlba íratni a kiszámított értékeket, úgy az első tíz foglaláshoz tartozó értéket a képernyőre írassa ki!)
Írja a képernyőre a szálloda teljes évi bevételét!
- Készítsen statisztikát az egyes hónapokban eltöltött vendégéjszakákról! Egy vendégéjszakának egy fő egy eltöltött éjszakája számít. A példában szereplő Tóth család áprilisban 3, májusban pedig 9 vendégéjszakát töltött a szállodában. Írassa ki a havi vendégéjszakák számát a képernyőre az alábbi formában:
hónap_sorszáma: x vendégéj
például: 8: 1059 vendégéj
- Kérje be a felhasználótól egy új foglalás kezdő dátumához tartozó nap sorszámát és az eltöltendő éjszakák számát! Határozza meg, hogy hány szoba szabad a megadott időszak teljes időtartamában! A választ írassa ki a képernyőre!