Prog1 Géptermi ZH, 2017.05.29.

STL feladat

Alapfeladat

Egy projekt szervezéséhez kell segítséget nyújtani. A projekt több részfeladatból áll, ezeket a nevükkel azonosítjuk. A részfeladatokhoz kulcsembereket és találkozókat lehet rendelni. Egy kulcsember akár több részfeladathoz is rendelhető, de egyszerre két találkozón nem tud megjelenni. Minden találkozón a részfeladat minden kulcsemberének részt kell vennie. Az A) feladatban feltételezhető, hogy a legelső találkozó bejegyzése előtt megtörténik minden kulcsember hozzárendelés. A találkozó megadásánál a részfeladatot adjuk meg, és hogy a projekt hanyadik napján esedékes. Egy részfeladatnak egy napon csak egy találkozója lehet.


Projekt p;
p.uj_reszfeladat("karbantartas");
p.uj_reszfeladat("tervezes");
p.uj_reszfeladat("marketing");
p.kulcsember("karbantartas","Tibi");
p.kulcsember("tervezes","Tibi");
p.kulcsember("tervezes","Zsofi");
p.kulcsember("marketing","Lajos");
p.uj_talalkozo("tervezes", 12);
p.uj_talalkozo("marketing", 12);
p.uj_talalkozo("tervezes", 13);
p.uj_talalkozo("karbantartas", 13); //Ne jegyezze fel, írjon ki hibaüzenetet a kulcsember nevével. Maxpontért visszatérési értékben is jelezni kell a sikerességet, de anélkül is érvényes
p.teljes_naptar_kiir(); //megjelenik valamilyen formaban, hogy melyik nap mi tortenik

Az adatok helyes nyilvántartása mellett tehát az A) feladat legfontosabb szolgáltatása az, hogy észreveszi a személyi ütközést, és a találkozót ilyenkor nem jegyi meg, annak nincs nyoma a naptár kiírásakor, csak a többi bejegyzésnek. Figyelem, ennek a feladatnak a teljesítése nélkül nem érvényes a ZH.

B rész

Lehessen utólag is hozzáadni kulcsembert a részfeladathoz. Ilyenkor nem csak azt várjuk el, hogy az új kulcsember hozzárendelés utáni ütközések helyes kezelése működik, de azt is, hogy a kulcsember hozzárendelés pillanatában adjon hibaüzenetet akkor, ha a már fixált és eddig akadálytanul lebonyolítható találkozók között lesz ütközés az új kulcsember hozzárendelése miatt. Ilyenkor írja ki, hogy melyik napra eső találkozóval (vagy találkozókkal) van probléma.

C rész

Két kényelmi szolgáltatás van a C részben. Lehessen megadni egy napot a projektben, és egy szolgáltatás adja meg az aznapi teendőket személyenként, és ha aznap nincs találkozója valakinek, akkor a legközelebbi esedékest írja ki. Lehessen továbbá fájlba elmenteni az összes adatot, és visszaolvasni. (5+5 pont)

Grafikus feladat

A mellékelt grafikus programot kell utánozni. Nem a pixel pontos reprodukcióra kell törekedni, hanem felismerni a működés szabályát és az elvet implementálni.

Kiegészítős feladat

A mellékelt kiegészítős feladatban elért pontszám a megszerzett pontszám erre a feladatra. A kiírt pontszám akkor is érvényes, ha néhány ellenőrzés feltétele nem teljesül. Szabad komment blokkot is hagyni a main()-ben, de csak a kezdeti komment blokk elejének lejjebb tolásával.

Pontozás

A ZH érvényes, ha az 1.feladat a) része működik. A tökéletes a) b) és c) feladatrészek megoldásai 10+10+10 pontot érnek plusz 10 pontnyi kód elegancia, tehát az STL feladat 40 pont. 10 pont szerezhető a kiegészítős feladatból. 10 pontot ér a grafika. Ez összesen 60 pont.