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)