Exercício 2: Estendendo as Classes circle e sphere

Neste exercício, você utiliza o visualizador C++ e o diagrama de classe criado no primeiro exercício para incluir uma operação nas classes circle e sphere.

No exercício anterior, você utilizou o visualizador C++ para visualizar a hierarquia do projeto Shapes C++. Também é possível utilizar o visualizador C++ para incluir classes em um projeto, ou para incluir propriedades e métodos em uma classe. Neste exercício, você inclui o método getCircumference nas classes circle e sphere. O método getCircumference calcula a circunferência de shape e do círculo utilizando o raio.

Incluindo o Método getCircumference na Classe circle

A fórmula que calcula a circunferência de um círculo é pi x r x r, em que r é o raio do círculo. A constante global pi está armazenada na classe base shape.

Para incluir o método getCircumference na classe circle:
  1. No editor de diagramas, no diagrama classdiagram.dnx, clique com o botão direito na classe circle; em seguida, clique em Incluir C/C++ > Método.
  2. Na janela Criar Método C++, no campo Nome, digite getCircumference.
  3. Na lista Tipo de Retorno, selecione double e clique em Concluir.
  4. Na classe circle, dê um clique duplo no método getCircumference e, no editor de códigos, especifique o corpo do método getCircumference da seguinte forma:
    {return pi * (2 * getSize());};
  5. No editor de códigos, inclua a seguinte linha de código no método print:
    << "\n\tCircumference = " << getCircumference()

Você acabou de incluir o método getCircumference na classe circle. O método getCircumference utiliza a variável size do método getSize e a constante global pi para calcular a circunferência. Você também modificou o método print para imprimir a saída do método getCircumference.

Incluindo o Método getCircumference na Classe sphere

A fórmula que calcula a circunferência de uma esfera no maior diâmetro é igual à fórmula utilizada na etapa anterior.

Para incluir o método getCircumference na classe sphere:
  1. No editor de diagramas, no diagrama classdiagram.dnx, clique com o botão direito na classe sphere e clique em Incluir Método > C/C++.
  2. Na janela Criar Método C++, no campo Nome, digite getCircumference.
  3. Na lista Tipo de Retorno, selecione double e clique em Concluir.
  4. Na classe sphere, dê um clique duplo no método getCircumference e, no editor de códigos, especifique o corpo do método getCircumference da seguinte forma:
    {return pi * (2 * getSize());};
  5. No editor de códigos, inclua a seguinte linha de código no método print:
    << "\n\tCircumference = " << getCircumference()

Você acabou de utilizar as ferramentas de desenvolvimento visual UML e o editor de códigos para incluir o método getCircumference nas classes circle e sphere.

Executando o Aplicativo Shapes

É possível executar o aplicativo modificando a classe main.cpp. A classe main.cpp é o driver do aplicativo shapes C++.

Para executar o aplicativo Shapes:
  1. Na visualização Explorador de Projetos C/C++, dê um clique duplo na classe main.cpp.
  2. No editor de códigos, no corpo principal do programa, inclua o seguinte código:
    //instancie e execute a classe sphere
    sphere sp;
    sp.print();
    sp.set();
    sp.print();
  3. Para salvar e construir o projeto, clique em Arquivo > Salvar.
  4. Clique em Executar > Executar.
  5. Na janela Executar, na lista Configurações, dê um clique duplo em C/C++ Local.
  6. No campo Projeto, digite Shapes.
  7. No campo Aplicativo C/C++, clique em Procurar e selecione o arquivo executável Shapes.exe no diretório Shapes\debug.
  8. Clique em Executar.

O programa shapes é executado na visualização de Console e exibe a seguinte saída:

Digite o raio da esfera: 10
Digite a cor da esfera: Azul
Esfera:
	Raio = 10
	Circunferência = 62.8319
	Área   = 1256.64
	Volume = 4188.79
	Cor  = Azul 

O programa exibe o tamanho e cor do shape atual e solicita que sejam especificados valores para o novo shape. Os atributos do novo shape são exibidos na visualização de Console. É possível modificar o código no main.cpp para executar a classe circle.

Para continuar, prossiga para Exercício 3: Criando a Classe cone.