Jazyk C 2013 – záverečné zadanie

Spoločné vlastnosti

  • Termín odovzdania je 13. február 2014 od 14h v P7.
  • Vyberte si jedno z dvoch zadaní a vypracujte ho.
  • Zadanie spokojne vzájomne konzultujte. Vypracovanie však musí byť samostatné a jednoznačné.
  • Plagiátorstvo a identický kód je trestaný hodnotením FX.
  • Ak využijete kusy kódu alebo rady z internetu, uveďte do zdrojového kódu odkaz na zdroj.
  • Zadanie bude obhájené individuálne a ústne v termín uvedený vyššie.
  • Zadanie musí implementovať celú požadovanú funkcionalitu. Vynechanie ktoréhokoľvek bodu má za následok zamietnutie zadania. Hodnotenie sa odvíja od spôsobu implementácie zadania a od odpovedí na kontrolné otázky zamerané na pochopenie vypracovania.

Zadanie, variant 1

Vytvorte modul a používateľské rozhranie pre spracovanie INI súborov podľa konvencie súboru win.ini.

Inicializačný súbor predstavuje textový súbor nasledovného typu:

[Mail]
MAPI=1
[MCI Extensions.BAK]
3g2=MPEGVideo
3gp=MPEGVideo
3gp2=MPEGVideo
3gpp=MPEGVideo
[Internet]
UUID=2030258618

Špecifikácia riadka

Riadok pozostáva:

  • z položky typu kľúč=hodnota, kde kľúč je reťazec a hodnota je
    • buď typu reťazec
    • alebo typu integer
  • alebo z názvu sekcie v hranatých zátvorkách

Znak = je tesne spojený na jednej strane s kľúčom a na druhej strane s hodnotou (okolo znaku = nie je žiadne biele miesto).

Názov kľúča nesmie obsahovať medzery, ale hodnota medzery obsahovať môže.

Každá položka začína prvým znakom nového riadku (nie sú pred ňou medzery ani iné znaky bieleho miesta).

Každá položka je v práve jednej sekcii.

Funkcionalita

Modul nech obsahuje funkcionalitu:

  • načítanie INI dát zo súboru
  • získanie všetkých kľúčov zo všetkých sekcií:

    • funkcia nech vráti vhodnú štruktúru obsahujúcu všetky kľúče
  • získanie kľúčov z danej sekcie: funkcia nech vráti vhodnú štruktúru obsahujúcu všetky kľúče z danej sekcie
  • získanie hodnoty pre daný kľúč

    • ako reťazca
    • ako celého čísla (ošetrite chybové stavy)
  • pridanie kľúča a hodnoty do danej sekcie
    • v prípade existencie daného kľúča prepíšte jeho hodnotu
  • pri pridaní záznamu do neexistujúcej sekcie nastáva chyba
  • odstránenie kľúča a hodnoty z danej sekcie
  • vytvorenie novej sekcie
  • odstránenie sekcie
    • ak sekcia obsahuje kľúče, nastáva chyba
  • uloženie INI dát do súboru

Ďalšie požiadavky

  • Dáta z INI súboru musia byť uložené v pamäti (nepripúšťa sa zmena dát načítaním, prebehnutím a úpravou súboru).

  • Modul nech je dodaný v podobe samostatného C súboru vrátane hlavičkového súboru obsahujúceho požadované funkcie.

  • Vhodným spôsobom demonštrujte korektnú funkcionalitu vašej knižnice — odporúča sa vytvoriť jednoduché používateľské rozhranie, kde oddemonštrujete funkcionalitu.

Odporúčania

  • odporúča sa použiť spojový zoznam spojových zoznamov
  • stačí využiť dátovú štruktúru pre zásobník z cvičení, ktorá je spojovým zoznamom.
  • špecialitou je odstraňovanie položiek zo stredu zoznamu; na Googli je viacero prípadov použitia mazania zo zoznamu.

Zadanie, variant 2

Implementujte parser ID3v2.3.0 tagov MP3 súboru. Vytvorte knižnicu (C súbor + hlavičkový súbor), ktorá pre daný názov súboru vráti štruktúru s:

  • názvom skladby
  • umelcom
  • názvom albumu
  • rokom

Odporúčania

  • Pri návrhu parsera sa riaďte špecifikáciou ID3v.2.3.0.
  • Pomôcť vám môže Java implementácia na Githube.
  • Funkčnosť parsera demonštrujte na jednoduchom demoprograme, ktorý pre zadané súbory z parametrov vypíše na samostatné riadky všetky informácie.
  • Predpokladajte súbory s tagmi v kódovaní ISO-8859-1.

Pridaj komentár

Vaša e-mailová adresa nebude zverejnená. Vyžadované polia sú označené *