consolidate all repos to one for archive
This commit is contained in:
56
semester_2/programiranje_2/naloga0601/README.md
Normal file
56
semester_2/programiranje_2/naloga0601/README.md
Normal file
@@ -0,0 +1,56 @@
|
||||
Napišite enum razred ColorCode, ki ima vrednost:
|
||||
Red = 31,
|
||||
Green = 32,
|
||||
Blue = 34
|
||||
Default = 39
|
||||
|
||||
Priložen imate razed PrintUtility, ki ga vključite v svoj projekt, saj ga boste pri tej nalogi uporabili. Le-ta nam bo omogočil, da izpisujemo lahko barvno besedilo v konzoli. Vendar, da bo to delovalo, je potrebno na začetek funkcije main dodati vrstico:
|
||||
system(("chcp "s + std::to_string(65001)).c_str());.
|
||||
Lahko se zgodi, da v primeru uporabe kakšnega drugega programa (kaj drugega kot CLion) ta funkcionalnost ne bo delala.
|
||||
|
||||
Napišite razred Shape2D, ki ima:
|
||||
instančno spremenljivko color (tip ColorCode),
|
||||
konstruktor z 1 parametrom,
|
||||
abstraktno metodo getSurfaceArea in
|
||||
abstraktno metodo draw.
|
||||
|
||||
Napišite razred Rectangle, ki deduje iz razreda Shape2D in ima:
|
||||
dodatni instančni spremenljivki width in height,
|
||||
konstruktor s 3 parametri,
|
||||
implementirani metodi getSurfaceArea in draw,
|
||||
metodo toString.
|
||||
|
||||
Z metodo getSurfaceArea želimo dobiti vrednost ploščine lika.
|
||||
|
||||
V metodi draw je pričakovano, da izrišemo lik (lahko s pomočjo zvezdic).
|
||||
|
||||
Napišite razred Canvas, ki ima:
|
||||
instančno spremenljivko shapes (tip vector<Shape2D*>),
|
||||
metodo addShape, ki doda lik v shapes, in
|
||||
metodo print, ki izriše vse like.
|
||||
|
||||
Dodajte še sami eni razred, ki bo dedoval iz razreda Shape2D.
|
||||
|
||||
V glavnem programu ustvarite en objekt tipa Canvas in ga napolnite z vsaj 5 liki.
|
||||
|
||||
Za nalogo narišite UML diagram. Lahko na list papirja, vendar ga je treba slikati ali skenirati in tudi oddati na eštudij. Lahko pa ga ustvarite s pomočjo https://app.diagrams.net/ ali s podobno aplikacijo.
|
||||
|
||||
Pri reševanju naloge upoštevajte vso dosedaj pridobljeno znanje (uporaba inicializacijskega seznama, konstantne metode, zapišite si metode get/set tam, kjer jih potrebujete itd.).
|
||||
|
||||
Primer izpisa glavnega programa.
|
||||
|
||||
int main() {
|
||||
system(("chcp "s + std::to_string(65001)).c_str());
|
||||
|
||||
Canvas c;
|
||||
c.addShape(new Rectangle(ColorCode(ColorCode::Green), 5, 2));
|
||||
c.addShape(new Rectangle(ColorCode(ColorCode::Blue), 10, 5));
|
||||
c.print();
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
Uporabi:
|
||||
|
||||
PrintUtility.cpp
|
||||
PrintUtility.h
|
||||
Reference in New Issue
Block a user