Evo zadatka:
Na osnovu dijagrama klasa sa slike treba realizovati program kojim se implementiraju sve
navedene klase. Svaka klasa treba (minimalno) da ima članove prikazane na dijagramu.
Klasa Poligon treba da se definiše kao apstraktna klasa (funkcije članice su čiste virtuelne).
Ostale klase treba da se implementiraju kao konkretne klase, tj. odgovarajuće čiste virtuelne
funkcije članice klase Poligon treba da se definišu (redefinišu) u izvedenim klasama.
Klasa Tacka predstavlja apstrakciju tačaka u koordinatnom sistemu x0y. Svaka tačka opisana je
uređenim parom (x,y), gdje x i y predstavljaju odgovarajuće koordinate u sistemu x0y.
Svaki objekat klase Poligon predstavlja kompoziciju od n (n≥2) tačaka (što je na UML dijagramu
klasa i prikazano kao odgovarajuća kompozicija).
Klasa Duz predstavlja apstrakciju duzi u ravni x0y. Svaku duz definišu dvije tačke: (x1,y1)-
(x2,y2). Za svaku duž može da se dobije dužina.
Klasa Trougao predstavlja apstrakciju trougla u ravni x0y. Svaki trougao definišu tri
(nekolinearne) tačke: (x1,y1)-(x2,y2)-(x3,y3). Za svaki trougao može da se dobije obim i površina.
Klasa Četvorougao predstavlja apstrakciju četvorougla u ravni x0y. Svaki četvorougao definišu
četiri tačke (među kojima ne postoje tri kolinearne tačke): (x1,y1)-(x2,y2)-(x3,y3)-(x4,y4). Za svaki
četvorougao može da se dobije obim i površina.
Ovo je moj pokušaj:
#include <iostream>
using namespace std;
class Tacka
{
public:
Tacka(double xx,double yy): x(xx),y(yy) {}
protected:
double x;
double y;
};
class Poligon : public Tacka
{
public:
virtual void print()=0;
virtual double obim() =0;
virtual double povrsina() =0;
Tacka *tacka;
};
class Duz : public Poligon
{
public:
Duz(double x1,double y1,double x2,double y2): Tacka A(x1,y1),Tacka B(x2,y2) {}
void print() { cout<<"Duz sa kordinatama:"<<endl;
}
};