Reginális frduló 2010. nvember 27. A 11-13. és a 8-13. szt{lysk feladata Egy rendezvényszervező cég titeket kért meg arra, hgy a rendezvényeik megszervezését és lebnylít{s{t segítő prgramt készítsetek sz{mukra. A kész prgramt a prjektmenedzser fgja haszn{lni, aki minden esetben (minden prjektben) az al{bbi adatk alapj{n dlgzik: a prjekt sr{n elvégzendő tevékenységek sz{ma, az egyes tevékenységek jellemzői (a tevékenység egyedi aznsítója és neve, az időigénye napkban, a megelőző tevékenység(ek), az egyes tevékenységeket követő esetleges v{rakz{si idő, a tevékenység elvégzéséhez szükséges feladatkör vagy szakmai ismeret), a munkat{rsak feladatköre (ki milyen tevékenysége(ke)t tud elvégezni). A ti feladattk egy lyan prgram megír{sa, amelyik a kaptt infrm{ciók alapj{n megadja, hgy mennyi az a legrövidebb időtartam, ami alatt elvégezhető a prjekt, az egyes tevékenységek elkezdésének mi a legkr{bbi illetve a legkésőbbi időpntja, kire lehet (kell) r{bízni az egyes tevékenységet. Készítenetek kell egy s{vs ütemtervet is, amely a képernyőn jeleníti meg a feladatk időbeli elszl{s{t. Bemeneti adatk A munkat{rsak list{ja sz{mtkra a mtars.txt f{jlban {ll rendelkezésre. (A f{jl minden sra egy munkat{rs adatait tartalmazza.) A sr elején a munkat{rs egyedi aznsító sz{m{t és a nevét egy szóköz v{lasztja el. A név ut{n kettőspnt majd szóköz szerepel, ezut{n a feladatkörök következnek vesszővel és az azt követő szóközzel elv{lasztva. A prjektet alktó tevékenységek list{j{t a tev.txt f{jl tartalmazza. Az első srban a tevékenységek sz{m{t tüntettük fel, a tv{bbi srk pedig ezen tevékenységek leír{s{t adj{k. A sr elején a tevékenység egykarakteres aznsítój{t kettőspnt és szóköz követi, ezut{n vesszővel és az azt követő szóközzel elv{lasztva a tevékenység leír{sa (neve), időigénye napkban, a tevékenységet megelőző 1 kr{bbi tevékenység aznsítója, a munk{val megbízható munkat{rs feladatköre következik. (A tevékenység neve nem tartalmaz vesszőt.) Ha egy tevékenységet nem kell megelőznie m{s tevékenységnek, akkr a helye üresen marad, de a követő vessző és a szóköz szerepel a srban. 1 Ha az X tevékenységet Y tevékenység előzi meg, az azt jelenti, hgy X mindaddig nem kezdhető el, ameddig Y be nem fejeződött. 1
A tevékenységek időtartama legal{bb 1 nap. (Mindig egész sz{m.) Ha az aktu{lis tevékenységet több kr{bbi tevékenység előzi meg, akkr azkat csak szóköz v{lasztja el. Ha az aktu{lis tevékenységet megelőző kr{bbi tevékenység befejezése ut{n v{rakzni kell, akkr a szükséges v{rakz{si idő kerek z{rójelben szerepel közvetlenül a tevékenység-aznsító ut{n. Kimeneti adatk A kimeneti adatkat részben a képernyőn kell megjelenítenetek, részben pedig kimeneti szövegf{jlba kell kiírntk. A képernyőre készítenetek kell egy t{bl{zatszerű s{vs ütemtervet, amelynek a fejlécén a napk srsz{m{t kell feltüntetni, a tv{bbi sraiban pedig az egyes tevékenységek aznsítója ut{n vízszintes vnallal kell megjelölni azkat a napkat, amelyeken a tevékenységet végezni kell. Ha több napn {t végeznek egy tevékenységet, akkr az érintett napkat flytns vnallal is meg lehet jelölni. Az al{bbi két {bra egy-egy péld{t mutat egy tevékenységsr idős{vj{nak lehetséges megjelenítésére. (M{s vnalstílus is v{lasztható.) A tevékenységeket minden esetben a legkr{bbi kezdési időpnttal kell feltüntetni. Az ütemtervet karakteres, illetve grafikus képernyőn egyar{nt elkészíthetitek. Nem jelent előnyt a grafikus képernyő haszn{lata. (Az értékelésben csak az {bra helyességét és {ttekinthetőségét értékeljük.) Sk adat esetén képernyőlapz{s 2 vagy megfelelő ar{nyú kicsinyítés segíthet abban, hgy a kért adatk megjelenjenek. A lapz{sn{l nem kell biztsítani, hgy a kr{bban megjelenített adatk újra visszalapzhatóak legyenek. A sr- és szlpfejlécek minden lapn jelenjenek meg. A lapz{s lehetőségét és módj{t egyértelműen jelezni kell a képernyőn. A képernyő alsó sraiban lehetőséget kell biztsítani a felhaszn{lónak arra, hgy a tevékenység kódj{hz a tevékenység nevét lekérdezhesse. A prgram fut{sa sr{n utem.txt néven készüljön egy kimeneti f{jl is! 2 Képernyőlapzás: Egy tetszőleges vagy egy megadtt billentyű lenym{sa az idős{v egy újabb részének megjelenését eredményezi. 2
Feladat A f{jl első sra a prjekt elvégzéséhez minim{lisan szükséges napk sz{m{t mutassa! A tv{bbi srk az egyes tevékenységek egyedi aznsítói ut{n a tevékenység legkr{bbi és a legkésőbbi kezdési időpntj{t, illetve egy, a munka elvégzéséhez rendelhető munkat{rs nevét tartalmazz{k! A tevékenység-aznsító ut{n kettőspnt és szóköz szerepeljen, a többi adatt vessző és az azt követő szóköz v{lassza el egym{stól! A tevékenységek az aznsítójuk szerinti betűrendben kövessék egym{st! Készítsetek prgramt, amelyik a fent ismertetett frm{tumú munkat{rsi lista és tevékenységlista alapj{n a kért frm{tumban megadja a kimeneti adatkat! Feltételezzük, hgy a bemenő adatk mindig lyank, hgy létezik megfelelő ütemezés. B{rmelyik prjekt időtartama maxim{lisan 60 nap, és legfeljebb 10 munkat{rs vnható be. Egy prjekt maxim{lisan 20 tevékenységből {ll, és nem frdulhat elő, hgy 5 tevékenységnél többet lehessen p{rhuzamsan végezni. Az al{bbi példa egy lehetséges prjekt megadtt szempntk szerinti bemeneti és kimeneti adatait mutatja be. Példa: versenyszervezés Bemeneti adatk: A mtars.txt f{jl tartalma: 1 Aranyi B{lint: szervező, szaktan{r1 2 Cserepes Vir{g: szaktan{r1 3 Kaba K{lm{n: szaktan{r2, gazdas{gi ügyintéző 4 Tóth Valentin: szervező, szaktan{r2 A tev.txt f{jl tartalma: 12 A: a versenykiír{s elkészítése és a verseny meghirdetése, 15,, szervező B: a nevezések fgad{sa és összesítése, 3, A(1), szervező C: a versenyfeladat kidlgz{sa, 4,, szaktan{r1 D: a javítókulcs kidlgz{sa, 2, C, szaktan{r1 E: a feladat és a javítókulcs ellenőrzése, 3, D, szaktan{r2 F: a nevező csapatk értesítése és t{jékztat{sa, 1, B, szervező G: a feladatlapk előkészítése, 2, E, szervező H: a helyszín előkészítése, 1, F G, szervező I: a versenyzők fgad{sa és a verseny lebnylít{sa, 1, H, szervező J: a versenymunk{k javít{sa, 5, I, szaktan{r2 K: a javít{s ellenőrzése, 2, J, szaktan{r1 L: eredményhirdetés, 1, K, szervező 3
Az adatk feldlgz{sa Az al{bbi {bra segítségével {t tudj{tk tekinteni a bemeneti és a kimeneti adatk közötti kapcslatkat: a prjekt lebnylít{s{hz 30 napra van szükség, az A, B L tevékenységek mikr kezdődhetnek, és ki végezheti őket. Legkrábbi kezdés 0 0 J 0 0 Legkésőbbi kezdés Ki végezheti Időtartam 4
Kimeneti adatk: A képernyőkép: Az utem.txt tartalma: 30 A: 1, 1, Aranyi B{lint B: 17, 17, Aranyi B{lint C: 1, 10, Cserepes Vir{g D: 5, 14, Cserepes Vir{g E: 7, 16, Tóth Valentin F: 20, 20, Aranyi B{lint G: 10, 19, Tóth Valentin H: 21, 21, Aranyi B{lint I: 22, 22, Aranyi B{lint J: 23, 23, Tóth Valentin K: 28, 28, Aranyi B{lint L: 30, 30, Aranyi B{lint Beadandó A prgram frr{skódja (a prgramz{si környezettől függően a frr{skód több f{jl is lehet, esetleg mapp{k is tartzhatnak hzz{) és a lefrdíttt utemez.exe {llm{ny. A bemeneti adatkat tartalmazó f{jlk mindig az aktu{lis (fejlesztői környezetben az alapértelmezett) könyvt{rban tal{lhatóak. A kimeneti f{jlkat is ide kell menteni. (A prgram kódja nem tartalmazhat abszlút elérési útvnalat.) Feltételezzük, hgy a bemeneti f{jlkban szereplő adatk minden esetben helyesek. 5
Kódl{si alapelvek A frr{skód minőségét is értékeljük. Ir{nyelvek, szempntk: Egységes kódl{si szab{lyk az aznsítókra: a v{ltzók egységes elnevezése (kis- és nagybetűk vagy m{s speci{lis karakterek haszn{lata), az szt{lyk egységes elnevezése (bjektum-rient{lt prgramnyelv esetén, pl. C++), a függvények és elj{r{sk tartalmra utaló elnevezése, a prgramkód egységes struktur{lts{ga, taglts{ga. A kód minősége (könnyen emberek sz{m{ra érhető illetve karbantartható kód): {ttekinthető, lehetőség szerint rövid elj{r{sk, függvények, f{jlk, beszédes, tömör elnevezésű aznsítók, bjektum-rient{lt nyelveknél glb{lis v{ltzók mellőzése. Kmmentezés: A kmmentezés elsődleges célja, hgy a prgramban a miért? kérdésre adjn v{laszt. (A mit? kérdésre az aznsítók megfelelő elnevezése és a megfelelően struktur{lt kód, a hgyan? kérdésre pedig az {ttekinthető frr{skód ad v{laszt.) A túlz{sba vitt kmmentezés csökkenti az {ttekinthetőséget, a túl kevés kmment nehezíti a megértést. Elv{r{s a v{ltzók, szt{lyk, függvények és elj{r{sk szerepének rövid, értelemszerű kmmentezése. Elérhető pntsz{m: 120 pnt (Ebből a helyes dkument{l{s kmmentezés 15 pnt) Jó munk{t kív{n a Versenybiztts{g! 6