Reginális frduló 2010. nvember 27. A 9-10. 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 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 időpntja. 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 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 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 tevékenység neve helyett a nincs szó szerepel. 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. 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
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ó.) 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.) 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! 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 kezdési időpntj{t tartalmazz{k! A tevékenység-aznsító ut{n kettőspnt és szóköz szerepeljen! A tevékenységek az aznsító szerinti betűrendben kövessék egym{st! Készítsetek prgramt, amelyik a fent ismertetett frm{tumú 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. Egy prjekt maxim{lisan 20 tevékenységből {ll, b{rmelyik prjekt időtartama maxim{lisan 20 nap, és nem frdulhat elő, hgy 2 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. 2
Példa: versenyszervezés Bemeneti adatk A tev.txt f{jl tartalma: 12 A: a versenykiír{s elkészítése és a verseny meghirdetése, 5, nincs B: a nevezések fgad{sa és összesítése, 3, A(1) C: a versenyfeladat kidlgz{sa, 4, nincs D: a javítókulcs kidlgz{sa, 2, C E: a feladat és a javítókulcs ellenőrzése, 3, D F: a nevező csapatk értesítése és t{jékztat{sa, 1, B G: a feladatlapk előkészítése, 2, E H: a helyszín előkészítése, 1, F G I: a versenyzők fgad{sa és a verseny lebnylít{sa, 1, H J: a versenymunk{k javít{sa, 4, I K: a javít{s ellenőrzése, 2, J L: eredményhirdetés, 1, K 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 20 napra van szükség, az A, B L tevékenységek mikr kezdődhetnek. 3
Kimeneti adatk A képernyőkép: Az utem.txt tartalma: 20 A: 1 B: 7 C: 1 D: 5 E: 7 F: 10 G: 10 H: 12 I: 13 J: 14 K: 18 L: 20 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. 4
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. 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: 100 pnt (Ebből a helyes dkument{l{s kmmentezés 15 pnt) Jó munk{t kív{n a Versenybiztts{g! 5