FACULTAD DE CIENCIAS EXACTAS Y TECNOLOGIAS CARRERA: Licenciatura en Sistemas de Información
ASIGNATURA: Estructura de Datos y Programación TRABAJO PRÁCTICO Nº 3
Fecha:01/06/2012
Temas: LSE - LDE -Lista Circular Objetivos: Que los alumnos logren Capacidad para usar, en forma eficiente los diagramas UML básicos. Habilidad para identificar las distintas estructuras de datos dinámicas, tales como LSE, LDE, Lista circular, utilizando POO y capacidad para seleccionar la más adecuada a la resolución del problema. Capacidad para verificar la solución de algoritmos desarrollados usando POO Destreza en el uso del entorno de desarrollo Netbeans y el lenguaje de programación Java. Capacidad para implementar correctamente las soluciones algorítmicas, en lenguaje de programación Java Fecha de presentación: 2 semanas a partir de la fecha del práctico. Consideraciones Generales: Este trabajo práctico debe realizarse en forma individual. La presentación implicará la entrega del material abrochado, o en una carpeta, contando con los siguientes ítems: o Carátula. Identificación completa del trabajo práctico con todos los datos del alumno y la asignatura, año, carrera, etc. o Desarrollo del práctico con hojas numeradas e identificadas, que deberá incluir: Los algoritmos deben estar completamente desarrollados, de manera prolija, e incluyendo las descripciones necesarias para su mejor seguimiento (identificación, variables utilizadas y sus funciones, etc.), cumpliendo las indicaciones relativas a la diagramación estructurada y modular. Documentar suficientemente el código, agregando al principio los datos del alumno, breve descripción del programa y métodos que implementa o El Código de las aplicaciones solicitadas deberá enviarse al correo de la materia
[email protected]. El nombre del código deberá estar conformado de acuerdo al siguiente esquema: carrera_ ApellidoNomdelAlumno_NumPrac_NumEjerc. Resolver los siguientes problemas de tipo teórico, practico y experimental 1-Lista simple encadenada Ordenada (LSEO): Defina de manera formal e informal el TAD LSEO para el siguiente enunciado determinando el método constructor y los métodos que permitan: a. Generar ListaAlum: crear una lista enlazada ordenada de datos de los alumnos, clasificada por DNI. Para ello, ingresar: DNI, nombre del alumno y condición (1: regular/2: Libre), hasta que el operador decida no continuar. b. Eliminar Alumno: debe permitir ingresar el DNI del alumno y eliminarlo de la lista, hasta que el operador decida no continuar. c. Imprimir: mostrar los elementos de la lista. Debe mostrar el mensaje “Elementos de la Lista Simple:” y mostrar los elementos de la ListaAlum. La estructura del Nodo de la lista es: / Documento / Nombre / Condición / PS. Manejo de Listas Simples Enlazadas 1- Generar Lista de alumnos 2- Eliminar Alumno 3- Imprimir 0- Salir Ingrese su opción:
Expresar el algoritmo solución en diagramas de flujo, para cada uno de los métodos de la clase LSEO. Codificar y ejecutar el algoritmo solución en lenguaje Java, utilizando el entorno de desarrollo (IDE) Netbeans.
Estructuras de Datos y Programación
Trabajo Práctico N° 3
Pag:1
FACULTAD DE CIENCIAS EXACTAS Y TECNOLOGIAS CARRERA: Licenciatura en Sistemas de Información
ASIGNATURA: Estructura de Datos y Programación TRABAJO PRÁCTICO Nº 3
Fecha:01/06/2012
. 2_ Lista Doble Encadenada (LDE) Defina de manera formal e informal el TAD LDE para el siguiente enunciado determinando el método constructor y los métodos que permitan: 2.1. Crear la clase NodoDE con los atributos: DNI, Nombre del alumno, Condición (1: regular/2: libre). 2.2. Crear la clase ListaDE que implemente los siguientes métodos: a. crear: constructor de la lista, en Java seria ListaDE() b. insertar: agrega un nodo a la lista contemplando los siguientes casos: en una lista vacía, al principio, en el medio y al final. c. quitar: desengancha un nodo de la lista y devuelve la dirección, contemplando los siguientes casos según donde se encuentre el nodo: al principio, en el medio y al final. 2.3. Crear la clase ListaDEApp que implemente los métodos: a. generar: debe permitir ingresar un elemento y agregarlo a la lista en forma ordenada, hasta que el operador decida no continuar. b. borrar: debe permitir ingresar un elemento y eliminarlo de la lista, hasta que el operador decida no continuar. c. imprimir: mostrar la información de todos los nodos.
Expresar el algoritmo solución en diagramas de flujo, para cada uno de los métodos de la clase ListaDE y la clase ListaDEApp. Codificar y ejecutar el algoritmo solución en lenguaje Java, utilizando el entorno de desarrollo (IDE) Netbeans.
. 3_ Lista Circular Simple Encadenada (LCSE) con nodo cabecera Defina de manera formal e informal el TAD LCSE para el siguiente enunciado determinando el método constructor y los métodos que permitan: 3.1. Crear la clase Nodo con los atributos: DNI, Nombre del alumno, Condición (1: regular/2: libre). 3.2. Crear la clase ListaCSE que implemente los siguientes métodos: a. crear: constructor de la lista, en Java seria ListaCSE (), debe pedir un nodo y hacer que se apunte a sí mismo, éste sería el nodo cabecera. El campo dato se utilizara para almacenar la cantidad de nodos de la lista. b. insertar: agrega un nodo a la lista contemplando los siguientes casos: en una lista vacía, al principio, en el medio y al final. c. quitar: desengancha un nodo de la lista y devuelve la dirección, contemplando los siguientes casos según donde se encuentre el nodo: al principio, en el medio y al final. 3.3. Crear la clase ListaCSEApp que implemente los métodos: a. generar: debe permitir ingresar un elemento y agregarlo a la lista, hasta que el operador decida no continuar. b. borrar: debe permitir ingresar un elemento y eliminarlo de la lista, hasta que el operador decida no continuar. c. imprimir: mostrar la información de todos los nodos y la cantidad de nodos.
Expresar el algoritmo solución en diagramas de flujo, para cada uno de los métodos de la clase LCSE ListaCSE y la clase ListaCSEApp. Codificar y ejecutar el algoritmo solución en lenguaje Java, utilizando el entorno de desarrollo (IDE) Netbeans.
. 4_ Lista Circular Doble Encadenada (LCDE) con nodo cabecera Defina de manera formal e informal el TAD LCDE para el siguiente enunciado determinando el método constructor y los métodos que permitan: 4.1. Crear la clase Nodo con los atributos: DNI, Nombre del alumno, Condición (1: regular/2: libre). 4.2. Crear la clase ListaCDE que implemente los siguientes métodos:
Estructuras de Datos y Programación
Trabajo Práctico N° 3
Pag:2
FACULTAD DE CIENCIAS EXACTAS Y TECNOLOGIAS CARRERA: Licenciatura en Sistemas de Información
ASIGNATURA: Estructura de Datos y Programación TRABAJO PRÁCTICO Nº 3
Fecha:01/06/2012
a. crear: constructor de la lista, en Java seria ListaCDE (), debe pedir un nodo y hacer que se apunte a sí mismo, éste sería el nodo cabecera. El campo dato se utilizara para almacenar la cantidad de nodos de la lista. b. insertar: agrega un nodo a la lista contemplando los siguientes casos: en una lista vacía, al principio, en el medio y al final. c. quitar: desengancha un nodo de la lista y devuelve la dirección, contemplando los siguientes casos según donde se encuentre el nodo: al principio, en el medio y al final. 4.3. Crear la clase ListaCDEApp que implemente los métodos: a. generar: debe permitir ingresar un elemento y agregarlo a la lista, hasta que el operador decida no continuar b. borrar: debe permitir ingresar un elemento y eliminarlo de la lista, hasta que el operador decida no continuar. c. imprimir: muestra la información de todos los nodos y la cantidad de nodos. Expresar el algoritmo solución en diagramas de flujo, para cada uno de los métodos de las clases ListaCDE y ListaCDEApp. Codificar y ejecutar el algoritmo solución en lenguaje Java, utilizando el entorno de desarrollo (IDE) Netbeans. . 5_ Resolver el siguiente ejercicio: El propietario de un Hotel desea contar con un programa que le facilite la administración del mismo. Luego de analizar los requerimientos del propietario se decidió desarrollar un programa con las siguientes opciones: a. Crear Hotel: Se debe generar la lista ordenada vacía con el Número y Tipo de habitación. Cada nodo tiene la siguiente estructura: Número de habitación / Tipo de habitación (1 simple, 2 doble, 3 triple, 4 cuádruple) / Documento del cliente / Nombre / Apellido / Cantidad de Personas (0 indica habitación vacía) /. b. Alta de cliente: Permite agregar un cliente a la lista. Se debe ingresar el número de habitación y verificar que esté disponible. Se cargan los datos del cliente en la habitación, no se agregan nodos, solo se modifica la información. c. Baja de Cliente: Permite dar de baja un cliente cuando éste egresa del hotel. Se debe buscar por número de habitación y borrar los datos del cliente (no se debe borrar el número y tipo de habitación), asegurando dejar en cero el campo Cantidad de Personas que indica habitación vacía. d. Consulta por : Cliente: Buscar un cliente por documento y mostrar los datos (nombre, apellido y cantidad de personas alojadas en la habitación) Habitación: Buscar por número de habitación y mostrar los datos de la misma Apellido: Buscar por apellido y mostrar los datos de la misma e. Imprimir: mostrar los datos de los clientes alojados en el hotel en forma descendente por número de habitación. Con el siguiente formato:
Listado de los clientes alojados Habitación Tipo habitación Documento Apellido Nombre Cantidad de ocupantes 208 2 10.241.200 Peralta Luis 2 108 1 14.541.605 Ledesma Juan 1 … Total de ocupantes: 3 Todas las opciones, excepto las consultas, se deben ejecutar hasta que el operador decide no continuar.
Estructuras de Datos y Programación
Trabajo Práctico N° 3
Pag:3
FACULTAD DE CIENCIAS EXACTAS Y TECNOLOGIAS CARRERA: Licenciatura en Sistemas de Información
ASIGNATURA: Estructura de Datos y Programación TRABAJO PRÁCTICO Nº 3
Fecha:01/06/2012
Expresar el algoritmo solución en diagramas de flujo, para cada uno de los métodos de las clases utilizadas. Codificar y ejecutar el algoritmo solución en lenguaje Java, utilizando el entorno de desarrollo (IDE) Netbeans.
.
Recursos Bibliográficos: JOYANES AGUILAR LUIS- ZAHONERO MARTINEZ IGNACIO. “Estructuras de Datos en Java”. Mc Graw Hill -2008 JOYANES AGUILAR LUIS ZAHONERO MARTINEZ IGNACIO. “Programación en JAVA 2 Algoritmos, Estructuras de Datos y Programación orientada a objetos”. Mc Graw Hill -2002. CAIRO. Estructura de datos. Mc Graw Hill -2006. Recursos de Software Entorno de Desarrollo NetBeans versión 7.1 Java 2EE.
Estructuras de Datos y Programación
Trabajo Práctico N° 3
Pag:4