Programozó versenyek

Magas szintű programozási nyelvek 2, 2017. május 30., K10 ZH

2017. május 30. 10:05 – 2017. május 30. 11:55

Feladatok kiértékelése (C#)

A számítógépes számonkérések értékelése nagyon egyszerűen zajlik: a hallgatók feltöltik a megoldásaikat, néha egy-egy feladatra többet is, a rendszer pedig szépen sorban teszteli és értékeli őket. Csak az szokott zavart okozni a rendszerben, ha egy hallgató még azután is tölt fel megoldásokat, ha a rendszer már talált a korábbi megoldásai között elfogadhatót.

Az ön feladata egy olyan program írása, amely feldolgozza a rendszer naplóállományát. A naplóállomány nevét a programja parancssori argumentumként kapja meg. Az állomány sorai a következő adatokat tartalmazzák időrendben növekvő sorrendben:

óra.perc.másodperc:név:feladatazonosító:értékelés

Az óra, perc, másodperc a szokásos, idő jelzésére használt adatok, egész számok (0 ≤ óra < 24, 0 ≤ perc < 60, 0 ≤ másodperc < 60). A név és a feladatazonosító sztringek, az értékelés pedig egyetlen karakter: elfogadott beküldés esetén 'A', minden más esetben valamilyen más betű.

A programjának a hallgatók neveit lexikografikusan növekvő sorrendben kell kiírnia a standard kimenetre, minden hallgató neve mellett feltüntetve a beküldések darabszámát, valamint azoknak a feladatazonosítóknak a lexikografikusan növekvő sorba rendezett listáját, amelyekre a beküldések érkeztek! Ügyeljen rá, hogy ebben a listában egy feladatazonosító csak egyszer szerepeljen!

Példa állomány (sample.txt)

  1. 10.01.01:Peter:A feladat:W
  2. 10.01.02:Gabor:B feladat:A
  3. 10.10.01:Peter:B feladat:A
  4. 10.10.10:Peter:A feladat:A
  5. 10.12.20:Anna:C feladat:T
  6. 10.12.30:Gabor:B feladat:W
  7. 10.20.30:Anna:A feladat:A
letöltés szöveges állományként

Parancssori argumentumok

  1. sample.txt
letöltés szöveges állományként

A futtatás eredménye a standard kimeneten

  1. Anna (2): A feladat, C feladat
  2. Gabor (2): B feladat
  3. Peter (3): A feladat, B feladat
letöltés szöveges állományként
Debreceni Egyetem, Informatikai Kar, v. 2019.03.01.