Herramientas de Programación

Curso 2003-2004

Práctica 2: Entorno kdevelop

En esta práctica se pretende la familiarización con el entorno de desarrollo kdevelop. La práctica se dividirá en dos partes: una primera en la que se desarrollará un proyecto (en C++) que debéis de resolver de manera sistemática utilizando las herramientas de desarrollo que proporciona el entorno. En la segunda parte se pretende que uséis las herramientas de depación que proporciona el entorno.

se plantea un sencillo problema de programación que debe de ser resuelto de manera sistemática utilizando las herramientas de desarrollo que proporciona el entorno.

Parte 1: Desarrollo de un proyecto

Enunciado

Se trata de construir las clases necesarias para representar los conceptos Empresa y Empleado. Teniendo en cuenta que se exigen las siguientes características:

Empresa

  • Las empresas tienen un nombre y una plantilla formada por un número indeterminado de Empleados.

  • Las empresas tienen la capacidad de contratar y despedir a un empleado y de visualizar los datos de su plantilla.

Empleado

  • Los empleados están caracterizados por datos personales como: edad, dni y nombre. Además, es relevante el puesto que ocupan y su sueldo anual.

  • Los empleados pueden visualizar todos sus datos.

Dado el periodo de cambio de moneda en el que nos encontramos, es conveniente declarar una clase de objetos Euro que permita representar  este tipo de moneda, incorporando operaciones que permitan la conversión a pesetas de manera cómoda.

Para la comprobación de la correcta definición de todas las clases se proporciona un sencillo programa de test que se puede obtener en el directorio /iilabs/HP/PRAC2.

Tareas a realizar

Crear un nuevo proyecto en kdevelop, incorporando el archivo de test que se proporciona y creando todas las clases descritas anteriormente. Realizar este proceso de dos formas:

  • Mediante un proyecto personalizado (Custom Project), que constituye el nivel de ayuda mínimo del entorno.

  • Aprovechar todo el código escrito en el paso anterior para crear un nuevo proyecto, ahora del tipo Terminal C++. Para esta tarea es conveniente utilizar la posibilidad de añadir archivos existentes a un proyecto.

Finalmente, comparar las diferencias entre los dos proyectos generados.

Por supuesto, se asume que:

  • El proyecto debe de dar lugar un programa ejecutable que funcione.

  • Los requisitos especificados anteriormente sobre las clases a desarrollar son mínimos y se podrán (deberán) incorporar todos los métodos y/o atributos adicionales que sean necesarios.

  • Es perfectamente válido declarar, si es preciso, clases adicionales a las anteriormente descritas para resolver el problema.

 

Parte 2: Depuración

Utilizad los modos de depuración de Kdevelop para detectar y corregir los errores que provocan un funcionamiento incorrecto del programa  /iilabs/HP/PRAC2/ej2/main.cpp. Teniendo en cuenta que este programa hace uso de la implementación de una estructura de datos del tipo árbol binario de búsqueda (ABB) definida para datos enteros en los archivos  /iilabs/HP/PRAC2/ej2/arbol.h,arbol.cpp

El programa que se pretende corregir realiza básicamente los siguiente:

  • Inserta en un ABB valores enteros comprendidos entre 1 y un argumento que se le debe pasar en el momento de la ejecución (ver en kdevelop la posibilidad de ejecutar con argumentos).

  • Visualiza las claves insertadas (en orden creciente).

  • Busca en orden inverso todas las claves insertadas. Por lo tanto, debería encontrarlas todas e imprimir su valor.

Con todo ello, la salida correcta para la ejecución del programa, usando como argumento el valor 10, sería:

1

2

3

4

5

6

7

8

9

10

Encontrado 10

Encontrado 9

Encontrado 8

Encontrado 7

Encontrado 6

Encontrado 5

Encontrado 4

Encontrado 3

Encontrado 2

Encontrado 1

Como se puede comprobar, la ejecución del programa tal como se proporciona no es la correcta, por lo que se debe depurar el programa y corregir todos los errores hasta conseguir que proporcione el resultado correcto.

Nota: Existen varios errores que pueden estar distribuidos en los tres archivos implicados.