< Anterior

Exercício 3: Criar a Classe cone

Neste exercício, você criará a classe cone. Essa classe representa um cone tridimensional.
Por Que e Quando Desempenhar Esta Tarefa

No exercício anterior, você utilizou as ferramentas de desenvolvimento visual C++ para estender as classes circle e sphere. Neste exercício, você utilizará essas ferramentas para incluir a classe cone no projeto. A classe cone, herdada da classe shape3d, calcula e exibe o volume e a área da superfície com base no raio e na altura do cone. As ferramentas de desenvolvimento visual C++ podem ser utilizadas 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ódigo.

Incluir a Classe cone no Projeto Shapes

É possível incluir a classe no projeto utilizando a visualização Explorador de Projetos C/C++ (C/C++ Project Explorer). Você pode identificar qualquer relacionamento de herança utilizando o assistente Nova Classe/C++ (New C++/Class).

Para incluir a classe cone no projeto Shapes:

  1. Na visualização Explorador de Projetos C/C++ (C/C++ Project Explorer), clique com o botão direito do mouse no projeto Shapes e, em seguida, clique em Nova (New) > Classe (Class).
  2. Na janela Nova Classe C++ (New C++ Class), no campo Nome (Name), digite cone e clique em Navegar (Browse).
  3. Na janela Escolher Classe-Base (Choose Base Class), na lista de tipos de correspondência (matching types), dê um clique duplo em shapes3d.
  4. Na visualização Explorador de Projetos C/C++ (C/C++ Project Explorer), expanda cone.h, clique no elemento de classe cone e arraste-o para o editor de diagrama.
Resultados

Você acabou de incluir a classe cone no projeto Shapes. As ferramentas de desenvolvimento visual C++ podem ser utilizadas para incluir classes e atributos na nova classe. Seu diagrama deve assemelhar-se à seguinte figura:

O projeto Shapes contém a nova classe Cone.

Incluir os Métodos getColor e setColor na Classe cone

A classe cone implementa os métodos getColor e setColor definidos pela classe base shape.
Por Que e Quando Desempenhar Esta Tarefa

Para incluir os métodos getColor e setColor na classe cone:

  1. No editor de diagrama, no diagrama classdiagram.dnx, clique com o botão direito do mouse na classe cone e, em seguida, clique em Incluir C/C++ (Add C/C++) > Campo (Field).
  2. Na janela Criar Campo C++ (Create C++ Field), no campo Nome (Name), digite cor (color).
  3. Na lista Tipo (Type), digite cadeia (string) e clique em Concluir (Finish).
  4. No editor de diagrama, no diagrama classdiagram.dnx, clique com o botão direito do mouse na classe cone e, em seguida, clique em Incluir C/C++ (Add C/C++) > Método (Method).
  5. Na janela Criar Método C++ (Create C++ Method), no campo Nome (Name), digite getColor.
  6. Na lista Tipo de retorno (Return type), digite cadeia (string) e clique em Concluir (Finish).
  7. Na classe cone, dê um clique duplo no método getColor e, no editor de código, especifique o corpo do método getColor da seguinte forma:{return color;};
  8. No editor de diagrama, no diagrama classdiagram.dnx, clique com o botão direito do mouse na classe cone e, em seguida, clique em Incluir C/C++ (Add C/C++) > Método (Method).
  9. Na janela Criar Método C++ (Create C++ Method), no campo Nome (Name), digite setColor e clique em Concluir (Finish).
  10. Na classe cone, dê um clique duplo no método setColor e, no editor de código, especifique a assinatura do método como: void setColor(string c) e o corpo do método setColor como: {color = c;};
Resultados
Agora você incluiu os métodos getColor e setColor na classe cone.

Incluir 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.
Por Que e Quando Desempenhar Esta Tarefa

Para incluir os métodos getSize e setSize na classe cone:

  1. No editor de diagrama, no diagrama classdiagram.dnx, clique com o botão direito do mouse na classe cone e, em seguida, clique em Incluir C/C++ (Add C/C++) > Campo (Field).
  2. Na janela Criar Campo C++ (Create C++ Field), no campo Nome (Name), digite tamanho (size).
  3. Na lista Tipo (Type), selecione duplo (double) e clique em Concluir (Finish).
  4. No editor de diagrama, no diagrama classdiagram.dnx, clique com o botão direito do mouse na classe cone e, em seguida, clique em Incluir C/C++ (Add C/C++) > Método (Method).
  5. Na janela Criar Método C++ (Create C++ Method), no campo Nome (Name), digite getSize.
  6. Na lista Tipo de retorno (Return type), clique na seta para baixo ao lado de void, selecione duplo (double) e clique em Concluir (Finish).
  7. Na classe cone, dê um clique duplo no método getSize e, no editor de código, especifique o corpo do método getSize da seguinte forma: {return size;};
  8. No editor de diagrama, no diagrama classdiagram.dnx, clique com o botão direito do mouse na classe cone e, em seguida, clique em Incluir C/C++ (Add C/C++) > Método (Method).
  9. Na janela Criar Método C++ (Create C++ Method), no campo Nome (Name), digite setSize e clique em Concluir (Finish).
  10. Na classe cone, dê um clique duplo no método setSize e, no editor de código, especifique o corpo do método setSize da seguinte forma: {size = s < 0 ? 0:S;};
Resultados
Agora você incluiu os métodos getSize e setSize na classe cone.

Incluir os Métodos getRadius e setRadius na Classe cone

A classe cone implementa os métodos getRadius e setRadius definidos pela classe shape de base. 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.
Por Que e Quando Desempenhar Esta Tarefa

Para incluir os métodos getRadius e setRadius:

  1. No editor de diagrama, clique com o botão direito do mouse na classe cone e, em seguida, clique em Incluir C/C++ (Add C/C++) > Campo (Field).
  2. Na janela Criar Campo C++ (Create C++ Field), no campo Nome (Name), digite raio (radius).
  3. Na lista Tipo (Type), clique em duplo (double) e clique em Concluir (Finish).
  4. No editor de diagrama, no diagrama classdiagram.dnx, clique com o botão direito do mouse na classe cone e, em seguida, clique em Incluir C/C++ (Add C/C++) > Método (Method).
  5. Na janela Criar Método C++ (Create C++ Method), no campo Nome (Name), digite getRadius.
  6. Na lista Tipo de retorno (Return type), selecione duplo (double) e clique em Concluir (Finish).
  7. Na classe cone, dê um clique duplo no método getRadius e, no editor de código, especifique o corpo do método getRadius da seguinte forma: {return radius;};
  8. No editor de diagrama, no diagrama classdiagram.dnx, clique com o botão direito do mouse na classe cone e, em seguida, clique em Incluir C/C++ (Add C/C++) > Método (Method).
  9. Na janela Criar Método C++ (Create C++ Method), no campo Nome (Name), digite setRadius e clique em Concluir (Finish).
  10. Na classe cone, dê um clique duplo no método setRadius e, no editor de código, especifique o corpo do método setRadius da seguinte forma:{radius = r < 0 ? 0:r;};
Resultados
Você acabou de incluir os métodos getRadius e setRadius na classe cone.

Incluir 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 que calcula a área de superfície de um cone é πr² + πrs, em que s=(r2 + h2)1/2. A fórmula que calcula o volume de um cone é 1/3 x πr²h.
Por Que e Quando Desempenhar Esta Tarefa

Para incluir os métodos surfaceArea e volume na classe cone:

  1. No editor de diagrama, no diagrama classdiagram.dnx, clique com o botão direito do mouse na classe cone e, em seguida, clique em Incluir C/C++ (Add C/C++) > Método (Method).
  2. Na janela Criar Método C++ (Create C++ Method), no campo Nome (Name), digite surfaceArea.
  3. Na lista Tipo de retorno (Return type), selecione duplo (double) e clique em Concluir (Finish).
  4. Na classe cone, dê um clique duplo no método surfaceArea e, no editor de código, 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 diagrama, no diagrama classdiagram.dnx, clique com o botão direito do mouse na classe cone e, em seguida, clique em Incluir C/C++ (Add C/C++) > Método (Method).
  6. Na janela Criar Método C++ (Create C++ Method), no campo Nome (Name), digite volume e clique em Concluir (Finish).
  7. Na classe cone, dê um clique duplo no método volume e, no editor de código, especifique o corpo do método volume da seguinte forma: {return 0.333 * pi * (pow(radius,2) * size);};
Resultados
Você acabou de incluir os métodos surfaceArea e volume na classe cone.

Incluir os Métodos set e print na Classe cone

A classe cone implementa os métodos set e print definidos pela classe base shape.
Por Que e Quando Desempenhar Esta Tarefa

Para incluir os métodos set e print na classe cone:

  1. No editor de diagrama, no diagrama classdiagram.dnx, clique com o botão direito do mouse na classe cone e, em seguida, clique em Incluir C/C++ (Add C/C++) > Método (Method).
  2. Na janela Criar Método C++ (Create C++ Method), no campo Nome (Name), digite print e clique em Concluir (Finish).
  3. Na classe cone, dê um clique duplo no método print e, no editor de código, 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 diagrama, no diagrama classdiagram.dnx, clique com o botão direito do mouse na classe cone e, em seguida, clique em Incluir C/C++ (Add C/C++) > Método (Method).
  5. Na janela Criar Método C++ (Create C++ Method), no campo Nome (Name), digite set e clique em Concluir (Finish).
Resultados
Você acabou de incluir os métodos print e set na classe cone.

Editar 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ê modificará o corpo do método set para solicitar que o usuário especifique 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.
Por Que e Quando Desempenhar Esta Tarefa

Para editar o arquivo cone.cpp:

  1. Na visualização Explorador de Projetos C++ (C++ Project Explorer), dê um clique duplo na classe cone.cpp.
  2. No editor de código, 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 de método, especifique o corpo do método set da seguinte forma:
    void cone::set()	{
    	double size;
    	double radius;
    	string color;
    	
    	cout << "Digite a altura do cone: ";
    	cin >> size; 
    	setSize(size);
    	
    	cout << "Digite o raio da base do cone: ";
    	cin >> radius; 
    	setRadius(radius);
    	
    	cout << "Digite a cor do cone: ";
    	cin >> color;
    	setColor(color);
    }
  4. Para salvar o projeto, clique em Arquivo (File) > Salvar (Save).
Resultados
Você acabou de concluir o projeto Shapes incluindo o método set no arquivo de classe cone.cpp.

Executar 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.
Por Que e Quando Desempenhar Esta Tarefa

Para executar o aplicativo:

  1. Na visualização Explorador de Projetos C++ (C++ Project Explorer), 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ódigo, no corpo principal da classe, inclua o seguinte código:
    //instanciar e executar a classe cone
    		cone c;
    		c.print();
    		c.set();
    		c.print();
  4. Para salvar e construir o projeto, clique em Arquivo (File) > Salvar (Save).
  5. Clique em Executar (Run).
Resultados
O programa exibe o tamanho, a cor, a área da superfície e o volume da forma do cone e solicita a especificação de valores para a nova instância de cone.
< Anterior

Feedback