< Anterior

Lección 3: Crear la clase cone

En este ejercicio se crea la clase cone. La clase cone representa un cono tridimensional.
Por qué y cuándo se efectúa esta tarea

En el ejercicio anterior, utilizó las herramientas de desarrollo visual de C++ para ampliar las clases circle y sphere. En este ejercicio, utilizará las herramientas de desarrollo visual de C++ para añadir la clase cone al proyecto. La clase cone, que hereda de la clase shape3d, calcula y muestra el área de superficie y el volumen en base al radio y la altura del cono. Puede añadir las herramientas de desarrollo visual de C++ para añadir una clase al proyecto, y para añadir un atributo a una clase. Para editar el cuerpo del método, efectúe una doble pulsación en el método en el diagrama y edite el código fuente en el editor de código.

Añada la clase cone al proyecto Shapes

Puede añadir la clase al proyecto por medio de la vista Explorador de proyectos de C/C++. Puede identificar cualquier relación de herencia utilizando el asistente de Nueva clase/C++.

Para añadir la clase cone al proyecto Shapes:

  1. En la vista Explorador de proyectos de C/C++, pulse el botón derecho del ratón sobre el proyecto Shapes y, a continuación, pulse Nueva > Clase.
  2. En la ventana Nueva clase C++, en el campo Nombre, escriba cone y pulse Examinar.
  3. En la ventana Elegir clase básica, en la lista tipos coincidentes, efectúe una doble pulsación en shapes3d.
  4. En la vista Explorador de proyectos de C/C++, expanda cone.h, pulse el elemento de clase cone y arrástrelo al editor de diagramas.
Resultados

Ha añadido la clase cone al proyecto Shapes. Puede utilizar las herramientas de desarrollo visual de C++ para añadir clases y atributos a la clase nueva. El diagrama debe presentar un aspecto similar al de la figura siguiente:

El proyecto Shapes contiene la nueva clase Cone

Adición de los métodos getColor y setColor a la clase cone

La clase cone implementa los métodos getColor y setColor que define la clase shape básica.
Por qué y cuándo se efectúa esta tarea

Para añadir los métodos getColor y setColor a la clase cone:

  1. En el editor de diagramas, en el diagrama classdiagram.dnx, pulse el botón derecho del ratón sobre la clase cone y, a continuación, pulse Añadir C/C++ > Campo.
  2. En la ventana Crear campo C++, en el campo Nombre, escriba color.
  3. En la lista Tipo, escriba string y pulse Finalizar.
  4. En el editor de diagramas, en el diagrama classdiagram.dnx, pulse el botón derecho del ratón sobre la clase cone y, a continuación, pulse Añadir C/C++ > Método.
  5. En la ventana Crear método C++, en el campo Nombre, escriba getColor.
  6. En la lista de tipo Retorno, escriba string y pulse Finalizar.
  7. En la clase cone, efectúe una doble pulsación en el método getColor y, en el editor de código, especifique el cuerpo del método getColor tal como se indica a continuación:{return color;};
  8. En el editor de diagramas, en el diagrama classdiagram.dnx, pulse el botón derecho del ratón sobre la clase cone y, a continuación, pulse Añadir C/C++ > Método.
  9. En la ventana Crear método C++, en el campo Nombre, escriba setColor y pulse Finalizar.
  10. En la clase cone, efectúe una doble pulsación en el método setColor y, en el editor de código, especifique la signatura del método como: void setColor(string c) y el cuerpo del método setColor como: {color = c;};
Resultados
Ha añadido los métodos getColor y setColor a la clase cone.

Adición de los métodos getSize y setSize a la clase cone

La clase cone implementa los métodos getSize y setSize que define la clase shape básica. El campo de tamaño almacena la altura del cono.
Por qué y cuándo se efectúa esta tarea

Para añadir los métodos getSize y setSize a la clase cone:

  1. En el editor de diagramas, en el diagrama classdiagram.dnx, pulse el botón derecho del ratón sobre la clase cone y, a continuación, pulse Añadir C/C++ > Campo.
  2. En la ventana Crear campo C++, en el campo Nombre, escriba size.
  3. En la lista Tipo, seleccione double y pulse Finalizar.
  4. En el editor de diagramas, en el diagrama classdiagram.dnx, pulse el botón derecho del ratón sobre la clase cone y, a continuación, pulse Añadir C/C++ > Método.
  5. En la ventana Crear método C++, en el campo Nombre, escriba getSize.
  6. En la lista Tipo de retorno, pulse la flecha abajo situada junto a void, seleccione double y pulse Finalizar.
  7. En la clase cone, efectúe una doble pulsación en el método getSize y, en el editor de código, especifique el cuerpo del método getSize como se indica a continuación: {return size;};
  8. En el editor de diagramas, en el diagrama classdiagram.dnx, pulse el botón derecho del ratón sobre la clase cone y, a continuación, pulse Añadir C/C++ > Método.
  9. En la ventana Crear método C++, en el campo Nombre, escriba setSize y pulse Finalizar.
  10. En la clase cone, efectúe una doble pulsación en el método setSize y, en el editor de código, especifique el cuerpo del método setSize como se indica a continuación: {size = s < 0 ? 0:S;};
Resultados
Acaba de añadir los métodos getSize y setSize a la clase cone.

Adición de los métodos getRadius y setRadius a la clase cone

La clase cone implementa los métodos getRadius y setRadius que define la clase shape básica. El campo de radio almacena el radio de la base del cono. La aplicación utiliza el radio para calcular la circunferencia y el volumen del cono.
Por qué y cuándo se efectúa esta tarea

Para añadir los métodos getRadius y setRadius:

  1. En el editor de diagramas, pulse el botón derecho del ratón sobre la clase cone y, a continuación, pulse Añadir C/C++ > Campo.
  2. En la ventana Crear campo C++, en el campo Nombre, escriba radius.
  3. En la lista Tipo, pulse double y, a continuación, Finalizar.
  4. En el editor de diagramas, en el diagrama classdiagram.dnx, pulse el botón derecho del ratón sobre la clase cone y, a continuación, pulse Añadir C/C++ > Método.
  5. En la ventana Crear método C++, en el campo Nombre, escriba getRadius.
  6. En la lista Tipo de retorno, seleccione double y pulse Finalizar.
  7. En la clase cone, efectúe una doble pulsación en el método getRadius y, en el editor de código, especifique el cuerpo del método getRadius como se indica a continuación: {return radius;};
  8. En el editor de diagramas, en el diagrama classdiagram.dnx, pulse el botón derecho del ratón sobre la clase cone y, a continuación, pulse Añadir C/C++ > Método.
  9. En la ventana Crear método C++, en el campo Nombre, escriba setRadius y pulse Finalizar.
  10. En la clase cone, efectúe una doble pulsación en el método setRadius y, en el editor de código, especifique el cuerpo del método setRadius como se indica a continuación: {radius = r < 0 ? 0:r;};
Resultados
Ha añadido los métodos getRadius y setRadius a la clase cone.

Adición de los métodos surfaceArea y volume a la clase cone

La clase cone implementa los métodos surfaceArea y volume que define la clase shapes3d. La fórmula calcula que el área de superficie de un cono es πr² + πrs, donde s=(r2 + h2)1/2. y su volumen, de 1/3 x πr²h.
Por qué y cuándo se efectúa esta tarea

Para añadir los métodos surfaceArea y volume a la clase cone:

  1. En el editor de diagramas, en el diagrama classdiagram.dnx, pulse el botón derecho del ratón sobre la clase cone y, a continuación, pulse Añadir C/C++ > Método.
  2. En la ventana Crear método C++, en el campo Nombre, escriba surfaceArea.
  3. En la lista Tipo de retorno, seleccione double y pulse Finalizar.
  4. En la clase cone, efectúe una doble pulsación en el método surfaceArea y, en el editor de código, especifique el cuerpo del método surfaceArea como se indica a continuación: {return pi * radius * (radius + (pow(pow(radius,2) + pow(size,2),0.5)));};
  5. En el editor de diagramas, en el diagrama classdiagram.dnx, pulse el botón derecho del ratón sobre la clase cone y, a continuación, pulse Añadir C/C++ > Método.
  6. En la ventana Crear método C++, en el campo Nombre, escriba volume y pulse Finalizar.
  7. En la clase cone, efectúe una doble pulsación en el método volume y, en el editor de código, especifique el método volume como se indica a continuación: {return 0.333 * pi * (pow(radius,2) * size);};
Resultados
Ha añadido los métodos surfaceArea y volume a la clase cone.

Adición de los métodos set y print a la clase cone

La clase cone implementa los métodos set y print que define la clase shape básica.
Por qué y cuándo se efectúa esta tarea

Para añadir los métodos set y print a la clase cone:

  1. En el editor de diagramas, en el diagrama classdiagram.dnx, pulse el botón derecho del ratón sobre la clase cone y, a continuación, pulse Añadir C/C++ > Método.
  2. En la ventana Crear método C++, en el campo Nombre, escriba print y pulse Finalizar.
  3. En la clase cone, efectúe una doble pulsación en el método print y, en el editor de código, especifique el cuerpo del método print como se indica a continuación:
    { cout  << "Cone:"
    			<< "\n\tLength = " << getSize()
    			<< "\n\tArea   = " << surfaceArea()
    			<< "\n\tVolume = " << volume()
    			<< "\n\tColor  = " << getColor()
    			<< "\n\n";
    };
  4. En el editor de diagramas, en el diagrama classdiagram.dnx, pulse el botón derecho del ratón sobre la clase cone y, a continuación, pulse Añadir C/C++ > Método.
  5. En la ventana Crear método C++, en el campo Nombre, escriba set y pulse Finalizar.
Resultados
Ha añadido los métodos print y set a la clase cone.

Edición del archivo cone.cpp

El archivo de clase cone.cpp contiene la implementación del método set, así como el constructor y el destructor. Debe modificar el cuerpo del método set para solicitar al usuario que especifique el tamaño y el radio del cono. También debe editar el constructor predeterminado para establecer los valores iniciales de la nueva clase cone.
Por qué y cuándo se efectúa esta tarea

Para editar el archivo cone.cpp:

  1. En la vista Explorador de proyectos de C++, efectúe una doble pulsación en la clase cone.cpp.
  2. En el editor de código, en la clase cone.cpp, especifique el cuerpo del constructor predeterminado como se indica a continuación: {color="Transparent"; radius=0; size=0;}
  3. En la sección de declaración del método, especifique el cuerpo del método set como se indica a continuación:
    void cone::set()	{
    	double size;
    	double radius;
    	string color;
    	
    	cout << "Especificar la altura del cono: ";
    	cin >> size; 
    	setSize(size);
    	
    	cout << "Especificar el radio de la base del cono: ";
    	cin >> radius; 
    	setRadius(radius);
    	
    	cout << "Especificar el color del cono: ";
    	cin >> color;
    	setColor(color);
    }
  4. Para guardar el proyecto, pulse Archivo > Guardar.
Resultados
Ha completado el proyecto Shapes al añadir el método set al archivo de clase cone.cpp.

Ejecución de la aplicación ampliada

Antes de ejecutar la aplicación, debe añadir la sentencia de inclusión en la clase main.cpp para incluir la nueva clase cone. Puede ejecutar la aplicación y crear instancias de la nueva clase cone modificando la clase main.cpp.
Por qué y cuándo se efectúa esta tarea

Para ejecutar la aplicación:

  1. En la vista Explorador de proyectos de C++, efectúe una doble pulsación en la clase main.cpp.
  2. En la sección de declaración de la clase, situado debajo de #include "tetrahedron.h", añada la sentencia de inclusión siguiente: #include "cone.h"
  3. En el editor de código, en el cuerpo principal de la clase, añada el código siguiente:
    //instantiate and run the cone class 
    		cone c;
    		c.print();
    		c.set();
    		c.print();
  4. Para guardar y construir el proyecto, pulse Archivo > Guardar.
  5. Pulse Ejecutar.
Resultados
El programa muestra el tamaño, el color, el área de superficie y el volumen de la forma de cono y le solicita que especifique valores para la nueva instancia del cono.
< Anterior

Comentarios