Sei sulla pagina 1di 4

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD

ESTRUCTURA DE DATOS 301305

INGENIERIA DE SISTEMAS I-2012

JORGE ANDRES BROWN JAQUE 1024479636

CALI-PALMIRA

MAYO 2012

INTRODUCCION

El siguiente desarrollo permite proporcionan mucha utilidad al programador ya que permiten accesar y manipular datos de tal manera que no es posible realizarse en otros lenguajes llamados de alto nivel. Esta actividad nos permite revisar los conocimientos obtenidos en la unidad 2, donde miramos las temticas de: Pilas, Colas y Listas. OBJETIVOS * Desarrollar programas que permitan fortalecer las buenas practicas de programacin dando aplicabilidad a las estructuras lineales a travs del desarrollo de supuestos semnticos en entornos reales. - Dar aplicabilidad al uso y manejo de las variables apuntadores, funciones y operadores de C++ en el manejo de la memoria de forma dinmica, as integrar estos conceptos con las operaciones que se pueden realizar con las estructuras de datos lineales.

TRABAJO COLABORATIVO 2 - DESARROLLO 1. Planteamiento del problema o supuesto semntico. Se requiere implementar una aplicacin que permita generar una agenda telefnica por medio de una lista enlazada. El sistema debe permitir el ingreso de contactos de los cuales se debe guardar la siguiente informacin: el nombre, telfono fijo y telfono celular. Se deber permitir en cualquier momento las operaciones de Insertar personas a la lista, Eliminar personas de la lista, Visualizar la lista y Buscar datos en la lista. 2. Anlisis de Requerimientos y Listado de Recursos. Requerimientos Realizando un anlisis de los requerimientos encontramos los siguientes: a. Se debe generar una agenda telefnica y para ello se debe emplear una estructura llamada lista enlazada. b. Par cada contacto o persona se debe guardar la informacin de nombre, telfono fijo y telfono celular. c. Debe realizar las operaciones de Insertar, Eliminar, Visualizar y Buscar personas en la agenda. d. Tambin debe ofrecer la opcin de portada donde se mostrar la informacin de lo que realizar el software y los integrantes del grupo colaborativo, etc. Recursos Se utilizan los siguientes recursos: * Estructura Lista (Struct lista) * Variables dentro de la estructura * int numero; * char nom[45] * char fijo[15]

* char celular[15] * Apuntadores (*sig, *entero, *recorrer, *cablista, *puntauxiliar ) * Variables Tipo Int (opc, valor * Funciones (menu(), insertar(), eliminar(), visualizar(), buscar(), portada()) * Funcion principal main() * Operadores para la gestin dinmica de memoria (new y delete) 3. Cdigo del Programa implementado Documentacin aplicativa Funcin main() En la lnea 32 comienza la funcin main o funcin principal, se inicia con la lnea 33 con una llave { , luego en la lnea 34 se limpia pantalla. En la lnea 35 se llama a la funcin men() y en la lnea 36 se termina la funcin cerrando con una llave } Funcin menu() En las lneas 39 y 40 se inicia la funcin men con una llave {. Linea 41 se declara la variable opc y se inicializa en 0. Lineas 42 y 43 se inicializa un ciclo do-while tambin con una llave {. Linea 44 se limpia pantalla con la funcin clrscr(). Linea 45 se ubica la salida en pantalla con la funcin gotoxy. La lnea 46 se define el color de salida en pantalla del fondo y color del texto. De las lneas 47 a la 60 se tiene la salida en pantalla de las opciones del men y su ubicacin en la pantalla con la funcin gotoxy. En la lnea 61 y 62 se captura la opcin escogida en el men. De las las 64 a la 82 se utiliza un switch para entrar a la opcin escogida segn el men entrando al case indicado donde se llama a la funcin respectiva. En la lnea 84 se cierra el do-while y en la lnea 85 se cierra la funcin con una llave }. Funcin insertar() Se inicia en la lnea 90 donde se reciben unos parmetros. En la lnea 92 al tipo de dato estructura llamado lista se le apuntan 3 apuntadores. En la lnea 93 se crea un nuevo nodo con asignacin dinmica de memoria. De las lneas 94 a la 98 si no se pudo crear el nodo saca mensaje de error y se sale. De las lneas 99 a la 116 se capturan los datos a guardar en el nuevo nodo. En la lnea 117 puntauxiliar apunta a null. En la lnea 118 cablista apunta a donde est el apuntador *entero.En la lnea 119 se abre un ciclo while con la condicin de que cabLista sea diferente de nulo y cabLista.numero sea menor que valor. En la lnea 121 si se cumple la condicin del while entonces puntAuxiliar se le asigna cabLista. En la lnea 122 a cabLista se le asigna cabLista.sig. De lneas 124 a 133 hay un condicional si puntAuxiliar es igual a nulo osea si la lista esta vaca entonces el asigna a recorrer.sig donde esta el apuntador *entero en este caso *entero esta apuntando a null y a *entero lo asigna a recorrer osea lo coloca como cabecera de la lista. Sino se cumple la condicin osea puntAuxiliar no es nulo (la lista no esta vaca) entonces puntAuxiliar.sig le asigna recorrer y a recorrer.sig lo apunta a cablista. Lnea 134 fin de la funcin insertar(). Funcin Eliminar() En la lnea 138 se inicia la funcin recibiendo parmetros para la funcin. En las lneas 140 a la 142 se toma a cablista y se apunta al apuntador *entero y a puntAuxiliar se le asigna nulo. En la lista 148 hay un condicional Si cablista es igual a nulo osea si la lista esta vaca saca un mensaje anunciando eso, como se ve en la lnea 150. Sino en la lnea 155 pide el cdigo a eliminar y en la 156 lo captura. En la lnea 157 aparece un ciclo While donde si cablista es diferente de null osea no esta vacia la lista y cablista.numero es diferente de valor. En las lneas siguientes 160 y 161 recorre la lista y compara (lnea 164) si

cablista.numero es diferente de valor osea no hay coincidencias entonces saca el mensaje el numero no existe en la lista, como aparece en la lnea 165, sino osea si hay coincidencias entre cablista.numero y valor entonces procede a la eliminacin no importando si se encuentra el nodo al principio, al intermedio o al final de la lista, como se evidencia en la lnea 174 donde con el operador delete se elimina el nodo. En la lnea 179 se retorna al entorno grafico fondo de texto negro y color texto blanco. Funcin Visualizar() Esta funcin comienza en la lnea 183. En la lnea 186 el apuntador cablista se le asigna que apunte a *entero. Luego en la lnea 192 se encuentra un condicional donde se evala que si cablista es igual a null osea se pregunta si la lista esta vaca. Si es as en la lnea 194 se enva un mensaje por pantalla avisando que la lista esta vaca. Sino se procede a visualizar por pantalla la informacin de la lista. Para ello en la lnea 202 encontramos un ciclo repetitivo o while que tiene como condicin que si cablista es diferente de null osea si la lista tiene elementos entonces los imprime por pantalla eso se hace con el cdigo de las lneas 205 a las 209. Luego en la lnea 210 se apunta cablista a cablista.sig osea al siguiente nodo hasta llegar al final. En la lnea 213 se retorna al entorno grafico fondo de texto negro y color texto blanco. Lnea 214 final de la funcin. Funcin Buscar() Comienza en la lnea 217. Linea 218 se abre la funcin con la llave {. En la lnea 220 el apuntador cablista se le asigna que apunte a *entero. En la lnea 226 se encuentra un condicional donde se evala que si cablista es igual a null osea se pregunta si la lista esta vaca. Si es as en la lnea 228 se enva un mensaje por pantalla avisando esto. Sino entonces en la lnea 234 se pide el cdigo a buscar en la lista. En la lnea siguiente la 235 se captura ese cdigo. En la lnea 236 aparece un ciclo while o mientras que la condicin de cablista diferente de nulo y cablista.numero menor que valor entonces pasa la siguiente nodo y verificu un condicional que aparece en la lnea 239, donde se evalua la condicin de que si cablista.numero es igual a valor es porque encontr el cdigo. Envia un mensaje avisando que lo encontr como se nota en la lnea 240. En la lnea 242 a la 244 imprime por pantalla la informacin del nodo encontrado. Pero si no lo encuentra enva el mensaje de que no lo encontr, lnea 246. Funcin Portada() Lnea 251 se encuentra el inicio de la funcin la cual no devuelve valores porque es vaca. Lnea 253 y 254 se limpia la pantalla y se prepara el color del fondo del texto y el color del texto. De la lneas 255 a la 286 se enva por pantalla la portada del trabajo utilizando la funcin gotoxy para ubicar los textos en pantalla. Linea 289 final de la funcin. CONCLUSION Con el desarrollo de este trabajo de pudimos entender las aplicacin de las listas enlazadas ya que estas tienen menos restricciones que las pilas o colas. A partir de estos conceptos reconocemos la importancia de este temtica en la programacin estructurada. BIBLIOGRAFIA * Modulo de Estructura de Datos. UNAD 2011 * Aula virtual: Curso 301305 Estructura de Datos. UNAD 2011i

Potrebbero piacerti anche