A InfoWiki wikiből
a (Új oldal, tartalma: „<cim cim3="#6 Kacsa és KőszáliSas" cim2="OOP Gyakorlat" cim1="Magasszintű Programozási Nyelvek II" prev="mp4/page05" next="mp4/page07" kep="h...”) |
Aktuális változat (2010. február 5., 18:59) (lapforrás) a (Új oldal, tartalma: „<cim cim3="#6 Kacsa és KőszáliSas" cim2="OOP Gyakorlat" cim1="Magasszintű Programozási Nyelvek II" prev="mp4/page05" next="mp4/page07" kep="h...”) |
Aktuális változat
Kacsa + KoszaliSas
Definiáljunk egy 'Kacsa' osztályt az alábbi mezőkkel:
- 'súly' (0..7 Kg, tört érték is lehet)
- 'éhes' (0..10, skálaszerűen, 0=halálosan éhes .. 10=teljesen jóllakott)
- 'szomjas' (0..10, skálaszerűen, 0=halálosan szomjas .. 10=teljesen teleitta magát)
Tartalmazza ezen kívül az alábbi metódusokat:
- 'repul(km)' a kacsa elég gyengén repül, ezért 1 km repülés során 1 egység ételt használ el a szervezete. Így maximum 10 km repülésére képes, amennyiben teljesen jóllakott állapotról indul. Ezen metódus meghívása után, amennyiben a kacsa példány nem képes a megadott távolságra elrepülni, íródjon ki a képernyőre a "kacsa repülés közben éhen halt" szöveg, ellenkező esetben íródjon ki a "kacsa repült NN km-t", és frissítsük az éhségét megfelelően
- 'uszik(km)' a kacsa elég jól úszik, ezért 3 km úszás során 1 egység ételt használ el. Úszni csak vízben lehet, ezért úszás során mindíg teleissza magát. Amennyiben azonban nem képes a megadott távolságot leúszni, úgy "a kacsa úszás közben éhen halt" szöveg, ellenkező esetben a "kacsa NN km-t úszott" szöveg íródjon ki, és frissítsük az éhség mezőt megfelelően.
- 'eszik(egys)' a kacsa elé ennyi egység kukoricát szórunk ki, amelyből ő táplálkozik. Természetesen az 'éhség' skálája nem mehet 10 fölé, de a kacsa biztos ami biztos, addig eszik, amíg bír - és amíg a kukorica kitart. Írjuk ki hogy "a kacsa NN egység kukoricát evett meg, éhsége jelenlen MM".
- 'iszik(egys)' a kacsa elé vizet töltünk ki, melyből ő iszik. Továbbiakban a működés legyen hasonló az 'eszik(..)'-éhez.
- 'konstruktor', melyben megadhatjuk, hogy a frissen létrejött kacsa példányunk mennyire éhes, és mennyire szomjas.
// Negyzet class Kacsa { protected double _sulya; protected int _ehesSkala; protected int _szomjasSkala; public double sulya { get{...} set{...} } public int ehseg { get{...} set{...} } public int szomjusag { get{...} set{...} } public void repul(int km) {...} public void uszik(int km) {...} public void eszik(int egyseg) {...} public void iszik(int egyseg) {...} public Kacsa(double suly, int ehes, int szomjas) {...} }
Amennyiben a kacsa a repülés vagy úszás során elpusztulna, úgy továbbiakban nem eszik, nem iszik, nem repül, nem úszik, általában nem módosulnak a mezői. Ha egy elpusztult kacsa példánnyal ilyen sportolási tevékenységet próbálnánk végeztetni, úgy az okozzon futási hibát.
Fejlesszük tovább a kacsa osztály 'KoszaliSas' osztállyá, az alábbi módosítások figyelembe vételével:
- a 'súly' 0..20 Kg lehet
- 'repul(km)' 10 km repülés 1 egység étel
- 'uszik(km)' a sas nem tud úszni, azonnal elpusztul ha ilyenre kérjük (megfullad)
Egyéb helyeken nincs módosítás a kacsához képest.
// KoszaliSas class KoszaliSas:Kacsa { public double sulya { get{...} set{...} } public void repul(int km) {...} public void uszik(int km) {...} public KoszaliSas(double suly, int ehes, int szomjas) ... }
Készítsünk olyan tesztprogramot, amely létrehoz egy kacsa példányt, és menüből választható módon irányíthassuk azt. Az evés, ivás, úszás, repülés paramétereit is minden esetben billentyűzetről kérjük be. Hasonló tesztprogramot készíthetünk a sas példányhoz is.