ПООП — разлика између измена

Извор: SI Wiki
Пређи на навигацију Пређи на претрагу
(dodat github FOLLOW ME PLS)
м (Nepotpuni odeljci)
 
(Није приказано 6 међуизмена 3 корисника)
Ред 1: Ред 1:
'''Практикум из објектно оријентисаног програмирања''' (ПООП) је изборни предмет у четвртом семестру.
{{Предмет
 
| назив    = Практикум из објектно оријентисаног програмирања
== Странице ==
| шифра    = 13С112ПООП
* [https://rti.etf.bg.ac.rs/rti/13S112POOP/ Страница предмета]
| семестар  = 4
* [https://rti.etf.bg.ac.rs/rti/13S112POOP/materijali/ Пројектни задаци из претходних година]
| статус    = изборни
| страница  = [https://rti.etf.bg.ac.rs/rti/13S112POOP/ rti.etf.rs/rti/13S112POOP]
| ЕСПБ      = 3
| одсек    = СИ
}}
'''Практикум из објектно оријентисаног програмирања''' је изборни предмет у четвртом семестру.


== Корисне везе ==
== Корисне везе ==
{{Материјали
* [https://drive.google.com/open?id=1Hurdf0yxDWLcFmWV1cQrcqtOWiAT1_iD ETF SI]
| vuk = 1Hurdf0yxDWLcFmWV1cQrcqtOWiAT1_iD
}}
* [[github:DusanTodorovic5/StockPriceSimulatorCpp|Пример C++ пројекта из 2021. године са GUI-јем]]
* [[github:DusanTodorovic5/StockPriceSimulatorCpp|Пример C++ пројекта из 2021. године са GUI-јем]]
* [[github:DusanTodorovic5/StockSimulator|Пример Java пројекта из 2021. године са GUI-јем]]
== Настава ==
{{непотпун одељак}}
<!-- које се области прелазе у којем блоку, која се развојна окружења користе, шта обично долази за који колоквијум, где могу да се нађу белешке и презентације, да ли се настава на предмету уопште држи (ако се не држи то треба назначити како би било јасно да викију не недостају информације по том питању), да ли су предавања или вежбе бескорисне -->


== Пројекат ==
== Пројекат ==
{{непотпун одељак}}
<!-- окружења за израду, шта се ради на домаћем, колико бодова носе, када се предају, како изгледа одбрана, да ли је обавезан -->
Модификације пројекта тренутно сакупљене на викију:
Модификације пројекта тренутно сакупљене на викију:
* [[ПООП/Лаб 1 2021|Лаб 2021]]
* [[ПООП/Лаб 1 2021|Лаб 2021]]
* [[ПООП/Јун_2021|Јун 2021]]
* [[ПООП/Јун 2021|Јун 2021]]
Пројектни задаци из претходних година се могу наћи [https://rti.etf.bg.ac.rs/rti/13S112POOP/materijali/ на страници предмета,] док се неки реализовани пројекти од претходних година могу наћи у [[#Корисне везе|одељку за корисне везе]].
 
=== Прављење ''Native'' библиотеке за Java пројекат ===
* Скините жељени JDK, идеално JDK 1.8.
* У Java пројекту, направите класу са ''native'' методом као на примеру klase <code>MojaKlasa</code>:
*: <syntaxhighlight lang="java" inline>public native int saberi(int a, int b);</syntaxhighlight>
* Покрените ''Command Prompt'' или ''Terminal'' и идите до жељеног директоријума са вашом Java класом.
* Покрените следећу команду
*: <syntaxhighlight lang="bash" inline>javac -h . MojaKlasa.java</syntaxhighlight>
* Добијени ''.h'' фајл прекопирајте у ваш C++ пројекат.
* Прављење библиотеке:
** Ако сте на ''Windows''-у, потребно је направити ''DLL (Dynamic Link Library)'' и то можете урадити помоћу ''Visual Studio''
**# Промените ''target platform'' на '''x64 Release'''
**# Потребно је да у ''Project Properties'' изаберете ''Include Directories'' под менијем ''VC++ Directories'' и додате путању до ''Include'' фолдера у инсталираном JDK-у. Такође додати фолдер ''include/win32''.
**# Остало је још да додате путању до библиотеке, и у истом менију ''VC++ Directories'' на пољу ''Library Directories'' додајте путању до ''Lib'' фолдера у инсталираном JDK-у.
** Ако сте на ''Linux'' или ''macOS'' потребно је само имати инсталиран JDK.
* Ако сте успешно направили жељену билиотеку (DLL или SO), сада је можете додати у окружење у коме радите. Потребно је додати фолдер где се библиотека налази у ''Project Path'' → ''Native Libraries''.
* На крају додајте у класу где је ''native'' методa статичко поље које ће учитати ту библиотеку (без екстензије).
<syntaxhighlight lang="java">
public class MojaKlasa{
static {
System.loadLibrary("MojaBiblioteka");
}
public native int saberi(int a, int b);
}
</syntaxhighlight>


== Начин оцењивања ==
== Начин оцењивања ==
Ред 20: Ред 56:
* Пројектни задатак из Jave (35 поена)
* Пројектни задатак из Jave (35 поена)
* Испит који се састоји из надоградње пројектног задатка из Jave (30 поена)
* Испит који се састоји из надоградње пројектног задатка из Jave (30 поена)
[[Категорија:Четврти семестар]]
[[Категорија:Изборни предмети]]

Тренутна верзија на датум 27. фебруар 2022. у 19:08

Практикум из објектно оријентисаног програмирања је изборни предмет у четвртом семестру.

Корисне везе

Настава

Овом одељку фале информације. Помозите SI Wiki тако што ћете додати потребне информације.

Пројекат

Овом одељку фале информације. Помозите SI Wiki тако што ћете додати потребне информације.

Модификације пројекта тренутно сакупљене на викију:

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

Прављење Native библиотеке за Java пројекат

  • Скините жељени JDK, идеално JDK 1.8.
  • У Java пројекту, направите класу са native методом као на примеру klase MojaKlasa:
    public native int saberi(int a, int b);
  • Покрените Command Prompt или Terminal и идите до жељеног директоријума са вашом Java класом.
  • Покрените следећу команду
    javac -h . MojaKlasa.java
  • Добијени .h фајл прекопирајте у ваш C++ пројекат.
  • Прављење библиотеке:
    • Ако сте на Windows-у, потребно је направити DLL (Dynamic Link Library) и то можете урадити помоћу Visual Studio
      1. Промените target platform на x64 Release
      2. Потребно је да у Project Properties изаберете Include Directories под менијем VC++ Directories и додате путању до Include фолдера у инсталираном JDK-у. Такође додати фолдер include/win32.
      3. Остало је још да додате путању до библиотеке, и у истом менију VC++ Directories на пољу Library Directories додајте путању до Lib фолдера у инсталираном JDK-у.
    • Ако сте на Linux или macOS потребно је само имати инсталиран JDK.
  • Ако сте успешно направили жељену билиотеку (DLL или SO), сада је можете додати у окружење у коме радите. Потребно је додати фолдер где се библиотека налази у Project PathNative Libraries.
  • На крају додајте у класу где је native методa статичко поље које ће учитати ту библиотеку (без екстензије).
public class MojaKlasa{
	static {
		System.loadLibrary("MojaBiblioteka");
	}
	public native int saberi(int a, int b);
}

Начин оцењивања

  • Пројектни задатак из C++-a (35 поена)
  • Пројектни задатак из Jave (35 поена)
  • Испит који се састоји из надоградње пројектног задатка из Jave (30 поена)