12. cvičení

Zápočtový úkol 1

Blíží se konec fiskálního roku, což ve firmách a zejména státních institucích znamená nekonečné vyplňování výkazů, psaní závěrečných zpráv, a provádění podobných administrativních činností. Protože ve vašem týmu zaměstnanců umíte nejlépe programovat, navrhnete ostatním, že připravíte program, který celému týmu usnadní vyplňování a opravování seznamů pro centrální kontrolu svěřeného majetku.

Inventární seznamy jsou ukládány v souborech v následujícím formátu (jednotlivé sloupce jsou odděleny středníky (;), hlavička začíná znakem #):

# Nazev polozky   ; Typ polozky ; Inventarni cislo ; Odpovedna osoba ; Datum kontroly ; Kontrolujici osoba ; Stav polozky
kancelarska zidle ; nabytek     ; Z8-12345678/111  ; Jan Novak       ; 1. 12. 2020    ; Josef Kozel        ; OK
stul              ; nabytek     ; Z8-12345679/111  ; Jan Novak       ; 1. 12. 2020    ; Josef Kozel        ; poskozeno
dvere             ; nabytek     ; Z8-12345680/110  ; Jan Novak       ; 1. 12. 2020    ; Josef Kozel        ; nenalezeno
schodiste         ; stavebni    ; Z8-12345681/110  ; Jan Novak       ; 1. 12. 2020    ; Josef Kozel        ; chybi

Výsledný program by měl soubor přečíst a nějakým způsobem zpracovat data (viz dále). Před samotným zpracováním je ale potřeba důsledně zkontrolovat platnost všech údajů, protože vaši spolupracovníci a zejména kontroloři osoby jsou velmi nespolehliví a nepořádní lidé. Zkontrolujte tedy:

  1. Počet údajů na každém řádku. Datum kontroly, kontrolující osoba a stav položky mohou v seznamu chybět, pokud kontrola ještě neproběhla. Pokud se ale na řádku vyskytuje nějaká z posledních tří položek, měly by tam být všechny tři – jinak je to chyba.
  2. Inventární čísla musí být v uvedeném formátu.
  3. Datum kontroly, pokud je zadáno, musí být platné datum.

Dále program pro načtená data provede nějaké zpracování. Požadované operace ale budou zadány individuálně v závislosti na vaší práci v průběhu semestru (domácí úkoly, účast na cvičení, apod.). Dodatečné úkoly by mohly vypadat typicky takto:

  1. Vytvořit dva výstupní soubory, přičemž do prvního se zapíšou jen položky ve stavu „OK“, a do druhého ty ostatní.
  2. Vypsat první a poslední kontrolovanou položku (dle data kontroly).
  3. Vypsat položky, u kterých kontrola zatím neproběhla, nebo jejichž stav není „OK“.

Při programování se snažte ukázat to, co jste se během semestru naučili. Snažte se, aby byl program co nejpřehlednější a dobře strukturovaný. Když bude základní část programu (bez dodatečných úkolů) vypadat velmi dobře, můžu vám „odpustit“ nějaký dodatečný úkol.

Odevzdávání zápočtových úkolů

Úkoly vypracovávejte samostatně. Neopisujte od kolegů, neboť zamaskovat opisování by vás stálo více práce, než samostatné vypracování úkolu.

Jakmile budete mít hotovou základní část programu (bez dodatečných úkolů), pošlete mi ho na mou emailovou adresu ke kontrole. Posílejte pouze zdrojový kód a vlastní soubor s testovacími daty, nikoliv zkompilovaný program. Soubory přidávejte jako přílohu, aby se daly jednoduše stáhnout a uložit (tj. nekopírujte kód přímo do textové zprávy).

Odevzdaný program vám zkontroluji, upozorním na případné chyby a zadám případné dodatečné úkoly. Finální program potom bude potřeba předvést osobně (ve škole, pokud se to zase nezakáže).

Zápočtové úkoly je možné odevzdat během celého zkouškového období (tj. do 14. 2. 2021). Ideálně by se během zkouškového období mělo stihnout i osobní předvedení programu, ale v případě potřeby se můžeme individuálně domluvit na odložení osobní schůzky.

Po dobu zkouškového období budu k dispozici pro konzultace, kdybyste potřebovali něco vysvětlit nebo s něčím poradit. Konzultace budou probíhat přes MS Teams (nebo v jednodušších případech emailem). Termín si můžete domluvit emailem, na zprávy přes MS Teams nebudu stíhat reagovat.