Progettazione del Software - A.A. 2008/09

Esercitazione 3

Esercizio 1.

Modificare le classi MattonellaTriangolare, MattonellaRettangolare, MattonellaQuadrata dell'esercizio 2 della seconda esercitazione, in modo tale che:

Scrivere un piccolo main per verificarne il funzionamento.

Esercizio 2.

Definire una interfaccia Figura che verrà successivamente implementata da alcune classi per rappresentare figure geomentriche in un piano cartesiano.

Specificatamente, tale interfaccia definisce tre metodi:

  1. boolean appartienePunto(Punto p)

  2. Circonferenza getCirconferenzaCircoscritta()

  3. float getArea()

In particolare quando implementato da una classe che rappresenta una figura geometrica, il metodo 1 deve restituire true/false a seconda se un dato punto di coordinate (x,y) ?interno o meno alla figura data. Il metodo 2 restituisce un oggetto della classe Circonferenza che identifica la circonferenza circoscritta alla figura, cioè la più piccola circonferenza per cui tutti i punti della figura sono interni alla circonferenza. Il metodo 3 restituisce l'area della figura.

La classe Circonferenza definisce esclusivamente due propriet?centro (di tipo Punto) e raggio (di tipo float), settabili dal costruttore e leggibili da opportuni metodi getter. Esiste inoltre la classe Punto che definisce le proprietà x e y, anche esse settabili dal costruttore e leggibili da opportuni metodi getter.

Esiste poi una classe PianoCartesiano che rappresenta un piano cartesiano. I metodi forniti dalla classe sono i seguenti:

  1. void aggiungiFigura(Figura f): Aggiunge le figure geometriche al piano, che sono oggetti che implementano l'interfaccia Figura. Non è possibile aggiungere una figura se si sovrappone ad un'altra esistente. Si supponga che due figure si sovrappongono se le loro circonferenze circoscritte lo fanno.

  2. float getSommaAree(): Restituisce la somma delle area di tutte le figure geometriche aggiunte all'area

  3. Figura dammiOggetto(Punto p): Restituisce la figura che contiene quel punto oppure null se nessuna figura contiene il punto.

L'esercizio consiste nel realizzare:

  1. L'interfaccia Figura

  2. La classe PianoCartesiano

  3. Tre diverse classi che implementino l'interfaccia Figura: Cerchio, Triangolo e Quadrato.

    • Un Cerchio è caratterizzato da 2 proprietà centro (di tipo Punto), e raggio (float).

    • Un Triangolo è caratterizzato da 3 proprietà di tipo Punto: puntoA, puntoB e puntoC, che rappresentano i 3 vertici del triangolo.

    • Un Quadrato è caratterizzato da 4 proprietà di tipo Punto: puntoA, puntoB,, che rappresentano i 2 vertici del quadrato che sono opposti.

  4. Un metodo main che aggiunge alcune figure di vario tipo ad un piano cartesiano e verifica il funzionamento dei metodi getAree e dammiOggetto

 

Suggerimenti per la realizzazione