Објектно оријентисано програмирање

ID: 7094
Врста предмета: стручно-апликативни
Носилац предмета: Радојевић Љ. Слободан
Извођачи: Радојевић Љ. Слободан
Контакт особа: Радојевић Љ. Слободан
Ниво студија: Основне академске студије – Информационе технологије у машинству
ЕСПБ: 5
Облик завршног испита: писмени+усмени
Катедра: Катедра за информационе технологије у машинству

Извођења

Циљ

Полазници курса идеју контејнера морају прихватити и користити. Коришћење сопственог система класа или унапред постављеног система у процесу програмирања се подразумева. Полазници курса коришћење меморије контролишу методима у контејнеру окрећући се објашњењу шта треба да се уради. Обрасци - темплејти, као и патерни ће бити основа напредног програмирања у овом курсу.

Исход

Полазници курса ће ефикасно користити основне контејнере као и посебне контејнере у контроли објеката система класа. Усвојиће коришћење темплејта и патерна и разликовати и решавати проблеме левог и десног додељивања.

Садржај теоријске наставе

1. Input & Output основе. Основни типови. Увод у std::vector. 2. auto дедукција типа. Функције и преоптерећење. Употреба const. 3. Управљање меморијом. Динамичка алокација меморије у std::vector. 4. std::string. Референце. Пллитко и дубоко копирање. 5. <fstream>. Преоптерећење << и >>. getline( istream&, string&, stopat ). 6. Klase. Ограничења у формирању објеката. Ограничења у стварању конструктора и деструктора. 7. Основе генеричког програмирања, темплејти. Функцијски темплејти и темплејти класа. 8. ADL и последице. 9. Студија случаја GUI менија 10. Студија случаја повезивање са базом података.

Садржај практичне наставе

1. Једноставни читачи. std::vector и његови методи. Елемент вектора је објекат. 2. auto. Функције и преоптерећење. Употреба const. 3. Управљање меморијом. Понашање std::vector, контрола и избегавање грешака. 4. std::string. Референце. Приказ оба копирања. 5. оfstream и ifstream. употреба getline( istream&, string&, stopat ). 6. Klase. Приказ ограничења у формирању објеката. Када конструктори и деструктори греше. 7. Примери функцијски темплејти. Примери темплејта класа. 8. Избегавање ADL и примена неких других принципа идентификације аргумената. 9. Равни једноставни мени 10. Повезивање са SQL-om.

Услов похађања

Објектно оријентисана парадигма.

Ресурси

C++11, C++14, C++17, C++20 gcc/g++ VIM, Kate, Qt Creator, Visual Studio Code

Фонд часова

Укупан фонд часова: 65

Активна настава (теоријска)

Ново градиво: 30
Разрада и примери (рекапитулација): 0

Активна настава (практична)

Аудиторне вежбе: 20
Лабораторијске вежбе: 0
Рачунски задаци: 0
Семинарски рад: 0
Пројекат: 0
Консултације: 0
Дискусија/радионица: 0
Студијски истраживачки рад: 0

Провера знања

Преглед и оцена рачунских задатака: 0
Преглед и оцена лабораторијских извештаја: 0
Преглед и оцена семинарских радова: 0
Преглед и оцена пројекта: 0
Колоквијум са оцењивањем: 10
Тест са оцењивањем: 0
Завршни испит: 5

Провера знања (укупно 100 поена)

Активност у току предавања: 0
Тест/колоквијум: 70
Лабораторијска вежбања: 0
Рачунски задаци: 0
Семинарски рад: 0
Пројекат: 0
Завршни испит: 30
Услов за излазак на испит (потребан број поена): 70

Литература

Bjarne Stroustrup; Programming: Principles and Practice Using C++; Addison-Wesley; Bjarne Stroustrup; Tour of C++; Addison-Wesley; Stanley Lippman, Josée Lajoie, Barbara Moo; C++ Primer; Addison-Wesley; C++ Notes for Professionals; GoalKicker.com