Esercizio 2: estensione delle classi cerchio e sfera

In questo esercizio, viene utilizzato il programma di visualizzazione C++ e il diagramma di classe creato nel primo esercizio per aggiungere un'operazione alle classi cerchio e sfera.

Nel precedente esercizio, è stato utilizzato il programma di visualizzazione C++ per visualizzare la gerarchia del progetto Forme C++. E' inoltre possibile utilizzare tale programma di visualizzazione per aggiungere classi a un progetto o per aggiungere proprietà e metodi a una classe. In questo esercizio, viene aggiunto il metodo getCircumference alle classi cerchio e sfera. Tale metodo calcola la circonferenza della forma e del cerchio utilizzando il raggio.

Aggiunta del metodo getCircumference alla classe cerchio

La formula che calcola la circonferenza di un cerchio è pi x r x r, dove r è il raggio del cerchio. La costante globale pi viene memorizzata nella classe Forma di base.

Per aggiungere il metodo getCircumference alla classe cerchio:
  1. Nell'editor del diagramma, nel diagramma classdiagram.dnx, fare clic con il tastino destro del mouse sulla classe del cerchio; quindi fare clic su Aggiungi metodo C/C++ >.
  2. Nella finestra Crea metodo C++, nel campo Nome, immettere getCircumference.
  3. Dall'elenco Tipo di restituzione, selezionare double e fare clic su Fine.
  4. Nella classe cerchio, fare doppio clic sul metodo getCircumference e nell'editor del codice, specificare il corpo del metodo getCircumference nel seguente modo:
    {return pi * (2 * getSize());};
  5. Nell'editor del codice, aggiungere la seguente linea di codice al metodo di stampa:
    << "\n\tCircumference = " << getCircumference()

E' stato appena aggiunto il metodo getCircumference alla classe cerchio. Il metodo getCircumference utilizza la variabile della dimensione dal metodo getSize e la costante globale pi per calcolare la circonferenza. E' stato inoltre modificato il metodo di stampa per stampare l'output del metodo getCircumference.

Aggiunta del metodo getCircumference alla classe sfera

La formula che calcola la circonferenza di una sfera al diametro di dimensioni maggiori è la stessa della formula utilizzata nella fase precedente.

Per aggiungere il metodo getCircumference alla classe sfera:
  1. Nell'editor del diagramma, nel diagramma classdiagram.dnx, fare clic con il tastino destro del mouse sulla classe della sfera, quindi fare clic su Aggiungi metodo C/C++ >.
  2. Nella finestra Crea metodo C++, nel campo Nome, immettere getCircumference.
  3. Dall'elenco Tipo di restituzione, selezionare double e fare clic su Fine.
  4. Nella classe sfera, fare doppio clic sul metodo getCircumference e nell'editor del codice, specificare il corpo del metodo getCircumference nel seguente modo:
    {return pi * (2 * getSize());};
  5. Nell'editor del codice, aggiungere la seguente linea di codice al metodo di stampa:
    << "\n\tCircumference = " << getCircumference()

Sono stati utilizzati gli strumenti di sviluppo visivi UML e l'editor del codice per aggiungere il metodo getCircumference ad entrambe le classi cerchio e sfera.

Esecuzione dell'applicazione Forme

E' possibile eseguire l'applicazione modificando la classe main.cpp. La classe main.cpp è il driver per l'applicazione Forme C++.

Per eseguire l'applicazione Forme:
  1. Nella vista Esplora progetto C/C++, fare doppio clic sulla classe main.cpp.
  2. Nell'editor del codice, nel corpo principale del programma, aggiungere il seguente codice:
    //instantiate and run the sphere class
    sphere sp;
    sp.print();
    sp.set();
    sp.print();
  3. Per salvare e generare il progetto, fare clic su File > Save.
  4. Fare clic su Esegui > Esegui.
  5. Nella finestra Esegui, dall'elenco Configurazioni, fare doppio clic su C/C++ locale.
  6. Nel campo Progetto, immettere Forme.
  7. Nel campo Applicazione C/C++, fare clic su Sfoglia e selezionare il file eseguibile Shapes.exe nella directory Shapes\debug.
  8. Fare clic su Esegui.

Il programma Forme viene eseguito nella vista Console e visualizza il seguente output:

Enter the radius of the sphere: 10
Enter the color of the sphere: Blue
Sphere:
	Radius = 10
	Circumference = 62.8319
	Area   = 1256.64
	Volume = 4188.79
	Color  = Blue

Il programma visualizza la dimensione e il colore della forma corrente e richiede di specificare i valori per la nuova forma. Gli attributi della nuova forma vengono visualizzati nella vista Console. E' possibile modificare il codice in main.cpp per eseguire la classe cerchio.

Per continuare, procedere con l'Esercizio 3: creazione della classe cono.