Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- Descrivere la figura geometrica circonferenza seguendo queste indicazioni
- - si dovrá poter creare una circonferenza in questi modi :
- * fornendo le coordinate del centro e la misura del raggio
- * fornendo solo la misura del raggio: sará creata una circonferenza
- centrata nell'origine
- * senza fornire alcun parametro: sará creata la circonferenza
- centrata nell'origine e raggio pari ad 1 (circonferenza goniometrica)
- Nota: una volta creata una circonferenza é immutabile
- - in ogni momento sará possibile
- * estrarre un qualunque dato della circonferenza
- * calcolare l'area
- * calcolare il perimetro
- * confrontare due circonferenze con il seguente criterio: una
- circonferenza é maggiore di un altra se il suo raggio é maggiore
- (implementare un metodo classico e poi con un overload di un
- operatore
- Sfruttando la classe precedente descrivere con una classe una corona
- circolare (la parte che risulta dalla sovrapposizione di due circonferenze
- concentriche ed esterna alla piú piccola e che ha una forma ad anello) :
- - si dovrá poter creare una circonferenza in questi modi:
- * passando al costruttore i due cerchi che definiscono la corona
- * passando le coordinate del centro e delle misure due raggi
- metodi:
- * area
- * spessore
- * perimetro interno corona
- * perimetro esterno
- * confrontare due corone con il seguente criterio: una
- corona é maggiore di un altra se e "piu' spessa"
- */
- #include <iostream>
- #include <cmath>
- #include <cstdlib>
- using namespace std;
- class Circonferenza
- {
- private:
- int xCentro = 0, yCentro = 0;
- int raggio = 0;
- public:
- Circonferenza(int _xCentro, int _yCentro, int _raggio)
- {
- if (_raggio <=0) throw string("raggio <=0");
- xCentro = xCentro;
- yCentro = _yCentro;
- raggio = _raggio;
- }
- Circonferenza() : Circonferenza(0,0,1) {}
- //costruttore per circonferenze
- //centrate nell'origine
- Circonferenza(int raggio) : Circonferenza(0,0,raggio) {}
- //GETTERS
- int getXCentro() {return xCentro;}
- int getYCentro() {return yCentro;}
- int getRaggio() {return raggio;}
- double Perimetro() { return 2*raggio*3.14; }
- double Area() { return 3.14 * raggio * raggio; }
- bool maggioreDi(Circonferenza altraCrf)
- {
- return (raggio > altraCrf.raggio);
- }
- bool operator >(Circonferenza altraCrf) //overload
- {
- return (raggio > altraCrf.raggio);
- }
- };
- int main()
- {
- Circonferenza crf1(3,67,4);
- cout << "Perimetro: " << crf1.Perimetro() << endl;
- cout << "Area: " << crf1.Area() << endl;
- Circonferenza crf2(1,1,12);
- if (crf2.maggioreDi(crf1)) cout << "Maggiore\n";
- if (crf2 > crf1) cout << "Maggiore\n";
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement