SlideShare una empresa de Scribd logo
1 de 26
Descargar para leer sin conexión
Titulo	del	Documento	 	 Versión	 Fecha	
Agenda	con	Listas	Enlazadas	 1.0	 Marzo	2014	
	
	
Universidad	del	Valle	de	México	Campus	Roma	 	 Profesor:	Francisco	Nazario	
	
	 2	
Contenido
Titulo	del	Documento	 	 Versión	 Fecha	
Agenda	con	Listas	Enlazadas	 1.0	 Marzo	2014	
	
	
Universidad	del	Valle	de	México	Campus	Roma	 	 Profesor:	Francisco	Nazario	
	
	 3	
Introducción
El manejo de apuntadores en el lenguaje C++ nos permite agilizar el procesamiento de los datos en las distintas operaciones que
se van dando durante la ejecución del programa, de igual forma nos permite relacionar o reasignar valores a una variable sin que
sea necesario referirnos al nombre de la misma como se ha señalado en cursos anteriores de programación, si sumamos a los
apuntadores estructuras de datos y objetos de las mismas tenemos un importante ahorro de código lo que facilita el entendimiento
de las líneas de código y el cómo viajan los datos durante la ejecución, vista la reutilización de código como una de las mejores
prácticas podemos realizar “más con menos” y así disminuir el tiempo que utilizamos del procesador para realizar las operaciones.
Las direcciones de memoria juegan un papel de suma importancia ya que mediante estas es como realmente se agiliza el manejo
de los datos que contienen dichas direcciones de memoria, siendo de mucha ayuda cuando deseamos que el procesador optimice
tiempos de ejecución y atención de procesos/operaciones.
Titulo	del	Documento	 	 Versión	 Fecha	
Agenda	con	Listas	Enlazadas	 1.0	 Marzo	2014	
	
	
Universidad	del	Valle	de	México	Campus	Roma	 	 Profesor:	Francisco	Nazario	
	
	 4	
Objetivo
Mostrar al lector el uso y manejo de apuntadores para controlar el flujo de información durante la ejecución de la aplicación para
una eficiente administración de memoria RAM, lo que deriva en un control y un manejo transparente de los valores, operaciones
y resultados que arroja, la declaración, inclusión y los modificadores de las funciones conocidas para incluir la referencia a los
apuntadores y “contenedores” a los que “apuntan” este tipo de elementos tan recurrentes.
Titulo	del	Documento	 	 Versión	 Fecha	
Agenda	con	Listas	Enlazadas	 1.0	 Marzo	2014	
	
	
Universidad	del	Valle	de	México	Campus	Roma	 	 Profesor:	Francisco	Nazario	
	
	 5	
Desarrollo
Titulo	del	Documento	 	 Versión	 Fecha	
Agenda	con	Listas	Enlazadas	 1.0	 Marzo	2014	
	
	
Universidad	del	Valle	de	México	Campus	Roma	 	 Profesor:	Francisco	Nazario	
	
	 6	
Al iniciar la ejecución de la aplicación muestra un menú de opciones para el usuario, permitiendo elegir entre cuatro opciones:
Alta de registro en la agenda
Eliminar elemento de la agenda
Mostrar elementos de la agenda
Salir de la aplicación
El usuario debe ingresar el número correspondiente a la opción deseada.
Titulo	del	Documento	 	 Versión	 Fecha	
Agenda	con	Listas	Enlazadas	 1.0	 Marzo	2014	
	
	
Universidad	del	Valle	de	México	Campus	Roma	 	 Profesor:	Francisco	Nazario	
	
	 7	
Si el usuario ingresa un número que no corresponde a las opciones el programa le notifica mediante un mensaje en pantalla
indicando que puede intentar el ingreso de algún número que corresponda a alguna de las opciones del menú:
Este mensaje es constante mientras el usuario no ingrese una opción válida del menú, un punto de seguridad contemplando el
correcto manejo de la información y evitando “basura” en el programa.
Titulo	del	Documento	 	 Versión	 Fecha	
Agenda	con	Listas	Enlazadas	 1.0	 Marzo	2014	
	
	
Universidad	del	Valle	de	México	Campus	Roma	 	 Profesor:	Francisco	Nazario	
	
	 8	
Opción 1: Ingresar registro a la agenda
Al ingresar el número 1 en el menú del programa, limpia la pantalla y comienza a solicitar información al usuario la cual será
asignada al nuevo registro de la agenda, los valores a ingresar son:
Nombre
Apellido Paterno
Apellido Materno
Fecha de nacimiento a 8 posiciones, dos para el día, dos para el mes y las últimas cuatro correspondientes al año
Número telefónico a 10 posiciones
Titulo	del	Documento	 	 Versión	 Fecha	
Agenda	con	Listas	Enlazadas	 1.0	 Marzo	2014	
	
	
Universidad	del	Valle	de	México	Campus	Roma	 	 Profesor:	Francisco	Nazario	
	
	 9	
Dentro de las validaciones al ingresar un registro se considera lo siguiente:
1. Los datos se organizan alfabéticamente al ser ingresados.
2. Los registros tienen como control para el ordenamiento el Apellido Paterno.
3. Los datos tipo CHAR se almacenan en mayúsculas para el correcto manejo de la información
Una vez ingresados los datos del registro la aplicación regresa al menú inicial limpiando la pantalla previamente.
Titulo	del	Documento	 	 Versión	 Fecha	
Agenda	con	Listas	Enlazadas	 1.0	 Marzo	2014	
	
	
Universidad	del	Valle	de	México	Campus	Roma	 	 Profesor:	Francisco	Nazario	
	
	 10	
Opción 2: Eliminar un elemento de la agenda
Al ingresar el número 2 en el menú del programa, solicita al usuario el texto referente al apellido paterno que se desea eliminar:
Titulo	del	Documento	 	 Versión	 Fecha	
Agenda	con	Listas	Enlazadas	 1.0	 Marzo	2014	
	
	
Universidad	del	Valle	de	México	Campus	Roma	 	 Profesor:	Francisco	Nazario	
	
	 11	
El texto debe ser igual al registrado, la aplicación no valida mayúscula de minúsculas ya que el dato capturado se convierte a
mayúsculas y así se realiza la búsqueda del valor, en caso de ser encontrado el dato procede con el borrado de dicho registro y
notifica al usuario mediante un mensaje en pantalla.
Titulo	del	Documento	 	 Versión	 Fecha	
Agenda	con	Listas	Enlazadas	 1.0	 Marzo	2014	
	
	
Universidad	del	Valle	de	México	Campus	Roma	 	 Profesor:	Francisco	Nazario	
	
	 12	
En caso de no encontrarse el dato en la agenda se le notifica al usuario y se le insta a continuar con la ejecución al presionar una
tecla:
Solo es requerido que el usuario presione una tecla para continuar con la ejecución del programa.
Titulo	del	Documento	 	 Versión	 Fecha	
Agenda	con	Listas	Enlazadas	 1.0	 Marzo	2014	
	
	
Universidad	del	Valle	de	México	Campus	Roma	 	 Profesor:	Francisco	Nazario	
	
	 13	
Opción 3: Listar los registros de la agenda
Para listar los registros debemos teclear el número 3 en el menú principal, la pantalla resultante nos muestra los elementos actuales
de la agenda:
Titulo	del	Documento	 	 Versión	 Fecha	
Agenda	con	Listas	Enlazadas	 1.0	 Marzo	2014	
	
	
Universidad	del	Valle	de	México	Campus	Roma	 	 Profesor:	Francisco	Nazario	
	
	 14	
Ingrese la siguiente información:
Nombre: Jose
Apellido P: Guerrero
Apellido M: Piesich
Fecha de Nac: 11 de Mayo de 1970
Teléfono: 4738192034
Nombre: Erika
Apellido P: Zamora
Apellido M: Calderon
Fecha de Nac: 23 Septiembre de 2011
Teléfono: 8299375560
Muestre la información de la agenda con las adiciones.
Elimine el registro del Apellido ZAMORA
Muestre el listado de los elementos actuales de la agenda.
Titulo	del	Documento	 	 Versión	 Fecha	
Agenda	con	Listas	Enlazadas	 1.0	 Marzo	2014	
	
	
Universidad	del	Valle	de	México	Campus	Roma	 	 Profesor:	Francisco	Nazario	
	
	 15	
Ingresar la información.
Titulo	del	Documento	 	 Versión	 Fecha	
Agenda	con	Listas	Enlazadas	 1.0	 Marzo	2014	
	
	
Universidad	del	Valle	de	México	Campus	Roma	 	 Profesor:	Francisco	Nazario	
	
	 16	
Mostrar la agenda con los elementos nuevos.
Titulo	del	Documento	 	 Versión	 Fecha	
Agenda	con	Listas	Enlazadas	 1.0	 Marzo	2014	
	
	
Universidad	del	Valle	de	México	Campus	Roma	 	 Profesor:	Francisco	Nazario	
	
	 17	
Eliminar el registro de apellido Zamora.
Titulo	del	Documento	 	 Versión	 Fecha	
Agenda	con	Listas	Enlazadas	 1.0	 Marzo	2014	
	
	
Universidad	del	Valle	de	México	Campus	Roma	 	 Profesor:	Francisco	Nazario	
	
	 18	
Enlistar los elementos actuales de la agenda.
Titulo	del	Documento	 	 Versión	 Fecha	
Agenda	con	Listas	Enlazadas	 1.0	 Marzo	2014	
	
	
Universidad	del	Valle	de	México	Campus	Roma	 	 Profesor:	Francisco	Nazario	
	
	 19	
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
#include<string.h>
#include<ctype.h>
int opc, fnac, tel;
char nombre[20], apat[20], amat[20];
typedef struct nodo {
char Nombre[20];
char Apat[20];
char Amat[20];
int Fnac;
int Tel;
struct nodo *siguiente;
} tipoNodo;
typedef tipoNodo *pNodo;
Titulo	del	Documento	 	 Versión	 Fecha	
Agenda	con	Listas	Enlazadas	 1.0	 Marzo	2014	
	
	
Universidad	del	Valle	de	México	Campus	Roma	 	 Profesor:	Francisco	Nazario	
	
	 20	
typedef tipoNodo *Lista;
Lista lista = NULL;
void Mayus(char s[])
{
int j;
for (j=0; j < strlen(s); j++)
s[j]=toupper(s[j]);
}
void agregar()
{
pNodo nuevo, anterior;
nuevo = (pNodo)malloc(sizeof(tipoNodo));
system("cls");
printf("Ingresa el nombre: ");
scanf("%s", &nombre);
Mayus(nombre);
strcpy(nuevo->Nombre,nombre);
printf("nIngresa el apellido Paterno: ");
scanf("%s",&apat);
Mayus(apat);
Titulo	del	Documento	 	 Versión	 Fecha	
Agenda	con	Listas	Enlazadas	 1.0	 Marzo	2014	
	
	
Universidad	del	Valle	de	México	Campus	Roma	 	 Profesor:	Francisco	Nazario	
	
	 21	
strcpy(nuevo->Apat,apat);
printf("nIngresa el apellido Materno: ");
scanf("%s", &amat);
Mayus(amat);
strcpy(nuevo->Amat,amat);
printf("nIngresa la fecha de nacimiento nej.: 13012014 = 13 de enero de 2014.: ");
scanf("%d", &fnac);
nuevo->Fnac = fnac;
printf("nIngresa el tel%cfono de contacto a 10 d%cgitos: ", 130, 161);
scanf("%d", &tel);
nuevo->Tel = tel;
//Ordenamiento para cada conjunto de datos que se ingresan
if(lista==NULL || strcmp(lista->Apat,nuevo->Apat) > 0)
{
nuevo->siguiente = lista;
lista = nuevo;
}
else
{
anterior = lista;
while(anterior->siguiente!=NULL && strcmp(anterior->siguiente->Apat,nuevo->Apat) <= 0)
{
anterior = anterior->siguiente;
Titulo	del	Documento	 	 Versión	 Fecha	
Agenda	con	Listas	Enlazadas	 1.0	 Marzo	2014	
	
	
Universidad	del	Valle	de	México	Campus	Roma	 	 Profesor:	Francisco	Nazario	
	
	 22	
}
nuevo->siguiente = anterior->siguiente;
anterior->siguiente = nuevo;
}
}
void elimina()
{
char apser[20];
pNodo reco, ante;
reco = lista;
ante = NULL;
if(reco == NULL)
{
printf("Lista vac%ca...", 161);
getch();
}
else
{
printf("nIngresa el Apellido paterno que deseas eliminar: ");
scanf("%s", &apser);
Mayus(apser);
Titulo	del	Documento	 	 Versión	 Fecha	
Agenda	con	Listas	Enlazadas	 1.0	 Marzo	2014	
	
	
Universidad	del	Valle	de	México	Campus	Roma	 	 Profesor:	Francisco	Nazario	
	
	 23	
while(reco != NULL && strcmp(reco->Apat,apser) < 0)
{
ante = reco;
reco = reco->siguiente;
}
if(reco == NULL || strcmp(reco->Apat,apser) != 0)
{
printf("nNo se encontr%c valor");
getch();
return;
}
else
{
if(ante == NULL)
{
lista = reco->siguiente;
}
else
ante->siguiente = reco->siguiente;
free(reco);
printf("Registro eliminado, presiona una tecla para continuar...");
getch();
}
}
Titulo	del	Documento	 	 Versión	 Fecha	
Agenda	con	Listas	Enlazadas	 1.0	 Marzo	2014	
	
	
Universidad	del	Valle	de	México	Campus	Roma	 	 Profesor:	Francisco	Nazario	
	
	 24	
}
void muestra()
{
pNodo recorre = lista;
if(lista == NULL)
{
printf("Lista vac%ca...", 161);
getch();
}else
{
printf("NombretAp PaternotAp MaternotFecha NactTel%cfonon", 130);
while(recorre != NULL)
{
printf("%st %stt %stt %dt %dn", recorre->Nombre, recorre->Apat, recorre->Amat, recorre->Fnac, recorre->Tel);
recorre = recorre->siguiente;
}
getch();
}
}
void menu()
Titulo	del	Documento	 	 Versión	 Fecha	
Agenda	con	Listas	Enlazadas	 1.0	 Marzo	2014	
	
	
Universidad	del	Valle	de	México	Campus	Roma	 	 Profesor:	Francisco	Nazario	
	
	 25	
{
system("cls");
printf("Bienvenido, a continuaci%cn se muestra el men%c de opciones:n", 162, 163);
printf("1.-Agregar elemento a la agendan");
printf("2.-Eliminar un registro de la agendan");
printf("3.-Mostrar el contenido de la agendan");
printf("4.-Salirn");
}
main()
{
char resp;
do
{
system("cls");
menu();
scanf("%d", &opc);
if(opc > 0 && opc < 4)
{
switch (opc)
{
case 1: agregar();break;
case 2: elimina();break;
case 3: muestra(); break;
}
Titulo	del	Documento	 	 Versión	 Fecha	
Agenda	con	Listas	Enlazadas	 1.0	 Marzo	2014	
	
	
Universidad	del	Valle	de	México	Campus	Roma	 	 Profesor:	Francisco	Nazario	
	
	 26	
}
if(opc > 4)
{
printf("Opci%cn inv%clida, vuelve a intentarlo. nERROR 401: Forbiden", 162, 160);
getch();
}
}while(opc != 4);
}
Titulo	del	Documento	 	 Versión	 Fecha	
Agenda	con	Listas	Enlazadas	 1.0	 Marzo	2014	
	
	
Universidad	del	Valle	de	México	Campus	Roma	 	 Profesor:	Francisco	Nazario	
	
	 27	
Conclusiones
Después de la codificación del programa, la ejecución y el ejercicio efectuado se validó la funcionalidad del mismo y se corroboró
la utilidad de los apuntadores para un mejor manejo de la información, el paso de parámetros y en este caso en particular el
ordenamiento de los elementos conforme se fueron ingresando, el programa no presento errores ni excepciones ya que se
contemplaron elementos de seguridad que restringen al usuario en cuanto al menú y la búsqueda de elementos.

Más contenido relacionado

La actualidad más candente

Sesión12 - Trigger (Oracle)
Sesión12 - Trigger (Oracle)Sesión12 - Trigger (Oracle)
Sesión12 - Trigger (Oracle)José Toro
 
Codigo para crear la base de datos
Codigo para crear la base de datosCodigo para crear la base de datos
Codigo para crear la base de datosAlvaro Cardona
 
BASE DE DATOS INTRODUCCION
BASE DE DATOS INTRODUCCIONBASE DE DATOS INTRODUCCION
BASE DE DATOS INTRODUCCIONejjsm
 
Unidad 3 ensambladores
Unidad 3 ensambladoresUnidad 3 ensambladores
Unidad 3 ensambladoresGustavo Davila
 
CreacióN De Objetos En MySQL
CreacióN De Objetos En MySQLCreacióN De Objetos En MySQL
CreacióN De Objetos En MySQLalexmerono
 
Crear y Eliminar Bases de datos en MySQL Workbench
Crear y Eliminar  Bases de datos en MySQL WorkbenchCrear y Eliminar  Bases de datos en MySQL Workbench
Crear y Eliminar Bases de datos en MySQL WorkbenchJair Ospino Ardila
 
Qué es la ingeniería web
Qué es la ingeniería webQué es la ingeniería web
Qué es la ingeniería webVictor Barraza
 
Arquitectura de la computadora
Arquitectura de la computadoraArquitectura de la computadora
Arquitectura de la computadoraMauricio Hernandez
 
Creación de tablas y relaciones en mysql workbench
Creación de tablas y relaciones en mysql workbenchCreación de tablas y relaciones en mysql workbench
Creación de tablas y relaciones en mysql workbenchJair Ospino Ardila
 
Bazaar la herramienta para el control de versiones de forma distribuida
Bazaar la herramienta para el control de versiones de forma distribuidaBazaar la herramienta para el control de versiones de forma distribuida
Bazaar la herramienta para el control de versiones de forma distribuidaEsteban Saavedra
 
Manual del sistema Pagina Web. UFT
Manual del sistema Pagina Web. UFTManual del sistema Pagina Web. UFT
Manual del sistema Pagina Web. UFTAmandaMiguel
 
Caso de-uso-1228271248231157-9
Caso de-uso-1228271248231157-9Caso de-uso-1228271248231157-9
Caso de-uso-1228271248231157-9Toni Benitez
 

La actualidad más candente (20)

Sesión12 - Trigger (Oracle)
Sesión12 - Trigger (Oracle)Sesión12 - Trigger (Oracle)
Sesión12 - Trigger (Oracle)
 
Codigo para crear la base de datos
Codigo para crear la base de datosCodigo para crear la base de datos
Codigo para crear la base de datos
 
2.1.4 ShellSort.pptx
2.1.4 ShellSort.pptx2.1.4 ShellSort.pptx
2.1.4 ShellSort.pptx
 
Bt haskell-1
Bt haskell-1Bt haskell-1
Bt haskell-1
 
PRESENTACIÓN RUP
PRESENTACIÓN RUPPRESENTACIÓN RUP
PRESENTACIÓN RUP
 
BASE DE DATOS INTRODUCCION
BASE DE DATOS INTRODUCCIONBASE DE DATOS INTRODUCCION
BASE DE DATOS INTRODUCCION
 
Ensamblador y lenguaje c
Ensamblador y lenguaje cEnsamblador y lenguaje c
Ensamblador y lenguaje c
 
Unidad 3 ensambladores
Unidad 3 ensambladoresUnidad 3 ensambladores
Unidad 3 ensambladores
 
App inventor
App inventorApp inventor
App inventor
 
CreacióN De Objetos En MySQL
CreacióN De Objetos En MySQLCreacióN De Objetos En MySQL
CreacióN De Objetos En MySQL
 
Estimación Software por Puntos de Función
Estimación Software por Puntos de FunciónEstimación Software por Puntos de Función
Estimación Software por Puntos de Función
 
macros Lenguaje ensamblador
macros Lenguaje ensambladormacros Lenguaje ensamblador
macros Lenguaje ensamblador
 
Crear y Eliminar Bases de datos en MySQL Workbench
Crear y Eliminar  Bases de datos en MySQL WorkbenchCrear y Eliminar  Bases de datos en MySQL Workbench
Crear y Eliminar Bases de datos en MySQL Workbench
 
Qué es la ingeniería web
Qué es la ingeniería webQué es la ingeniería web
Qué es la ingeniería web
 
Arquitectura de la computadora
Arquitectura de la computadoraArquitectura de la computadora
Arquitectura de la computadora
 
Creación de tablas y relaciones en mysql workbench
Creación de tablas y relaciones en mysql workbenchCreación de tablas y relaciones en mysql workbench
Creación de tablas y relaciones en mysql workbench
 
Bazaar la herramienta para el control de versiones de forma distribuida
Bazaar la herramienta para el control de versiones de forma distribuidaBazaar la herramienta para el control de versiones de forma distribuida
Bazaar la herramienta para el control de versiones de forma distribuida
 
Manual del sistema Pagina Web. UFT
Manual del sistema Pagina Web. UFTManual del sistema Pagina Web. UFT
Manual del sistema Pagina Web. UFT
 
Caso de-uso-1228271248231157-9
Caso de-uso-1228271248231157-9Caso de-uso-1228271248231157-9
Caso de-uso-1228271248231157-9
 
COMANDOS DDL
COMANDOS DDLCOMANDOS DDL
COMANDOS DDL
 

Destacado

Rc luz rodriguez
Rc luz rodriguezRc luz rodriguez
Rc luz rodriguezluznury
 
Ejemplo de ingeniería de software V 2.0
Ejemplo de ingeniería de software V 2.0Ejemplo de ingeniería de software V 2.0
Ejemplo de ingeniería de software V 2.0Victor Escamilla
 
Como crear una mini agenda personal
Como crear una mini agenda personalComo crear una mini agenda personal
Como crear una mini agenda personalSady Euceda
 
Instalación Windows Server 2012 - Instalación y configuración de active direc...
Instalación Windows Server 2012 - Instalación y configuración de active direc...Instalación Windows Server 2012 - Instalación y configuración de active direc...
Instalación Windows Server 2012 - Instalación y configuración de active direc...Victor Escamilla
 
Estructura de datos c++
Estructura de datos c++ Estructura de datos c++
Estructura de datos c++ eliezerbs
 
Crear agenda telefonica access paso a paso
Crear agenda telefonica access paso a pasoCrear agenda telefonica access paso a paso
Crear agenda telefonica access paso a pasoLouis Jhosimar
 
Los 13 diagramas UML y sus componentes
Los 13 diagramas UML y sus componentesLos 13 diagramas UML y sus componentes
Los 13 diagramas UML y sus componentesVictor Escamilla
 

Destacado (10)

Rc luz rodriguez
Rc luz rodriguezRc luz rodriguez
Rc luz rodriguez
 
Listas Simples Enlazadas
Listas Simples EnlazadasListas Simples Enlazadas
Listas Simples Enlazadas
 
Ejemplo de ingeniería de software V 2.0
Ejemplo de ingeniería de software V 2.0Ejemplo de ingeniería de software V 2.0
Ejemplo de ingeniería de software V 2.0
 
Como crear una mini agenda personal
Como crear una mini agenda personalComo crear una mini agenda personal
Como crear una mini agenda personal
 
Instalación Windows Server 2012 - Instalación y configuración de active direc...
Instalación Windows Server 2012 - Instalación y configuración de active direc...Instalación Windows Server 2012 - Instalación y configuración de active direc...
Instalación Windows Server 2012 - Instalación y configuración de active direc...
 
Estructura de datos c++
Estructura de datos c++ Estructura de datos c++
Estructura de datos c++
 
Crear agenda telefonica access paso a paso
Crear agenda telefonica access paso a pasoCrear agenda telefonica access paso a paso
Crear agenda telefonica access paso a paso
 
Los 13 diagramas UML y sus componentes
Los 13 diagramas UML y sus componentesLos 13 diagramas UML y sus componentes
Los 13 diagramas UML y sus componentes
 
Estructura datos pilas y colas
Estructura datos pilas y colasEstructura datos pilas y colas
Estructura datos pilas y colas
 
Listas enlazadas
Listas enlazadasListas enlazadas
Listas enlazadas
 

Similar a Listas enlazadas C++ agenda contactos

Trabajo normas cristian llanos
Trabajo normas cristian llanosTrabajo normas cristian llanos
Trabajo normas cristian llanosChristian LLanos
 
Trabajo normas cristian llanos
Trabajo normas cristian llanosTrabajo normas cristian llanos
Trabajo normas cristian llanosChristian LLanos
 
SECCIONES, TABLA DE CONTENIDOS , TABLA DE ILUSTRACIONES, REFERENCIAS BIBLIOGR...
SECCIONES, TABLA DE CONTENIDOS , TABLA DE ILUSTRACIONES, REFERENCIAS BIBLIOGR...SECCIONES, TABLA DE CONTENIDOS , TABLA DE ILUSTRACIONES, REFERENCIAS BIBLIOGR...
SECCIONES, TABLA DE CONTENIDOS , TABLA DE ILUSTRACIONES, REFERENCIAS BIBLIOGR...Jhon Játiva
 
Trabajo de compu ponencias cieza julca modesto
Trabajo de compu ponencias cieza julca modestoTrabajo de compu ponencias cieza julca modesto
Trabajo de compu ponencias cieza julca modestoMode Cieza Julca
 
Trabajo de compu ponencias cieza julca modesto
Trabajo de compu ponencias cieza julca modestoTrabajo de compu ponencias cieza julca modesto
Trabajo de compu ponencias cieza julca modestoMode Cieza Julca
 
Trabajo de compu ponencias cieza julca modesto
Trabajo de compu ponencias cieza julca modestoTrabajo de compu ponencias cieza julca modesto
Trabajo de compu ponencias cieza julca modestoMode Cieza Julca
 
Requisito 150716154725-lva1-app6892-150723155220-lva1-app6892 (1)perezpineda
Requisito 150716154725-lva1-app6892-150723155220-lva1-app6892 (1)perezpinedaRequisito 150716154725-lva1-app6892-150723155220-lva1-app6892 (1)perezpineda
Requisito 150716154725-lva1-app6892-150723155220-lva1-app6892 (1)perezpinedajestebanpineda
 
base de datos access 2010
base de datos access 2010 base de datos access 2010
base de datos access 2010 skxjjasu8e
 
Proyecto Tutorial Open Office-Maestria en Docencia Superior (CRUPO)
Proyecto Tutorial Open Office-Maestria en Docencia Superior (CRUPO)Proyecto Tutorial Open Office-Maestria en Docencia Superior (CRUPO)
Proyecto Tutorial Open Office-Maestria en Docencia Superior (CRUPO)Angel Samaniego
 

Similar a Listas enlazadas C++ agenda contactos (20)

Taller aplicaciones
Taller aplicacionesTaller aplicaciones
Taller aplicaciones
 
Trabajo normas
Trabajo normas Trabajo normas
Trabajo normas
 
Trabajo normas cristian llanos
Trabajo normas cristian llanosTrabajo normas cristian llanos
Trabajo normas cristian llanos
 
Trabajo normas cristian llanos
Trabajo normas cristian llanosTrabajo normas cristian llanos
Trabajo normas cristian llanos
 
incontec
incontecincontec
incontec
 
Mcvs de-02 manual de usuario final
Mcvs de-02 manual de usuario finalMcvs de-02 manual de usuario final
Mcvs de-02 manual de usuario final
 
SECCIONES, TABLA DE CONTENIDOS , TABLA DE ILUSTRACIONES, REFERENCIAS BIBLIOGR...
SECCIONES, TABLA DE CONTENIDOS , TABLA DE ILUSTRACIONES, REFERENCIAS BIBLIOGR...SECCIONES, TABLA DE CONTENIDOS , TABLA DE ILUSTRACIONES, REFERENCIAS BIBLIOGR...
SECCIONES, TABLA DE CONTENIDOS , TABLA DE ILUSTRACIONES, REFERENCIAS BIBLIOGR...
 
Trabajo de compu ponencias cieza julca modesto
Trabajo de compu ponencias cieza julca modestoTrabajo de compu ponencias cieza julca modesto
Trabajo de compu ponencias cieza julca modesto
 
Trabajo de compu ponencias cieza julca modesto
Trabajo de compu ponencias cieza julca modestoTrabajo de compu ponencias cieza julca modesto
Trabajo de compu ponencias cieza julca modesto
 
Trabajo de compu ponencias cieza julca modesto
Trabajo de compu ponencias cieza julca modestoTrabajo de compu ponencias cieza julca modesto
Trabajo de compu ponencias cieza julca modesto
 
Uanl recursos educativosabiertos
Uanl recursos educativosabiertosUanl recursos educativosabiertos
Uanl recursos educativosabiertos
 
Doc 2
Doc 2Doc 2
Doc 2
 
Apuntes de clase de r
Apuntes de clase  de  rApuntes de clase  de  r
Apuntes de clase de r
 
Trabajo de investigación (informática)
Trabajo de investigación (informática)Trabajo de investigación (informática)
Trabajo de investigación (informática)
 
documento
documentodocumento
documento
 
Oa
OaOa
Oa
 
Weep2
Weep2Weep2
Weep2
 
Requisito 150716154725-lva1-app6892-150723155220-lva1-app6892 (1)perezpineda
Requisito 150716154725-lva1-app6892-150723155220-lva1-app6892 (1)perezpinedaRequisito 150716154725-lva1-app6892-150723155220-lva1-app6892 (1)perezpineda
Requisito 150716154725-lva1-app6892-150723155220-lva1-app6892 (1)perezpineda
 
base de datos access 2010
base de datos access 2010 base de datos access 2010
base de datos access 2010
 
Proyecto Tutorial Open Office-Maestria en Docencia Superior (CRUPO)
Proyecto Tutorial Open Office-Maestria en Docencia Superior (CRUPO)Proyecto Tutorial Open Office-Maestria en Docencia Superior (CRUPO)
Proyecto Tutorial Open Office-Maestria en Docencia Superior (CRUPO)
 

Más de Victor Escamilla

Stack, Queue y listas en C++
Stack, Queue y listas en C++Stack, Queue y listas en C++
Stack, Queue y listas en C++Victor Escamilla
 
Ejercicio de Análisis de Sistemas
Ejercicio de Análisis de SistemasEjercicio de Análisis de Sistemas
Ejercicio de Análisis de SistemasVictor Escamilla
 
Teoría de conjuntos - Ejemplo aplicado
Teoría de conjuntos - Ejemplo aplicadoTeoría de conjuntos - Ejemplo aplicado
Teoría de conjuntos - Ejemplo aplicadoVictor Escamilla
 
Administración de Proyectos informaticos - Ejemplo aplicado
Administración de Proyectos informaticos - Ejemplo aplicadoAdministración de Proyectos informaticos - Ejemplo aplicado
Administración de Proyectos informaticos - Ejemplo aplicadoVictor Escamilla
 
Cronologia y caracteristicas de microprocesadores Intel - Update hasta Intel ...
Cronologia y caracteristicas de microprocesadores Intel - Update hasta Intel ...Cronologia y caracteristicas de microprocesadores Intel - Update hasta Intel ...
Cronologia y caracteristicas de microprocesadores Intel - Update hasta Intel ...Victor Escamilla
 
Recuperación de archivos eliminados.
Recuperación de archivos eliminados.Recuperación de archivos eliminados.
Recuperación de archivos eliminados.Victor Escamilla
 
Ejercicio de PHP, MySQL y Apache
Ejercicio de PHP, MySQL y ApacheEjercicio de PHP, MySQL y Apache
Ejercicio de PHP, MySQL y ApacheVictor Escamilla
 
Descripción de cubos OLAP
Descripción de cubos OLAPDescripción de cubos OLAP
Descripción de cubos OLAPVictor Escamilla
 

Más de Victor Escamilla (8)

Stack, Queue y listas en C++
Stack, Queue y listas en C++Stack, Queue y listas en C++
Stack, Queue y listas en C++
 
Ejercicio de Análisis de Sistemas
Ejercicio de Análisis de SistemasEjercicio de Análisis de Sistemas
Ejercicio de Análisis de Sistemas
 
Teoría de conjuntos - Ejemplo aplicado
Teoría de conjuntos - Ejemplo aplicadoTeoría de conjuntos - Ejemplo aplicado
Teoría de conjuntos - Ejemplo aplicado
 
Administración de Proyectos informaticos - Ejemplo aplicado
Administración de Proyectos informaticos - Ejemplo aplicadoAdministración de Proyectos informaticos - Ejemplo aplicado
Administración de Proyectos informaticos - Ejemplo aplicado
 
Cronologia y caracteristicas de microprocesadores Intel - Update hasta Intel ...
Cronologia y caracteristicas de microprocesadores Intel - Update hasta Intel ...Cronologia y caracteristicas de microprocesadores Intel - Update hasta Intel ...
Cronologia y caracteristicas de microprocesadores Intel - Update hasta Intel ...
 
Recuperación de archivos eliminados.
Recuperación de archivos eliminados.Recuperación de archivos eliminados.
Recuperación de archivos eliminados.
 
Ejercicio de PHP, MySQL y Apache
Ejercicio de PHP, MySQL y ApacheEjercicio de PHP, MySQL y Apache
Ejercicio de PHP, MySQL y Apache
 
Descripción de cubos OLAP
Descripción de cubos OLAPDescripción de cubos OLAP
Descripción de cubos OLAP
 

Último

RETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxRETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxAna Fernandez
 
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdfEjercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdfMaritzaRetamozoVera
 
Sesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docxSesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docxMaritzaRetamozoVera
 
2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdf2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdfBaker Publishing Company
 
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAFORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAEl Fortí
 
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdfDemetrio Ccesa Rayme
 
MAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grandeMAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grandeMarjorie Burga
 
Dinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes dDinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes dstEphaniiie
 
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptx
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptxEXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptx
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptxPryhaSalam
 
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOSTEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOSjlorentemartos
 
Ecosistemas Natural, Rural y urbano 2021.pptx
Ecosistemas Natural, Rural y urbano  2021.pptxEcosistemas Natural, Rural y urbano  2021.pptx
Ecosistemas Natural, Rural y urbano 2021.pptxolgakaterin
 
Heinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativoHeinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativoFundación YOD YOD
 
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptxOLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptxjosetrinidadchavez
 
Lecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdadLecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdadAlejandrino Halire Ccahuana
 

Último (20)

Power Point: "Defendamos la verdad".pptx
Power Point: "Defendamos la verdad".pptxPower Point: "Defendamos la verdad".pptx
Power Point: "Defendamos la verdad".pptx
 
RETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxRETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docx
 
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdfEjercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
 
Sesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docxSesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docx
 
2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdf2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdf
 
Power Point: Fe contra todo pronóstico.pptx
Power Point: Fe contra todo pronóstico.pptxPower Point: Fe contra todo pronóstico.pptx
Power Point: Fe contra todo pronóstico.pptx
 
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAFORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
 
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdf
 
Fe contra todo pronóstico. La fe es confianza.
Fe contra todo pronóstico. La fe es confianza.Fe contra todo pronóstico. La fe es confianza.
Fe contra todo pronóstico. La fe es confianza.
 
MAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grandeMAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grande
 
Sesión de clase: Defendamos la verdad.pdf
Sesión de clase: Defendamos la verdad.pdfSesión de clase: Defendamos la verdad.pdf
Sesión de clase: Defendamos la verdad.pdf
 
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdfTema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
 
Presentacion Metodología de Enseñanza Multigrado
Presentacion Metodología de Enseñanza MultigradoPresentacion Metodología de Enseñanza Multigrado
Presentacion Metodología de Enseñanza Multigrado
 
Dinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes dDinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes d
 
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptx
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptxEXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptx
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptx
 
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOSTEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
 
Ecosistemas Natural, Rural y urbano 2021.pptx
Ecosistemas Natural, Rural y urbano  2021.pptxEcosistemas Natural, Rural y urbano  2021.pptx
Ecosistemas Natural, Rural y urbano 2021.pptx
 
Heinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativoHeinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativo
 
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptxOLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
 
Lecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdadLecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdad
 

Listas enlazadas C++ agenda contactos

  • 1. Titulo del Documento Versión Fecha Agenda con Listas Enlazadas 1.0 Marzo 2014 Universidad del Valle de México Campus Roma Profesor: Francisco Nazario 2 Contenido
  • 2. Titulo del Documento Versión Fecha Agenda con Listas Enlazadas 1.0 Marzo 2014 Universidad del Valle de México Campus Roma Profesor: Francisco Nazario 3 Introducción El manejo de apuntadores en el lenguaje C++ nos permite agilizar el procesamiento de los datos en las distintas operaciones que se van dando durante la ejecución del programa, de igual forma nos permite relacionar o reasignar valores a una variable sin que sea necesario referirnos al nombre de la misma como se ha señalado en cursos anteriores de programación, si sumamos a los apuntadores estructuras de datos y objetos de las mismas tenemos un importante ahorro de código lo que facilita el entendimiento de las líneas de código y el cómo viajan los datos durante la ejecución, vista la reutilización de código como una de las mejores prácticas podemos realizar “más con menos” y así disminuir el tiempo que utilizamos del procesador para realizar las operaciones. Las direcciones de memoria juegan un papel de suma importancia ya que mediante estas es como realmente se agiliza el manejo de los datos que contienen dichas direcciones de memoria, siendo de mucha ayuda cuando deseamos que el procesador optimice tiempos de ejecución y atención de procesos/operaciones.
  • 3. Titulo del Documento Versión Fecha Agenda con Listas Enlazadas 1.0 Marzo 2014 Universidad del Valle de México Campus Roma Profesor: Francisco Nazario 4 Objetivo Mostrar al lector el uso y manejo de apuntadores para controlar el flujo de información durante la ejecución de la aplicación para una eficiente administración de memoria RAM, lo que deriva en un control y un manejo transparente de los valores, operaciones y resultados que arroja, la declaración, inclusión y los modificadores de las funciones conocidas para incluir la referencia a los apuntadores y “contenedores” a los que “apuntan” este tipo de elementos tan recurrentes.
  • 4. Titulo del Documento Versión Fecha Agenda con Listas Enlazadas 1.0 Marzo 2014 Universidad del Valle de México Campus Roma Profesor: Francisco Nazario 5 Desarrollo
  • 5. Titulo del Documento Versión Fecha Agenda con Listas Enlazadas 1.0 Marzo 2014 Universidad del Valle de México Campus Roma Profesor: Francisco Nazario 6 Al iniciar la ejecución de la aplicación muestra un menú de opciones para el usuario, permitiendo elegir entre cuatro opciones: Alta de registro en la agenda Eliminar elemento de la agenda Mostrar elementos de la agenda Salir de la aplicación El usuario debe ingresar el número correspondiente a la opción deseada.
  • 6. Titulo del Documento Versión Fecha Agenda con Listas Enlazadas 1.0 Marzo 2014 Universidad del Valle de México Campus Roma Profesor: Francisco Nazario 7 Si el usuario ingresa un número que no corresponde a las opciones el programa le notifica mediante un mensaje en pantalla indicando que puede intentar el ingreso de algún número que corresponda a alguna de las opciones del menú: Este mensaje es constante mientras el usuario no ingrese una opción válida del menú, un punto de seguridad contemplando el correcto manejo de la información y evitando “basura” en el programa.
  • 7. Titulo del Documento Versión Fecha Agenda con Listas Enlazadas 1.0 Marzo 2014 Universidad del Valle de México Campus Roma Profesor: Francisco Nazario 8 Opción 1: Ingresar registro a la agenda Al ingresar el número 1 en el menú del programa, limpia la pantalla y comienza a solicitar información al usuario la cual será asignada al nuevo registro de la agenda, los valores a ingresar son: Nombre Apellido Paterno Apellido Materno Fecha de nacimiento a 8 posiciones, dos para el día, dos para el mes y las últimas cuatro correspondientes al año Número telefónico a 10 posiciones
  • 8. Titulo del Documento Versión Fecha Agenda con Listas Enlazadas 1.0 Marzo 2014 Universidad del Valle de México Campus Roma Profesor: Francisco Nazario 9 Dentro de las validaciones al ingresar un registro se considera lo siguiente: 1. Los datos se organizan alfabéticamente al ser ingresados. 2. Los registros tienen como control para el ordenamiento el Apellido Paterno. 3. Los datos tipo CHAR se almacenan en mayúsculas para el correcto manejo de la información Una vez ingresados los datos del registro la aplicación regresa al menú inicial limpiando la pantalla previamente.
  • 9. Titulo del Documento Versión Fecha Agenda con Listas Enlazadas 1.0 Marzo 2014 Universidad del Valle de México Campus Roma Profesor: Francisco Nazario 10 Opción 2: Eliminar un elemento de la agenda Al ingresar el número 2 en el menú del programa, solicita al usuario el texto referente al apellido paterno que se desea eliminar:
  • 10. Titulo del Documento Versión Fecha Agenda con Listas Enlazadas 1.0 Marzo 2014 Universidad del Valle de México Campus Roma Profesor: Francisco Nazario 11 El texto debe ser igual al registrado, la aplicación no valida mayúscula de minúsculas ya que el dato capturado se convierte a mayúsculas y así se realiza la búsqueda del valor, en caso de ser encontrado el dato procede con el borrado de dicho registro y notifica al usuario mediante un mensaje en pantalla.
  • 11. Titulo del Documento Versión Fecha Agenda con Listas Enlazadas 1.0 Marzo 2014 Universidad del Valle de México Campus Roma Profesor: Francisco Nazario 12 En caso de no encontrarse el dato en la agenda se le notifica al usuario y se le insta a continuar con la ejecución al presionar una tecla: Solo es requerido que el usuario presione una tecla para continuar con la ejecución del programa.
  • 12. Titulo del Documento Versión Fecha Agenda con Listas Enlazadas 1.0 Marzo 2014 Universidad del Valle de México Campus Roma Profesor: Francisco Nazario 13 Opción 3: Listar los registros de la agenda Para listar los registros debemos teclear el número 3 en el menú principal, la pantalla resultante nos muestra los elementos actuales de la agenda:
  • 13. Titulo del Documento Versión Fecha Agenda con Listas Enlazadas 1.0 Marzo 2014 Universidad del Valle de México Campus Roma Profesor: Francisco Nazario 14 Ingrese la siguiente información: Nombre: Jose Apellido P: Guerrero Apellido M: Piesich Fecha de Nac: 11 de Mayo de 1970 Teléfono: 4738192034 Nombre: Erika Apellido P: Zamora Apellido M: Calderon Fecha de Nac: 23 Septiembre de 2011 Teléfono: 8299375560 Muestre la información de la agenda con las adiciones. Elimine el registro del Apellido ZAMORA Muestre el listado de los elementos actuales de la agenda.
  • 14. Titulo del Documento Versión Fecha Agenda con Listas Enlazadas 1.0 Marzo 2014 Universidad del Valle de México Campus Roma Profesor: Francisco Nazario 15 Ingresar la información.
  • 15. Titulo del Documento Versión Fecha Agenda con Listas Enlazadas 1.0 Marzo 2014 Universidad del Valle de México Campus Roma Profesor: Francisco Nazario 16 Mostrar la agenda con los elementos nuevos.
  • 16. Titulo del Documento Versión Fecha Agenda con Listas Enlazadas 1.0 Marzo 2014 Universidad del Valle de México Campus Roma Profesor: Francisco Nazario 17 Eliminar el registro de apellido Zamora.
  • 17. Titulo del Documento Versión Fecha Agenda con Listas Enlazadas 1.0 Marzo 2014 Universidad del Valle de México Campus Roma Profesor: Francisco Nazario 18 Enlistar los elementos actuales de la agenda.
  • 18. Titulo del Documento Versión Fecha Agenda con Listas Enlazadas 1.0 Marzo 2014 Universidad del Valle de México Campus Roma Profesor: Francisco Nazario 19 #include <stdlib.h> #include <stdio.h> #include <conio.h> #include<string.h> #include<ctype.h> int opc, fnac, tel; char nombre[20], apat[20], amat[20]; typedef struct nodo { char Nombre[20]; char Apat[20]; char Amat[20]; int Fnac; int Tel; struct nodo *siguiente; } tipoNodo; typedef tipoNodo *pNodo;
  • 19. Titulo del Documento Versión Fecha Agenda con Listas Enlazadas 1.0 Marzo 2014 Universidad del Valle de México Campus Roma Profesor: Francisco Nazario 20 typedef tipoNodo *Lista; Lista lista = NULL; void Mayus(char s[]) { int j; for (j=0; j < strlen(s); j++) s[j]=toupper(s[j]); } void agregar() { pNodo nuevo, anterior; nuevo = (pNodo)malloc(sizeof(tipoNodo)); system("cls"); printf("Ingresa el nombre: "); scanf("%s", &nombre); Mayus(nombre); strcpy(nuevo->Nombre,nombre); printf("nIngresa el apellido Paterno: "); scanf("%s",&apat); Mayus(apat);
  • 20. Titulo del Documento Versión Fecha Agenda con Listas Enlazadas 1.0 Marzo 2014 Universidad del Valle de México Campus Roma Profesor: Francisco Nazario 21 strcpy(nuevo->Apat,apat); printf("nIngresa el apellido Materno: "); scanf("%s", &amat); Mayus(amat); strcpy(nuevo->Amat,amat); printf("nIngresa la fecha de nacimiento nej.: 13012014 = 13 de enero de 2014.: "); scanf("%d", &fnac); nuevo->Fnac = fnac; printf("nIngresa el tel%cfono de contacto a 10 d%cgitos: ", 130, 161); scanf("%d", &tel); nuevo->Tel = tel; //Ordenamiento para cada conjunto de datos que se ingresan if(lista==NULL || strcmp(lista->Apat,nuevo->Apat) > 0) { nuevo->siguiente = lista; lista = nuevo; } else { anterior = lista; while(anterior->siguiente!=NULL && strcmp(anterior->siguiente->Apat,nuevo->Apat) <= 0) { anterior = anterior->siguiente;
  • 21. Titulo del Documento Versión Fecha Agenda con Listas Enlazadas 1.0 Marzo 2014 Universidad del Valle de México Campus Roma Profesor: Francisco Nazario 22 } nuevo->siguiente = anterior->siguiente; anterior->siguiente = nuevo; } } void elimina() { char apser[20]; pNodo reco, ante; reco = lista; ante = NULL; if(reco == NULL) { printf("Lista vac%ca...", 161); getch(); } else { printf("nIngresa el Apellido paterno que deseas eliminar: "); scanf("%s", &apser); Mayus(apser);
  • 22. Titulo del Documento Versión Fecha Agenda con Listas Enlazadas 1.0 Marzo 2014 Universidad del Valle de México Campus Roma Profesor: Francisco Nazario 23 while(reco != NULL && strcmp(reco->Apat,apser) < 0) { ante = reco; reco = reco->siguiente; } if(reco == NULL || strcmp(reco->Apat,apser) != 0) { printf("nNo se encontr%c valor"); getch(); return; } else { if(ante == NULL) { lista = reco->siguiente; } else ante->siguiente = reco->siguiente; free(reco); printf("Registro eliminado, presiona una tecla para continuar..."); getch(); } }
  • 23. Titulo del Documento Versión Fecha Agenda con Listas Enlazadas 1.0 Marzo 2014 Universidad del Valle de México Campus Roma Profesor: Francisco Nazario 24 } void muestra() { pNodo recorre = lista; if(lista == NULL) { printf("Lista vac%ca...", 161); getch(); }else { printf("NombretAp PaternotAp MaternotFecha NactTel%cfonon", 130); while(recorre != NULL) { printf("%st %stt %stt %dt %dn", recorre->Nombre, recorre->Apat, recorre->Amat, recorre->Fnac, recorre->Tel); recorre = recorre->siguiente; } getch(); } } void menu()
  • 24. Titulo del Documento Versión Fecha Agenda con Listas Enlazadas 1.0 Marzo 2014 Universidad del Valle de México Campus Roma Profesor: Francisco Nazario 25 { system("cls"); printf("Bienvenido, a continuaci%cn se muestra el men%c de opciones:n", 162, 163); printf("1.-Agregar elemento a la agendan"); printf("2.-Eliminar un registro de la agendan"); printf("3.-Mostrar el contenido de la agendan"); printf("4.-Salirn"); } main() { char resp; do { system("cls"); menu(); scanf("%d", &opc); if(opc > 0 && opc < 4) { switch (opc) { case 1: agregar();break; case 2: elimina();break; case 3: muestra(); break; }
  • 25. Titulo del Documento Versión Fecha Agenda con Listas Enlazadas 1.0 Marzo 2014 Universidad del Valle de México Campus Roma Profesor: Francisco Nazario 26 } if(opc > 4) { printf("Opci%cn inv%clida, vuelve a intentarlo. nERROR 401: Forbiden", 162, 160); getch(); } }while(opc != 4); }
  • 26. Titulo del Documento Versión Fecha Agenda con Listas Enlazadas 1.0 Marzo 2014 Universidad del Valle de México Campus Roma Profesor: Francisco Nazario 27 Conclusiones Después de la codificación del programa, la ejecución y el ejercicio efectuado se validó la funcionalidad del mismo y se corroboró la utilidad de los apuntadores para un mejor manejo de la información, el paso de parámetros y en este caso en particular el ordenamiento de los elementos conforme se fueron ingresando, el programa no presento errores ni excepciones ya que se contemplaron elementos de seguridad que restringen al usuario en cuanto al menú y la búsqueda de elementos.