středa 4. března 2009

Jak má vypadat koncový zápočtový program

Program odevzdaný na konci semestru určující zápočet a známku by měl splňovat..

Formální parametry
  • třídy, metody a funkce by měli obsahovat doxygen komentáře a ze souborů by měla být vytvořena doxygen dokumentace.
  • zdrojový kód, komentáře i dokumentace by měla být napsána v angličtině
  • dodržení standardů zdrojového kódu.
  • použití pouze C++ výrazů a knihoven, pokud možno žádné C alokace a uvolnění paměti a použití C++ proudů.
  • objekty a metody by po sobě měly uvolnit veškerou paměť
  • důsledné dodržování principu zapouzdření. (co má být private, ať je private)
Vlastní zadání
Úkolem by mělo být implementovat šablonovou knihovnu reprezentující datovou strukturu. A k této šabloně vytvořit ukázkový program. Je doporučeno se inspirovat šablonami ve standardní knihovně např. vector.
  • Parametrem šablony by měl být typ prvku obsaženého v datové struktuře.
  • Šablona by měla obsahovat iterátor pro procházení datové struktury.
  • Smysluplné použití přetypování operátorů je vítáno.
  • Využití vlastností jako je specializace šablon a šablonové meta-programování je též vítáno.
  • Tam kde je potřeba vyvolat vyjímku, nechť se tak stane - definujte si na to vlastní třídu.
  • Definujte kopírovací konstruktor.
  • Destruktor nutný
Příklady šablon
  • binární strom
  • obousměrná fronta
  • asociativní tabulka (hash tabulka)
  • řídká matice
  • matice
  • množina
  • vektor z lineární algebry a k němu vektorový obal
  • apod..
Pokročilejší úkoly
  • šablona, která dostane za parametr funkci a zapamatuje si n parametrů a návratových hodnot funkce a při opakovaném volání se stejnými parametry ihned vrátí návratovou hodnotu funkce, bez jejího samotného volání. + k tomuto úkolu napsat webovou stránku, jak to funguje. (nezaručuji, že lze implementovat)
Očekávám, že mi program pošlete na email a teprve poté se dohodneme na setkání, kde ověřím zda programu rozumíte a zapsání zápočtu.

Žádné komentáře:

Okomentovat