Osztálydiagram készítés
Osztályok, kapcsolatok
Gyakorlaton megoldott feladatok (nem a teljes anyag)
- Egy könyv legalább egy fejezetből áll, egy fejezet pedig legalább egy oldalt
tartalmaz. Adjuk meg a probléma osztálydiagrammját, és mutassunk a modellt
megvalósító egy lehetséges objektumdiagrammot is!

- Készítsük el egy házi mozi osztálydiagrammját! A házi mozihoz tartozik
egy TV, DVD lejátszó, erősítő és a hangfalak. A hangfalak száma kettő és hat
között lehet. A DVD lejátszó képet továbbít a TV-nek, hangot az erősítőnek.
Az erősítő köti össze a hangfalakat.

- Egy lakóház legalább két szintből áll, szintenként legalább egy lakás
található. A szinteket lépcsőházak, illetve liftek kötik össze. Minden
szinthez legalább egy lépcsőház kapcsolódik. Minden lakásnak legfeljebb két
szomszédja lehet.

- Egy benzinkúton pontosan 6 töltőhely és 2 pénztár található. Egy autós
eldönti hányas töltőhelyre akar beállni (ez a benzinkútnak küldött üzenet,
amely ellenőrizni, hogy van-e adott sorszámú töltőhely), miután beállt adott
mennyiségű benzint tölt a tankjába, majd a pénztárnál fizet (a pénztár
kérdezi le az autós által megadott töltőhelytől a fogyasztott mennyiséget,
kiszámítja az árat, lenullázza a töltőhely mérőóráját), és végül távozik.
Egy autós csak egy töltőhelyet és egy pénztárt használ. Tegyük egyelőre fel,
hogy az autósnak nem kell várakoznia sem a töltőhely, sem a pénztár előtt.
Az alábbi ábra csak az osztályokat ábrázolja, gyakorlaton ezt jóval
részletesebben kidolgoztuk: attribútumokat, metódusokat is megterveztük.

- Egy kisvárosi üzlet élelmiszer részlegből és műszaki részlegből áll. A
vásárlók egy bevásárlólistára felírták azon termékek neveit, amit
megvennének. Az üzletben a listájukon szereplő termékeket keresik: először
az élelmiszer részlegen nézik végig a teljes bevásárlólistát, és a megtalált
termékeket magukhoz veszik (beteszik a kosarukba), majd a műszaki részlegen
ezt megismétlik, de óvatosabban: ha egy (a bevásárlólistán szereplő) áruból
több is van a részlegen, akkor a legolcsóbbat választják.

További feladatok gyakorláshoz
- Alkalmazottakról nyilvántartjuk a nevüket, címüket,
társadalombiztosítási azonosító jelüket. Az alkalmazottak közül a főnök
irányítja a beosztottak munkáját. Az irányítás egy feladat határidőre
történő megoldását foglalja magába. (Ez egy olyan feladat, amely az
asszociációs osztály bevezetését igényli. Az asszociációs osztály C++ nyelvi
megvalósítása: egy közönséges osztály lesz, amelynek objektumain keresztül
kapcsolódnak beosztott alkalmazottak a főnök alkalmazottakhoz.)
megoldás
- Személyekről ismerjük a nevüket, személyi igazolványszámukat és a
címüket. Két személy között lehetséges viszony a házasság. Egy személynek
legfeljebb egy házastársa lehet. A házasság jellemzője a házasságkötés helye
és ideje. A házasságkötésen pontosan két személy tanúskodik. A házasságkötés
során a házasulandók nászajándékokat kapnak, amelyeket egy személy ad. A
nászajándék jellemzője a név. (Itt is megjelenik az asszociációs osztály.)
megoldás
- A bankban az ügyfelek sorban állnak, hogy egy ATM automatát
használhassanak. Az ügyfelek bankkártyákkal rendelkeznek, amikhez tartozik
egy PIN kód, valamint egy bankszámla. A bankszámlának egyenlege van, ami
mindig pozitív kell, hogy legyen. Az ügyfelek sorban vehetnek feladott
összeget az automatából a bankkártyájuk, valamint a kódjuk megadásával, ha a
kód megegyezik a kártya kódjával, akkor az automata kiadja az összeget,
feltéve, hogy az összeget levonva az egyenlegből az továbbra is pozitív
marad. Ennek a megállapításához az automata egy központból a kártya
adatainak megadásával visszakapja az ügyfél egyenlegét.
megoldás program:
ATM.zip
- Egy csomag kiszállító futár járműve kétféle színű lehet: kék és sárga. A
járműnek van egy motorja, valamint egy benzintartálya. A motort el lehet
indítani és le lehet állítani. A tartályba a maximális benzinszint
figyelembe vételével tankolhatunk. A járműnek ismert a benzinfogyasztása,
ami liter/km mértékegységben van adva. A szállítás címei minden esetben
benzinkutak (az ott lévő PickPack pontokra szállít a futár), így minden
állomáson tud tankolni. A termékekre ráírták a kiszállítás címét, továbbá
kiszámolható, hogy egy cím milyen távolságra van a futár aktuális
tartózkodási helyétől (km-ben). (Ennek az UML ábrával szemben inkább a
Vehicle osztályban lenne a helye.) Egy futár a termékek kiszállítása során
bepakol a járművébe annyi terméket, amely belefér (a jármű kapacitását
figyelembe véve). A futár minden terméket ki szeretne szállítani a járműben,
aminek menete a következő: először ellenőrzi, hogy a benzinszint a következő
kiszállításhoz elegendő-e. Amennyiben nem, előbb tankol; egyébként elindítja
a motort, elmegy a címzetthez (aminek eredményeképp csökken a benzinszint a
fogyasztás szerint), leállítja a motort, majd kipakolja a terméket.
megoldás program:
futar.zip
Osztályok, öröklődés
Gyakorlaton megoldott feladatok
- A könyveket legalább egy szerző írja és pontosan egy kiadó adja ki. Egy
kiadó legalább egy könyvet kiad. A kiadó legalább egy alkalmazottakat
foglalkoztat. Egy alkalmazottat pontosan egy kiadó alkalmaz. Az alkalmazottak és
a szerzők is személyek, és nincs olyan szerző, aki kiadói alkalmazott lenne.
Feladatok: Hány könyvet írt egy adott szerző? Ki egy kiadónál legtöbb könyvet
írt szerző?

- A kórházban legalább egy alkalmazott dolgozik, aki lehet orvos, ápoló
vagy a személyzethez tartozhat. A kórházban betegek vannak, akiket orvosok
kezelnek és ápolók ápolnak. Egy beteget pontosan egy orvos kezel, és
tetszőleges számú ápoló ápol. Egy orvos tetszőleges számú beteget kezelhet,
egy ápoló tetszőleges számú beteget ápolhat.

Vegyük figyelembe azt is, hogy egy alkalmazott is lehet beteg, és a
betegséggel nem szűnik meg az alkalmazotti viszonya! Módosítsuk az előző
osztálydiagramot ennek megfelelően!

-
Egy kertet egy kertész gondoz. A kert
parcellákból áll, minden parcellába egyféle növény ültethető. Az ültetés
idejét eltároljuk (hónapban). A növények lehetnek haszonnövények, mint
burgonya, borsó, paprika; vagy virágok, mint rózsa, szegfű, tulipán. A
növényeknek ismerjük az érési idejét (hónapban). Listázza ki a kertész
azokat a parcellákat, ahol az adott hónapban haszonnövények fognak beérni!

program: kertesz.zip
- Egy számítógépes fájlrendszerben a fájlokat könyvtárakba szervezzük.
Minden könyvtár tetszőleges számú fájlt vagy könyvtárat tartalmazhat. A
fájlrendszerben a fájlok lehetnek közvetlen a fájlrendszerhez kötve
(gyökér), vagy valamelyik könyvtárban is elhelyezkedhetnek. Mennyi tárhelyet
foglal egy adott könyvtár?

További feladatok gyakorláshoz
- Egy vonatszerelvény egy mozdonyból és legalább egy kocsiból áll. A kocsikat
a mozdony után adott sorrend szerint kapcsolják össze. A vonatot különböző
típusú (eltérő hosszúságú) kocsikból állíthatják össze. A lehetséges típusok:
első osztályú, másodosztályú, posta, étkező, háló, tehervagon, platóvagon.
Egy mozdony, illetve kocsi egy időben csak egy vonathoz tartozhat. Milyen hosszú
egy adott szerelvény?
megoldás
Módosítsuk az osztálydiagramot a következők szerint: lehetnek tehervagon és
platóvagon típusú kocsik is. Egy szerelvény vagy személyszállító (nincs
tehervagon, sem plató vagon), vagy teherszállító (csak tehervagon vagy
platóvagon van).
- Egy flotta legalább egy hajóból áll, amelyek közül az egyik a vezérhajó.
A hajók lehetnek rombolók, cirkáló, naszádok és fregattok.
megoldás
- Egy galaxis rendszerekből épül fel. Egy rendszer egy csillagból és
tetszőleges számú bolygóból áll. A bolygókat a csillagtól vett távolságuk
alapján kell nyilvántartanunk. Kétféle bolygót különböztetünk meg: szilárd
és gáz halmazállapotúakat.
megoldás
- A bírósági tárgyalásokat legalább egy bíró vezeti, részt vesz rajta
legalább két peres fél, akik között van felperes és alperes. A tárgyaláson
jelen vannak még jogászok is, akik lehetnek ügyvédek vagy ügyészek. Az
alperest legalább egy ügyvéd védi. A felperest legalább egy jogász
képviseli. Ha egy ügyvéd egy alperest véd, mást nem védhet.; és egy jogász
csak egy felperest képviselhet.
megoldás
- Egy vasútvonal legalább két állomás sorozata. Egy állomás több
vasútvonalhoz is tartozhat. Egy állomáson legalább egy vágány található. Az
állomások között megkülönböztetünk megállókat, csomópontokat és
terminálokat.
megoldás
- Az űrhajók utasai két csoportba oszthatók: karbantartókra és harcosokra.
A karbantartók lehetnek droidok vagy technikusok. A harcosok között vannak
személyek (katonák) és harci droidok. Az űrhajó szintekre tagolódik, a
szintek folyósokból és termekből állnak. Minden utas rendelkezik egy
azonosítóval. A termekhez is tartozik kód, és egy utas akkor tartózkodhat
egy teremben, ha az azonosítójából meghatározott kód nem kisebb a terem
kódjánál. A harcosokat csoportokba osztják, a csoportokból magasabb szintű
csoportokat állítanak össze tetszőleges mélységben (pl. szakasz, század,
ezred, …). Egy csoportot egy parancsnok vezet. aki csak katona lehet.
megoldás
Zárthelyi feladat 2018. tavaszi félév
Horgász
feladat.pdf megoldás.pdf
Sörfesztivál
feladat.pdf
megoldás.pdf