Exercício 3: Criando a Classe cone

Neste exercício, você cria a classe cone utilizando o editor visual. A classe cone representa um cone em 3D.

No exercício anterior, você utilizou as ferramentas de modelagem UML para estender as classes circle e sphere. Neste exercício, utilize as ferramentas de modelagem UML para incluir a classe cone no projeto. A classe cone, herdada da classe shape3d, calcula e exibe o volume e a área de superfície com base no raio e na altura do cone. Você pode utilizar as ferramentas de modelagem UML para incluir uma classe no projeto e para incluir um atributo em uma classe. Para editar o corpo do método, dê um clique duplo no método no diagrama e edite o código-fonte no editor de códigos.

Incluindo a Classe cone no Projeto Shapes

Você pode incluir a classe no projeto utilizando a visualização Explorador de Projetos C/C++. É possível identificar relacionamentos de herança utilizando o assistente de Nova Classe C++.

Para incluir a classe cone no projeto Shapes:
  1. Na visualização Explorador de Projetos C/C++, clique com o botão direito no projeto Shapes; em seguida, clique em Novo > Classe.
  2. Na janela Nova Classe C++, no campo Nome, digite cone e clique em Procurar.
  3. Na janela Escolher Classe-base, na lista tipos de correspondência , dê um clique duplo em shapes3d.
  4. Na visualização Explorador de Projetos C/C++, expanda cone.h, clique no elemento da classe cone e arraste-o para o editor de diagramas.

Você acabou de incluir a classe cone no projeto Shapes. Agora você pode utilizar as ferramentas de modelagem UML para incluir classes e atributos na nova classe. Seu diagrama deverá ser semelhante à figura a seguir:

O projeto shapes contém a nova classe cone.

Incluindo os Métodos getColor e setColor na Classe cone

A classe cone implementa os métodos getColor e setColor definidos pela classe base shape.

Para incluir os métodos getColor e setColor na classe cone:
  1. No editor de diagramas, no diagrama classdiagram.dnx, clique com o botão direito na classe cone; em seguida, clique em Incluir C/C++ > Campo.
  2. Na janela Criar Campo C++, no campo Nome, digite color.
  3. Na lista Tipo, digite string e clique em Concluir.
  4. No editor de diagramas, no diagrama classdiagram.dnx, clique com o botão direito na classe cone; em seguida, clique em Incluir C/C++ > Método.
  5. Na janela Criar Método C++, no campo Nome, digite getColor.
  6. Na lista Tipo de Retorno, digite string e clique em Concluir.
  7. Na classe cone, dê um clique duplo no método getColor e, no editor de códigos, especifique o corpo do método getColor da seguinte forma: {return color;};
  8. No editor de diagramas, no diagrama classdiagram.dnx, clique com o botão direito na classe cone; em seguida, clique em Incluir C/C++ > Método.
  9. Na janela Criar Método C++, no campo Nome, digite setColor e clique em Concluir.
  10. Na classe cone, dê um clique duplo no método setColor e, no editor de códigos, especifique a assinatura do método como: void setColor(string c) e o corpo do método setColor como {color = c;};

Você acabou de incluir os métodos getColor e setColor na classe cone.

Incluindo os Métodos getSize e setSize na Classe cone

A classe cone implementa os métodos getSize e setSize definidos pela classe base shape. O campo de tamanho armazena a altura do cone.

Para incluir os métodos getSize e setSize na classe cone:
  1. No editor de diagramas, no diagrama classdiagram.dnx, clique com o botão direito na classe cone; em seguida, clique em Incluir C/C++ > Campo.
  2. Na janela Criar Campo C++, no campo Nome, digite size.
  3. Na lista Tipo, selecione double e clique em Concluir.
  4. No editor de diagramas, no diagrama classdiagram.dnx, clique com o botão direito na classe cone; em seguida, clique em Incluir C/C++ > Método.
  5. Na janela Criar Método C++, no campo Nome, digite getSize.
  6. Na lista Tipo de Retorno, clique na seta para baixo ao lado de void, selecione double e clique em Concluir.
  7. Na classe cone, dê um clique duplo no método getSize e, no editor de códigos, especifique o corpo do método getSize da seguinte forma: {return size;};
  8. No editor de diagramas, no diagrama classdiagram.dnx, clique com o botão direito na classe cone; em seguida, clique em Incluir C/C++ > Método.
  9. Na janela Criar Método C++, no campo Nome, digite setSize e clique em Concluir.
  10. Na classe cone, dê um clique duplo no método setSize e, no editor de códigos, especifique o corpo do método setSize da seguinte forma: {size = s < 0 ? 0:S;};

Você acabou de incluir os métodos getSize e setSize na classe cone.

Incluindo os Métodos getRadius e setRadius na Classe cone

A classe cone implementa os métodos getRadius e setRadius definidos pela classe base shape. O campo de raio armazena o raio da base do cone. O aplicativo utiliza o raio para calcular a circunferência e o volume do cone.

Para incluir os métodos getRadius e setRadius:
  1. No editor de diagramas, clique com o botão direito na classe cone; em seguida, clique em Incluir C/C++ > Campo.
  2. Na janela Criar Campo C++, no campo Nome, digite radius.
  3. Na lista Tipo, clique em double e clique em Concluir.
  4. No editor de diagramas, no diagrama classdiagram.dnx, clique com o botão direito na classe cone; em seguida, clique em Incluir C/C++ > Método.
  5. Na janela Criar Método C++, no campo Nome, digite getRadius.
  6. Na lista Tipo de Retorno, selecione double e clique em Concluir.
  7. Na classe cone, dê um clique duplo no método getRadius e, no editor de códigos, especifique o corpo do método getRadius da seguinte forma: {return radius;};
  8. No editor de diagramas, no diagrama classdiagram.dnx, clique com o botão direito na classe cone; em seguida, clique em Incluir C/C++ > Método.
  9. Na janela Criar Método C++, no campo Nome, digite setRadius e clique em Concluir.
  10. Na classe cone, dê um clique duplo no método setRadius e, no editor de códigos, especifique o corpo do método setRadius da seguinte forma: {radius = r < 0 ? 0:r;};

Você acabou de incluir os métodos getRadius e setRadius na classe cone.

Incluindo os Métodos surfaceArea e volume na Classe cone

A classe cone implementa os métodos surface area e volume definidos pela classe shapes3d. A fórmula utilizada para calcular a surfaceArea de um cone é pi * r * (r + (r2 + h2)1/2). A fórmula para calcular o volume de um cone é 1/3 x pi x r2 h.

Para incluir os métodos surfaceArea e volume na classe cone:
  1. No editor de diagramas, no diagrama classdiagram.dnx, clique com o botão direito na classe cone; em seguida, clique em Incluir C/C++ > Método.
  2. Na janela Criar Método C++, no campo Nome, digite surfaceArea.
  3. Na lista Tipo de Retorno, selecione double e clique em Concluir.
  4. Na classe cone, dê um clique duplo no método surfaceArea e, no editor de códigos, especifique o corpo do método surfaceArea da seguinte forma: {return pi * radius * (radius + (pow(pow(radius,2) + pow(size,2),0.5)));};
  5. No editor de diagramas, no diagrama classdiagram.dnx, clique com o botão direito na classe cone; em seguida, clique em Incluir C/C++ > Método.
  6. Na janela Criar Método C++, no campo Nome, digite volume e clique em Concluir.
  7. Na classe cone, dê um clique duplo no método volume e, no editor de códigos, especifique o corpo do método volume da seguinte forma: {return 0.333 * pi * (pow(radius,2) * size);};

Você acabou de incluir os métodos surfaceArea e volume na classe cone.

Incluindo os Métodos set e print na Classe cone

A classe cone implementa os métodos set e print definidos pela classe base shape.

Para incluir os métodos set e print na classe cone:
  1. No editor de diagramas, no diagrama classdiagram.dnx, clique com o botão direito na classe cone; em seguida, clique em Incluir C/C++ > Método.
  2. Na janela Criar Método C++, no campo Nome, digite print e clique em Concluir.
  3. Na classe cone, dê um clique duplo no método print e, no editor de códigos, especifique o corpo do método print da seguinte forma:
    { cout  << "Cone:"
    			<< "\n\tLength = " << getSize()
    			<< "\n\tArea   = " << surfaceArea()
    			<< "\n\tVolume = " << volume()
    			<< "\n\tColor  = " << getColor()
    			<< "\n\n";
    };
  4. No editor de diagramas, no diagrama classdiagram.dnx, clique com o botão direito na classe cone; em seguida, clique em Incluir C/C++ > Método.
  5. Na janela Criar Método C++, no campo Nome, digite set e clique em Concluir.

Você acabou de incluir os métodos print e set na classe cone.

Editando o Arquivo cone.cpp

O arquivo de classe cone.cpp contém a implementação do método set, assim como do construtor e destruidor. Você modifica o corpo do método set para solicitar que o usuário digite o tamanho e o raio do cone. Você também deve editar o construtor padrão para configurar os valores iniciais da nova classe cone.

Para editar o arquivo cone.cpp:
  1. Na visualização Explorador de Projetos C++, dê um clique duplo na classe cone.cpp.
  2. No editor de códigos, na classe cone.cpp, especifique o corpo do construtor padrão da seguinte forma: {color="Transparent"; radius=0; size=0;}
  3. Na seção de declaração do método, especifique o corpo do método set da seguinte forma:
    void cone::set()	{
    	double size;
    	double radius;
    	string color;
    	
    	cout << "Enter the height of the cone: ";
    	cin >> size;
    	setSize(size);
    	
    	cout << "Enter the radius of the base of the cone: ";
    	cin >> radius;
    	setRadius(radius);
    	
    	cout << "Enter the color of the cone: ";
    	cin >> color;
    	setColor(color);
    }
  4. Para salvar o projeto, clique em Arquivo > Salvar.

Você acabou de concluir o projeto Shapes incluindo o método set no arquivo de classe cone.cpp.

Executando o Aplicativo Estendido

Antes de executar o aplicativo, é necessário incluir a instrução include na classe main.cpp para incluir a nova classe cone. É possível executar o aplicativo e instanciar a nova classe cone modificando a classe main.cpp.

Para executar o aplicativo:
  1. Na visualização Explorador de Projetos C++, dê um clique duplo na classe main.cpp.
  2. Na seção de declaração da classe, abaixo de #include "tetrahedron.h", inclua a seguinte instrução include: #include "cone.h"
  3. No editor de códigos, no corpo principal da classe, inclua o seguinte código:
    //instancie e execute a classe cone
    		cone c;
    		c.print();
    		c.set();
    		c.print();
  4. Para salvar e construir o projeto, clique em Arquivo > Salvar.
  5. Clique em Executar.

O programa exibe o tamanho, cor, área de superfície e volume do shape do cone e solicita a especificação de valores para a nova instância do cone.