INMNPOOP Objektové programování

Obchodně podnikatelská fakulta v Karviné
zima 2017
Rozsah
2/1/0. 4 kr. Ukončení: zk.
Vyučující
Ing. Radomír Perzina, Ph.D. (přednášející)
Ing. Radomír Perzina, Ph.D. (cvičící)
Garance
Ing. Radomír Perzina, Ph.D.
Katedra informatiky a matematiky – Obchodně podnikatelská fakulta v Karviné
Kontaktní osoba: doc. Mgr. Petr Suchánek, Ph.D.
Omezení zápisu do předmětu
Předmět je nabízen i studentům mimo mateřské obory.
Mateřské obory/plány
Cíle předmětu
Cílem předmětu je navázat na znalosti ze strukturovaného programování a seznámit studenty s postupy objektově orientovaného programování, naučit je vytvářet a používat příslušné datové typy, pracovat s třídami a dynamickými typy, využívat nových prostředků OP, jimiž jsou dědičnost a polymorfismus. Dále se studenti seznámí s pokročilejšími vlastnostmi jazyka C++, mnohem detailněji bude v předmětu rozebrána otázka rozdílností jazyků C++ a JAVA. Cílem předmětu je rovněž objasnit práci se šablonami a objektovými datovými proudy (soubory).
Osnova
  • 1. Základní prvky jazyků C++, C# a JAVA.
    2. Zapouzdření. Objekty - objektové typy, třídy. Vztahy mezi třídami.
    3. Konstruktor, destruktor.
    4. Operátory, indexování, volání funkce, přetypování.
    5. Dynamické datové typy. Iterátory, kontejnery. Operátory pro správu paměti. Operátory pro alokaci polí.
    6. Ukazatele a reference.
    7. Vazby (časná a pozdní). Volání metod. Virtuální metody a polymorfismus. Abstraktní třídy. Metody ošetření zpráv od Windows.
    8. Vícenásobná dědičnost. Instance, konstruktory a destruktory vícenásobné dědičnosti. Přetypování ukazatelů.
    9. Problémy s vícenásobnou dědičností.
    10. Šablony v C++.
    11. Prostory jmen. Soubory a proudy v C++. Vstup a výstup v C++.
    12. Dynamická identifikace typů v C++. Operátory pro bezpečnější přetypování.
    13. Implementace konkrétní aplikace v C++.

    1. Základní prvky jazyků C++, C# a JAVA. Kompilátory. Metody návrhu programů v C++. Standardní knihovna C++ a standardní knihovna šablon. Rozdíl mezi procedurálním a objektovým programováním.
    2. Zapouzdření. Objekty - objektové typy, deklarace třídy, instance třídy, komponenty tříd. Metody - deklarace metod, definování metod. Uživatelské datové typy. Vztahy mezi třídami (asociace, kompozice, dědičnost) a návrh programu z hlediska OOP.
    3. Konstruktor, destruktor. Statické atributy a metody. Přetížení konstruktorů a metod. Dědičnost.
    4. Operátory - přiřazovací, základní binární, unární, inkrementace a dekrementace, indexování, volání funkce, přetypování. Přetížení operátorů, friend funkce.
    5. Dynamické datové typy - seznam, zásobník, fronta, strom, množina, kupa, slovník. Iterátory, kontejnery. Přístup ke vnořeným typům (public, protected, private). Dynamická alokace paměti. Operátory pro správu paměti (new, delete), operátory pro alokaci polí.
    6. Automatické a třídní ukazatele. Objekty a klíčové slovo this. Ukazatele na třídu, ukazatele na data, ukazatele na metody či prosté funkce.
    7. Abstraktní třídy. Virtuální metody. Nevirtuální metody. Časná a pozdní vazba. Polymorfismus. Metody pro ošetření zpráv od Windows.
    8. Vícenásobná dědičnost. Instance, konstruktory a destruktory vícenásobné dědičnosti. Přetypování ukazatelů.
    9. Problémy spojené s vícenásobnou dědičností a jejich řešení (konflikt jmen, opakovaná dědičnost, virtuální dědičnost).
    10. Šablony v C++. Deklarace šablony, šablony řadových funkcí, šablony objektových typů a jejich metod, šablony v rozsáhlých programech, šablony v knihovnách.
    11. Prostory jmen a jejich použití. Soubory a proudy v C++, vstup a výstup aplikace.
    12. Dynamická identifikace typů v C++. Operátory pro bezpečnější přetypování (static_cast, const_cast, reinterpreter_cast, dynamic_cast).
    13. Implementace konkrétní aplikace v C++ s využitím polymorfismu a abstraktní třídy.
Literatura
    povinná literatura
  • ECKEL, B., ALLISON C. Thinking in C++, Volume 2: Practical Programming. Prentice Hall, 2003. ISBN 978-0130353139. info
  • ECKEL, B. Myslíme v jazyku C++. Praha: Grada Publishing, a.s., 2000. ISBN 80-247-9009-2. info
  • ECKEL, B. Thinking in C++: Introduction to Standard C++, Volume One (2nd Edition) (Vol 1). Prentice Hall, 2000. ISBN 978-0139798092. info
  • PECINOVSKÝ, R., VIRIUS, M. Objektové programování 1. Grada, Praha, 1996. ISBN 80-7169-366-9. info
  • PECINOVSKÝ, R., VIRIUS, M. Objektové programování 2. Grada, Praha, 1996. ISBN 80-7169-436-3. info
    doporučená literatura
  • STROUSTRUP, B. The C++ Programming Language, Special Edition. Indianapolis: AT&T - Addison Wesley, Inc., 2001. ISBN 0-201-70073-5. info
  • KOENIG, A., MOO, B. Accelerated C++: Practical Programming by Example. Addison-Wesley Professional, 2000. ISBN 978-0201703535. info
  • VIRIUS, M. Programování v C++. ČVUT Praha, 1998. ISBN 80-0101-874-1. info
Výukové metody
Demonstrace dovedností
Seminární výuka
Metody hodnocení
Známkou
Informace učitele
https://elearning.opf.slu.cz/course/view.php?id=598
Seminární práce, zápočet, min 50% účast na seminářích
Ostatní studijní zátěž: vyhledávání a zpracování zdrojů na Internetu.

AktivityNáročnost [h]
Ostatní studijní zátěž41
Přednáška26
Seminář13
Zkouška40
Celkem120
Další komentáře
Předmět je dovoleno ukončit i mimo zkouškové období.
Předmět je zařazen také v obdobích zima 2014, zima 2015, zima 2016, zima 2018, zima 2019.