Témata projektů pro semestr 2011/2012



V rámci projektu se bude tvořit objektová knihovna zajišťující kontejnerové funkce pro prvky nesoucí hodnotu zvoleného typu. Vnitřní implementace kontejneru bude realizována jako lineární seznam prvků. Prvky budou odvozené od dodané základní třídy CItemBase.

Zdrojové soubory základní třídy CItemBase budou dodány a je v rámci řešení projektu zakázána jejich modifikace.

Ze třídy CItemBase se odvodí třída CItem, která bude prvkem kontejneru. Ve výsledném projektu bude vytvořený kontejner schopen pracovat minimálně se čtyřmi různými implementacemi třídy CItem.

První dvě třídy CItem Vám budou dodány v rámci zadání, společně se třídou CItemBase a realizují zapouzdření typu bool a výčtového typu TWeekDay. Podle těchto příkladů v rámci projektu vytvoříte dvě další třídy CItem.

Kontejner budete realizovat bez podpory kontejnerových typů knihovny STL nebo jiných knihoven. Prvky kontejneru budou třídy odvozené z CItemBase.

Kontejner musí správně pracovat pro všechny čtyři vytvořené třídy CItem, ale nemusí s nimi pracovat současně v rámci jednoho překladu.



První Vámi realizovaná třída prvku lineárního seznamu CItem bude zapouzdřovat jeden ze základních typů, který si zvolte v části 1:

Zadání část 1: základní datové typy (mimo bool) (zvolte jednu z možností):

1.1 Jeden z celočíselných typů: např.: (signed/unsigned) char, short int, int, long int
1.2 Jeden z reálných typů: např.: float, double, long double
1.3 Výčtový typ enum např.: (měsíce, výčty barev, znak morseovy abecedy)



Druhá Vámi realizovaná třída prvku lineárního seznamu CItem bude zapouzdřovat jeden ze složených datových typů, který si zvolte v části 2:

Zadání část 2: složené datové typy (struktury, pole) (zvolte jednu z možností):

2.1 Komplexní číslo
2.2 Textový řetězec (dynamický)
2.3 Bod v prostoru (x,y,z)
2.4 Číselný interval
2.5 Barevná informace (RGB složky)
2.6 Pole číselných hodnot typu double



Třetí Vámi realizovaná třída bude samotný kontejner pracující s prvky třídy CItem. Charakter a funkce kontejneru si zvolte v části 3:

Zadání část 3: typ kontejneru implementován pomocí lineárního seznamu (zvolte jednu z možností):

3.1 Zásobník – jeden vstup, jeden výstup, architektura LIFO
3.2 Fronta – jeden vstup, jeden výstup, architektura FIFO
3.3 Obousměrná fronta – jedna fronta, oba konce mohou sloužit vstup a výstup
3.4 Prioritní fronta – prvky vstupují s informací o prioritě, prvky vystupují z fronty na základě priority a pořadí vstupu při stejné prioritě
3.5 Množina – souhrn prvků, neumožňuje indexaci
3.6 Multimnožina (množina obsahující i prvky stejné hodnoty) – tj. prvků, mohou se opakovat, …
3.7 Mapa (asociativní pole) – umožňuje párování prvků CItem a klíče celočíselné hodnoty (hash hodnoty)








Vývoj projektu je možný v libovolném prostředí a kompilátoru C++, ale referenčním překladačem bude MSVC 2010. :-(

Poslední úpravy 2011-10-06 (Pety)