fel
le

Gladiátorok és File rendszer

  • gyerekosztályok készítése, base-el ős konstruktor hívása
  • virtual + override metódusok, propertyk

Gladiátorok az Arénában

Gladiátor osztály, mező(k):

  • ev : 0-10 közötti egész szám, ennyi ideje gladiátor rabszolga
  • szinkod : enum, lehet: Sarga, Piros, Fekete (Az ev értéke alapján kerüljön beállításra. 0-2 év Sarga, ha már legalább 3 éve gladiátor, akkor a szinkodja Piros lesz, ha pedig már legalább 6 éve akkor Fekete.)
  • szarmazas : enum, lehet: Romai, Trak, Gall, Hispan, Pun
  • szabad : logikai, alapértelmezetten hamis. Ha 10 éve gladiátor valaki, akkor felszabadítják és igaz lesz.
  • void Oregszik() : Ha meghívódik növeli 1-gyel az ev értékét, de csak addig míg 10 éve nem gladiátor valaki, ekkor ugyanis felszabadítják meghívjuk a Felszabadit() metódust. Meghívja továbbá a Fejlodik() metódust.
  • void Fejlodik(): Ha már legalább 3 éve gladiátor, akkor a szinkodja Piros lesz, ha pedig már legalább 6 éve akkor Fekete.
  • void Felszabadit(): Ha már 10 éve gladiátor valaki felszabadítják, szabad = true
  • Paraméteres konstruktorral állítsuk be a mezők helyes kezdőértékét!

KepzettGladiator gyerekosztály, őse a Gladiator. Mező(k):

  • fegyvernem : enum, lehet Kard, Lándzsa, Buzogány, Acélháló
  • becenev : string, 3-15 karakter, a veterán gladiátoroknak már kitalál egy becenevet a közönség :)
  • void Oregszik(): Egészítsd ki a metódust úgy, hogy ha az ev eléri a 6-ot, onnantól kezdve 2-vel öregszik minden egyes tornagyőzelemkor.
  • Konstruktorral állítsuk be az új mezők kezdőértékét is!

Arena osztály

  • protected List ...
  • void Harc(): Véletlenszerűen kiválaszt 2 küzdőfelet a listából és a tapasztaltabb győz (szinkod alapjan), a vesztes meghal, töröljük a listából
  • int Szavaz(): Segédfüggvénye a Harc()-nak. Ha egyformán tapasztalt a 2 gladiátor, a közönség szavaz, hogy ki haljon meg. (véletlen szám generálással sorsolás)
  • void Valogat(): Összeszedjük egy tornára a gladiátorokat. Töltsük fel a listát KepzettGladiator példánnyokal úgy, hogy minden egyes tornán pontosan 10 induló van, tehát ha az előző torna győztese még nem 10 éve rabszolga, akkor ő is részt vesz a következőn és mellé még 9-re van szükség. Ha az előző torna győztese elérte a 10 évet, akkor felszabadítják és törlésre kerül a listából.
  • void TornaIndul(): Addig harcoljanak párokban a gladiátorok míg csak egy marad élve (lista elemszáma = 1) Az egyetlen túlélő öregszik. Az eljárás írja ki a torna befejeztével, hogy ki nyert és neki minden adatát, valamint azt, hogy van-e „továbbjutó”.

Tesztprogram (Main):

  • Hozz létre egy Arena példányt és indíts legalább 3 tornát egymás után!

(A feladatot Magyar Péter tanárúrnak köszönhetjük!)

File rendszer

File osztály tárolja egy file adatait:

  • file neve: string, legalább 1 karakter hosszú, nem tartalmazhat speciális karaktert, mint pl. a '\'
  • mérete byteokban: int, lehet 0 byte is, de nem lehet negatív
  • másolat-e: bool, true értéke jelzi, hogy ez az eredeti file másolata (archivált file)
  • konstruktor a paraméterekkel

Háttértár osztály: fileok listája

  • maximális kapacitás byte-okban: egész szám, nem lehet negatív, csak olvasható
  • file rendszere: enum, NTFS, FAT32, EXT3
  • fileok listája: nem szerepelhet rajta két egyforma nevű file, null érték, a fileok összmérete nem haladhatja meg a háttértár kapacitását
  • a fileok listáját a külvilág másolat formájában megkaphatja,
  • konstruktor a file rendszerrel és a mérettel
  • létezik-e( filenev) függvény, bool, megadja hogy adott nevű file létezik-e a lemezen
  • eltarol (file) fv, hozzáaadja a paraméter file objektumot a listához amennyiben az megfelel a kritériumoknak
  • töröl( filenev ) fv, letörli a megadott nevű filet,
  • szabad kapacitas csak olvasható property, megadja a szabad méretet
  • formattalas( file rendszer tipusa, merete ): minden file törlése, új méretek beállítása

DVD osztály: a háttértár gyerekosztálya

  • enum hogy CD vagy DVD, a konstruktor megkapja ezt az enumot, ez alapján a méret vagy 640Kb vagy 4500 Kb legyen
  • Feliras() függvény, mely fixálja a file listát, e pillanattól kezdve a file lista nem módosítható (hozzáadás és törlés nincs többé)
  • formattalas fv nem működik sosem

Főprogram:

  • példányosít egy háttértárat, és feltölti file-okkal.
  • hasonlóan, példányosítson a DVD osztályból is, de ne töltse fel.
  • keressünk meg azokat a fileokat a háttértáron, amelyeken nem másolatok, és másoljuk át a dvd-re (ott másolat legyen).
  • amikor már nem lehet a következő ilyen file-t hozzáadni a dvd-hez (vagy már nincs ilyen file), akkor a dvd-t írjuk fel.

Hernyák Zoltán
2013-04-30 17:53:08