←
↑
⇑
↓
→

Ласло Краус |
Објектно програмирање 1
Домаћи задатак за 2013/14
(важи до маја 2015.)
|
Поставка задатка
Пројектовати и реализовати на језику C++ следеће класе:
- Генерички низ може да садржи задат број података неког типа. Ствара се празан задатог капацитета. Може да се дохвати капацитет низа, број попуњених места, да се дода нови податак на крај низа, да се приступи податку и да се извади податак са задатим редним бројем и да се низ упише у излазни ток (један елемент по реду).
- Генерички променљиви низ је низ чији капацитет се по потреби повећава, односно смањује за задити број места. Може да се на крај додаје садржај другог задатог низа.
- Апстрактно дело има јединствен, аутоматски генерисан целобројан идентификатор и задатог имена аутора и наслова (ниске). Може да се дохвати идентификатор, једнословна ознака врсте дела, име аутора и наслов дела, да се одреди дебљина дела, да се направи копија дела и да се дело упише у излазни ток (пишу се ознака врсте и идентификатор дела, име аутора, наслов и дебљина).
- Књига је дело које има задат број страница и задату дебљину, који могу да се дохвате. У излазни ток пише се и број страница.
- Диск је дело које садржи мултимедијални садржај задатог трајања и има задату дебљину, који могу да се дохвате. У излазни ток се пише и трајање.
- Комплет је дело које садржи произвољан број дела. Аутор представља уредника комплета. Ствара се празан после чега дела се додају појединачно. У излазни ток у првом реду пишу се заједнички подаци за сва дела, а у наредне редове (увучено за пар словних места) садржана дела ред по ред.
- Полица има задати редни број и може да садржи произвољан број (показивача на) дела до задате дужине за смештање дела. Ствара се празна. Може да се стави дело на прво слободно место, да се ствара низ (показивача на) дела задатог аутора (дела остају на полици и не постају власништво створеног низа), да се скине са полице дело са задатим идентификтором, да се полица испрази и да се упише у излазни ток. У првом реду се пише редни број и дужина полице, број дела на полици и њихова укупна дебљина, а у наредним редовима појединачна дела. Полица не може да се копира ни на који начин.
- Библиотека има назив и задат број полица задате, међусобно једнаке, дужине. Може да се дохвати број полица у библиотеци, да се приступи полици са задатим редним бројем, да се набави задати број примерака задатог дела који се стављају на полице (ако се једна полица препуни, наставља се са другом), да се ствара низ (показивача на) дела задатог аутора (дела остају на полици и не постају власништво створеног низа), да се део са задатим идентификатором извади из библиотеке, да се задато дело стави у библиотеку и да се библиотека упише у излазни ток (пишу се назив библиотеке и садржане полице). Библиотека не може да се копира ни на који начин.
Написати на језику C++ интерактиван програм (са менијем) за руковање библиотеком. На почетку програма потребно је изградити почетни садржај библиотеке од неколико дела коришћењем константних параметара (без читања с главног улаза).
а) Детаљи решења (унутрашња структура објеката, списак операција, начин спољашњег приказивања објеката) препуштају се студентима. Све класе треба да буду снабдевене неопходним елементима за безбедно коришћење у било ком окружењу (конструктори, деструктор, додела вредности). Конфликтне ситуације разрешавати изузецима типа класа специјално пројектованих за то. Користити операторске функције где је примерено.
б) Решење домаћег задатка се припрема у потребном броју датотека са изворним текстовима програма (не користити редове дужих од 70 знакова).
в) За пролазну оцену неопходно је да програм може да изврши бар нешто од очекиване функционалности.
г) Домаћи задаци се предају слањем електронском поштом на адресу kraus@etf.rs у облику једне архивске датотеке (.zip
или .rar
). У пошиљку не укључивати пројектну датотеку, изводљиви облик програма итд., већ само изворне текстове програма (.h
и .cpp
).
д) Недозвољена сарадња међу студентима се кажњава дисквалификацијом свих учесника.
ђ) Студенти који испит положе кроз колоквијуме (само у јунском испитном року) домаће задатке треба да пошаљу у року који ће бити објављен заједно са резултатима другог колоквијума. Тај рок неће бити дужи од два до три дана. Одбрана домаћих задатака биће пар дана после тог рока.
е) Остали студенти решења домаћих задатака треба да пошаљу најкасније три дана пре полагања испита. Без унапред предатог домаћег задатка не може да се полаже испит. Домаћи задаци ће се бранити пар дана после успешно положеног испита. Ако се испит не положи, приликом следећег полагања потребно је поново послати домаћи задатак.
(садржај)
←
↑
⇑
↓
→
Аутор: Ласло Краус
Е-пошта: kraus@etf.rs
Copyright © 2014, Laslo Kraus
Последња ревизија: 9.5.2014.