0% found this document useful (0 votes)
55 views2 pages

Objektno Orjentisano Programiranje: Univerzitet U Istočnom Sarajevu Elektrotehnički Fakultet

The document describes an object-oriented programming exam that tests the student's ability to define classes for geometric shapes. It provides instructions to: 1) Define a base Figura class with properties like description, color, and volume calculation methods. 2) Derive specific shape classes from Figura like Kvadar (cube), Valjak (cylinder), and KvadarSaUsjecenimValjkom (cube with cylinder cut out). 3) In the main method, prompt the user to enter shapes within a total volume limit and display grouped shapes by color, sorted by descending volume.

Uploaded by

Dragan Simic
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
55 views2 pages

Objektno Orjentisano Programiranje: Univerzitet U Istočnom Sarajevu Elektrotehnički Fakultet

The document describes an object-oriented programming exam that tests the student's ability to define classes for geometric shapes. It provides instructions to: 1) Define a base Figura class with properties like description, color, and volume calculation methods. 2) Derive specific shape classes from Figura like Kvadar (cube), Valjak (cylinder), and KvadarSaUsjecenimValjkom (cube with cylinder cut out). 3) In the main method, prompt the user to enter shapes within a total volume limit and display grouped shapes by color, sorted by descending volume.

Uploaded by

Dragan Simic
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 2

BODOVI ČITAV ISPIT UNIVERZITET U ISTOČNOM SARAJEVU

ELEKTROTEHNIČKI FAKULTET

Objektno orjentisano programiranje


01. septembar 2014 god.

Položili ako osvojite ≥ 50 bodova. Predviđeno vreme izrade je 2.5 sata.


Ukoliko završite za ≤ 1 sat, bodovi koje osvojite biti će pomnoženi sa faktorom 1.10.
Ukoliko završite za > 1 i ≤ 2 sata, bodovi koje osvojite biti će pomnoženi sa faktorom 1.05.
Ukoliko se vaš kod ne bude mogao kompajlirati bez grešaka, bodovi koje osvojite biće pomnoženi sa koeficijentom 0.90.

Napisati program za pakovanje figura...

5 a) Sve klase koje budete pisali treba da se nalaze u namespace-u sa oznakom XX, gdje je XX ime
klase. Namespace klase Program treba preimenovati u ETF.NN.
*Napomena: Ukoliko ste dobili neke klase, njihove namespace-ove NE SMIJETE preimenovati.

20 b) Definisati klasu Figura:


[1] Klasa treba da sadrži sledeće promenljive/polja:
 opis (ne prazan string min. dužine 3 znaka koji mora početi velikim slovom) – nije vidljivo na nivou
objekta
 boja (string) – nije vidljivo na nivou izvedenih klasa i objekata
[2] Za sve promenljive kreirati odgovarajuće property-e (voditi računa o prosleĎenim vrijednostima):
 OpisFigure
 BojaFigure
 ZapreminaFigure_m3
 ZapreminaFigure_cm3
[3] Napisati metodu/e:
 IzracunajZapreminu_cm3() – vraća realan broj koji predstavlja zapreminu figure.
[4] Predefinisati metodu ToString() da vraća string u formatu
<Opis> (<Boja>): <Zapremina> m3
[5] Predefinisati operator + (ako je potrebno i ostale) tako da sabira zapremine dvije figure, a kao rezultat
vraća ukupnu zapreminu.
[6] Predefinisati operator + (ako je potrebno i ostale) tako da sabira zapreminu figure i realnog broja (kada se
naĎe izmeĎu objekta tipa Figura i realnog broja), a kao rezultat vraća ukupnu zapreminu.
[7] Predefinisati operator < tako da poredi dvije figure po zapremini.
*Napomena: Omogućiti korisniku da može da predefiniše SVE funkcije koje budete pisali, osim ako drugačije
nije naglašeno uz samu funkciju.

10 c) Definisati klasu Kvadar:


[1] Klasa treba da sadrži promenljive/polja:
 opis (ne prazan string min. dužine 3 znaka koji mora početi velikim slovom) – nije vidljivo na nivou
objekta
 boja (string) – nije vidljivo na nivou izvedenih klasa i objekata
 a, b, c (realni brojevi) – stranice kvadra u cm, vidljivo na nivou bazne i izvedenih klasa - ReadOnly
[2] Za sve promenljive kreirati odgovarajuće property-e (voditi računa o prosleĎenim vrijednostima):
 OpisFigure
 BojaFigure
 ZapreminaFigure_m3
 ZapreminaFigure_cm3
 StranicaA
 StranicaB
 StranicaC
[3] Napisati 2 konstruktora, jedan kome se prosleĎuju svi potrebni parametri i jedan koji za opis figure uzima
„Kvadar boje: <boja>“
[4] Napisati metodu/e:

*Napomena za SVE studente: Imena svih promjenjivih koje budete koristili, ukoliko njihova imena nisu data u tekstu
zadatka, treba da budu smislena (npr. NE označavati broj studenata sa n, nego sa br_studenata ili broj_studenta,
br_stud, i sl.). Samo brojači mogu imati imena tipa i, j, k, ...
 IzracunajZapreminu_cm3() – zapremina kvadra jednak je proizvodu njegovih stranica (V=abc).
[5] Predefinisati metodu ToString() da vraća string u formatu
<Opis> (<Boja>): <Zapremina> m3
[6] Predefinisati operator + (ako je potrebno i ostale) tako da sabira zapremine dvije figure, a kao rezultat
vraća ukupnu zapreminu.
[7] Predefinisati operator + (ako je potrebno i ostale) tako da sabira zapreminu figure i realnog broja (kada se
naĎe izmeĎu objekta tipa Figura i realnog broja), a kao rezultat vraća ukupnu zapreminu.
[8] Predefinisati operator < tako da poredi dvije figure po zapremini.
*Napomena: Omogućiti korisniku da može da predefiniše SVE funkcije koje budete pisali, osim ako drugačije
nije naglašeno uz samu funkciju.

10 d) Definisati klasu Valjak:


[1] Klasa treba da sadrži promenljive/polja:
 opis (ne prazan string min. dužine 3 znaka koji mora početi velikim slovom) – nije vidljivo na nivou
objekta
 boja (string) – nije vidljivo na nivou izvedenih klasa i objekata
 r, h (realni brojevi) – poluprečnik i visina, respektivno, u cm vidljivo na nivou bazne i izvedenih klasa
- ReadOnly
[2] Za sve promenljive kreirati odgovarajuće property-e (voditi računa o prosleĎenim vrijednostima):
 OpisFigure
 BojaFigure
 ZapreminaFigure_m3
 ZapreminaFigure_cm3
 Poluprečnik
 Prečnik
 Visina
[3] Napisati 2 konstruktora, jedan kome se prosleĎuju svi potrebni parametri i jedan koji za opis figure uzima
„Valjak boje: <boja>“
[4] Napisati metodu/e:
 IzracunajZapreminu_cm3() – zapremina valjka jednak je proizvodu njegove baze i visine
(V=Bh=r2πh). (Konstantu π (PI) imate definisanu u klasi Math)
[5] Predefinisati metodu ToString() da vraća string u formatu
<Opis> (<Boja>): <Zapremina> m3
[6] Predefinisati operator + (ako je potrebno i ostale) tako da sabira zapremine dvije figure, a kao rezultat
vraća ukupnu zapreminu.
[7] Predefinisati operator + (ako je potrebno i ostale) tako da sabira zapreminu figure i realnog broja (kada se
naĎe izmeĎu objekta tipa Figura i realnog broja), a kao rezultat vraća ukupnu zapreminu.
[8] Predefinisati operator < tako da poredi dvije figure po zapremini.
*Napomena: Omogućiti korisniku da može da predefiniše SVE funkcije koje budete pisali, osim ako drugačije
nije naglašeno uz samu funkciju.

15 e) Definisati klasu KvadarSaUsjecenimValjkom koja treba da ima sve osobine klasa Kvadar i Valjak, s
napomenom da se zapremina računa kao razlika zapremine kvadra i valjka.

f) U Main metodi omogućiti korisniku da unese ukupnu zapreminu koju ne želi da prekorači pri unosu, a nakon
20 toga mu omogućiti da unosi proizvoljan broj figura dok ne prekorači granicu sa sumom njihovih zapremina.
*Napomena: koristiti predefinisane operatore i metode.

g) Proći kroz sve unijete figure, grupisati ih po boji i sortirati ih prema zapremini u opadajućem redoslijedu.
20 Grupisan i sortiran spisak prikazati u konzoli.
*Napomena: koristiti predefinisane operatore i metode.

*Napomena za SVE studente: Imena svih promjenjivih koje budete koristili, ukoliko njihova imena nisu data u tekstu
zadatka, treba da budu smislena (npr. NE označavati broj studenata sa n, nego sa br_studenata ili broj_studenta,
br_stud, i sl.). Samo brojači mogu imati imena tipa i, j, k, ...

You might also like