Úlohy na procivčování k deváté hodině

Zaměstnanci a počty dětí

Úloha:
Vytvořte si textový soubor, do kterého napište několik řádků, každý řádek bude obsahovat informaci o jednom zaměstnanci a počtu jeho dětí. Dětí může být 0 až 9, jméno maximálně 30 znaků. Na první pozici v řádku bude číslice, kolik má dětí, pak mezera a následovat bude jméno.
Napište program, který tento soubor přečte a vypíše zaměstnance setříděné podle jména nebo podle počtu dětí. (Když bude mít více zaměstnanců stejný počet dětí, je jedno, v jakém pořadí se vypíší.) Programu se budou na příkazovou řádku dávat dva parametry: první bude buď -j pokud se má výpis třídit podle jména, druhý -p, pokud se bude třídit podle počtu dětí. Druhý parametr bude specifikovat jméno souboru (případně i s cestou), ze kterého se budou data načítat - ten, co jste napsali vy.

Nápověda:
Nevíte, kolik zaměstnanců bude v souboru, musíte si je tedy ukládat v nějaké struktuře, která bude umožňovat přidávat libovoloný počet - např. spojový seznam. Do tohoto seznamu můžete data zapsat v takovém pořadí, jako jsou v souboru a pak seznam setřídit podle jména nebo podle počtu dětí, a vypsat. Druhá (asi jednodušší) varianta je, že do seznamu budete data rovnou zatřiďovat. Tedy načtete ze souboru dalšího zaměstnance, zjistíte, na jaké místo v seznmu patří, a tam ho zapojíte. To vyžaduje si při zjišťování pozice, kam zařadit, pamatovat i ukazatel na předchozí položku, abyste mohli pak správně přepojit pointery.

Protože počet zaměstnanců bude vždy jednociferný, můžete si přečíst pouze první znak na řádce a z něj určit počet a víte, že jméno začíná od třetího znaku.