[ ivanafunky @ 18.06.2008. 16:02 ] @
Ljudi, molim vas pomagajte ovo mi treba hitno!!!! sutra imam ispit... Ovako mi glasi zadatak: Projektovati na jeziku c++ klase sa sledecim opisom: Tacka u ravni je zadata x i y koordinatama i podrazumevane vrednosti su(0,0). Tacka moze da se konstruise i zadavanjem dve koordinate. Moze da se ispita da li tacka pripada prvom kvadrantu (smatrati da nenegativni delovi osa pripadaju prvom kvadrantu). Datoteka koja sadrzi tacke ima u svakom redu po jednu tacku, tj. dva podatka x i y koordinate. Postoje operatori za upis i citanje tacke iz fajla. Apstraktna figura ima mogucnost izracunavanja velicine koja je jednaka rastojanju izmedju dve medjusobno najudaljenije tacke figure, metode za ucitavanje figure iz fajla i upisivanje figure u fajl i metod za ispitivanje da li figura pripada prvom kvadrantu. Krug je figura odredjena centrom i poluprecnikom, podrazumeva se centar(1,1), poluprecnik 1. Datoteka sa krugovima sadrzi po jedan krug u svakom redu, prvo je centar kruga (x i y koordinate), a zatim poluprecnik. Postoje operatori za upis i citanje kruga iz fajla. Trougao je figura odredjena sa 3 tacke, podrazumevaju se tacke(0,0), (0,1), (1,0). Datoteka sa trouglovima sadrzi po jedan trougao u svakom redu , tj. 3 tacke. Postoje operatori za upis i citanje trougla iz fajla. Sastavite na jeziku c++ glavni program koji preko glavnog ulaza procita maksimalnu velicinu figure i imena datoteka u kojima se nalaze figure. Datoteke koje se ucitavaju imaju samo jednu vrstu figura sto je oznaceno u prvom redu datoteke: “T” ako sadrzi trouglove i “K” ako sadrzi krugove. Iz fajlova se ucitavaju figure koje se zajednicki obradjuju. U jedan fajl se upisuju sve figure cije sve tacke pripadaju prvom kvadrantu, i cija je velicina manja od maksimalne zadate velicine. Greske obradjivati izuzecima. Napisala sam klase, al ne znam kako da uradim glavni program. Nadam se da ce mi neko pomoci... Code: Tacka.h #pragma once #include <iostream> using namespace std; class Tacka { private: double m_x; double m_y; public: Tacka(); Tacka(double x, double y); Tacka(const Tacka& t); virtual ~Tacka(); bool uPrvomKvadrantu(); double x(); double y(); void x(double x); void y(double y); double rastojanje(const Tacka& t); void read(istream& in); void write(ostream& out)const; friend istream& operator>>(istream& in, Tacka& t); friend ostream& operator<<(ostream& out, const Tacka& t); }; Tacka.cpp #include "StdAfx.h" #include "Tacka.h" #include <math.h> Tacka::Tacka() : m_x(0), m_y(0) { } Tacka::Tacka(double x, double y) :m_x(x), m_y(y) { } Tacka::~Tacka() { } Tacka::Tacka(const Tacka& t) : m_x(t.m_x), m_y(t.m_y) { } bool Tacka::uPrvomKvadrantu() { if(m_x >= 0 && m_y >= 0) return true; return false; } double Tacka::x() { return m_x; } double Tacka::y() { return m_y; } void Tacka::x(double x) { m_x=x; } void Tacka::y(double y) { m_y=y; } double Tacka::rastojanje(const Tacka& t) { double dx = m_x - t.m_x; double dy = m_y - t.m_y; return sqrt(dx*dx + dy*dy); } void Tacka::read(istream& in) { in >> m_x >> m_y; } void Tacka::write(ostream& out)const { out << m_x << ' ' << m_y << ' ' ; } istream& operator>>(istream& in, Tacka& t) { t.read(in); return in; } ostream& operator<<(ostream& out, const Tacka& t) { t.write(out); return out; } AFigura.h #pragma once #include <iostream> using namespace std; class AFigura { public: AFigura(); virtual ~AFigura(); virtual double rastojanje(const AFigura& f)=0; virtual bool uPrvomKvadrantu()=0; virtual void read(istream& in)=0; virtual void write(ostream& out)const=0; friend istream& operator>>(istream& in, AFigura& f); friend ostream& operator<<(ostream& out, const AFigura& f); }; AFigura.cpp #include "StdAfx.h" #include "AFigura.h" AFigura::AFigura() { } AFigura::~AFigura() { } istream& operator>>(istream& in, AFigura& f) { f.read(in); return in; } ostream& operator<<(ostream& out, const AFigura& f) { f.write(out); return out; } Trougao.h #pragma once #include "AFigura.h" #include "Tacka.h" class Trougao :public AFigura { private: Tacka m_a; Tacka m_b; Tacka m_c; public: Trougao(); virtual ~Trougao(); Trougao(const Tacka& a, const Tacka& b, const Tacka& c); virtual bool uPrvomKvadrantu(); virtual double velicina(); void read(istream& in); void write(ostream& out)const; }; Trougao.cpp #include "StdAfx.h" #include "Trougao.h" Trougao::Trougao() : m_a(0,0), m_b(0,1), m_c(1,0) { } Trougao::~Trougao() { } Trougao::Trougao(const Tacka& a, const Tacka& b, const Tacka& c) : m_a(a), m_b(b), m_c(c) { } bool Trougao::uPrvomKvadrantu() { if(m_a.uPrvomKvadrantu()&& m_b.uPrvomKvadrantu()&& m_c.uPrvomKvadrantu()) return true; return false; } double Trougao::velicina() { double r1 = m_a.rastojanje(m_b); double r2 = m_a.rastojanje(m_c); double r3 = m_b.rastojanje(m_c); double r = (r1 > r2) ? r1 : r2; r = (r > r3) ? r : r3; return r; } void Trougao::read(istream& in) { in >> m_a >> m_b >> m_c; } void Trougao::write(ostream& out)const { out << m_a << ' ' << m_b << ' ' << m_c << ' '; } Krug.h #pragma once #include "afigura.h" #include "Tacka.h" class Krug : public AFigura { private: Tacka m_centar; double m_r; public: Krug(); Krug(const Tacka& centar, double r); virtual ~Krug(); virtual bool uPrvomKvadrantu(); virtual double velicina(); void read(istream& in); void write(ostream& out)const; }; Krug.cpp #include "StdAfx.h" #include "Krug.h" Krug::Krug() : m_centar(1,1), m_r(1) { } Krug::~Krug() { } Krug::Krug(const Tacka& centar, double r) : m_centar(centar), m_r(r) { } bool Krug::uPrvomKvadrantu() { if(m_centar.x() >=0 && m_centar.y() >=0 && m_centar.x() >= m_r && m_centar.y() >= m_r) return true; return false; } double Krug::velicina() { return 2* m_r; } void Krug::read(istream& in) { in >> m_centar >> m_r; } void Krug::write(ostream& out)const { out << m_centar << ' ' << m_r << ' ' ; } Glavni program #include "stdafx.h" #include <stdio.h> #include "Tacka.h" #include "AFigura.h" #include "Krug.h" #include "Trougao.h" int main(int argc, _TCHAR* argv[]) { ODAVDE NISTA NE ZNAM!!!!!!!!!! } return 0; } [Ovu poruku je menjao ivanafunky dana 18.06.2008. u 20:58 GMT+1] [Ovu poruku je menjao X Files dana 19.06.2008. u 11:28 GMT+1] |