ayuda con agenda en C por favo
Publicado por Gerarock (1 intervención) el 19/11/2007 05:38:08
hola como estan, soy nuevo aqui y encuentro muy bueno el sitio
bueno mi pregunta o el problema que me aqueja es el siguiente.
necesito hacer un programa en C con las siguientes caracteristicas
// Campos: Apellido Paterno
// Nombre
// Fono
//
// Con lista doblemente enlazada y memoria dinamica
//
// Se pide crear una agenda telefonica, ingresando la informacion
// ordenada por a. paterno
//
// Funciones: crear agenda
// eliminar
// modifica
// mostrar
//
// con un menu
bueno algo hice, pero no estoy muy seguro si esta bien, se los dejo
Código:
#include<stdio.h>
#include<conio.h> //LIBRERIAS
#include<string.h>
#include<stdlib.h>
#include<ctype.h>
typedef struct datos nodo;
struct datos
{
char nombre[30],apaterno[30],telefono[10]; //ESTRUCTURA
nodo *sig;
nodo *ant;
};
creadatos(nodo **r);
eliminar(nodo *r); //FUNCIONES
modifica(nodo *r);
mostrar(nodo *r);
void main()
{
nodo *p=NULL,*q,*w; //MAIN
int opcion;
do
{
printf("___________________\n\n");
printf(" Menu \n");
printf("___________________\n");
printf("1.Crear Agenda \n\n");
printf("2.Eliminar\n"); //MENU
//printf("3.Modificar\n");
printf("4.Mostrar\n");
printf("5.Salir\n");
printf("___________________\n");
scanf("%d",&opcion);
clrscr();
switch(opcion)
{
case 1:
printf("creador");
creadatos(&r);
break;
case 2:
printf("Eliminar datos");
eliminar(r);
break;
case 3:
printf("modificar");
break;
case 4:
printf("mostrar");
mostrar(r);
break;
}
getch();
}
while(opcion!=6);
creadatos(nodo **r)
{
char resp;
q=(nodo *)malloc(sizeof(nodo));
q->sig=NULL;q->ant=NULL;
do
{
printf("\n Ingrese Nombre\n");
fflush(stdin);gets(q->nombre);
printf("\n Ingrese Apellido Paterno\n");
fflush(stdin);gets(q->apaterno);
printf("\n Ingrese Telefono\n");
fflush(stdin);gets(q->telefono);
if(p==NULL)
{
p=q;w=q;
}
else
{
q->ant=w;w->sig=q;w=w->sig;
}
printf("\n Desea agregar otro Registro S/N\n");
resp=toupper(getche());
}
while(resp=='S');
}
eliminar(nodo *r) //ELIMINAR NODO
{
if (p==NULL) // LISTA VACIA
{
printf("\n lista vacia");
getch();
}
else
{
do
{
clrscr();
printf("\n ingrese informacion a eliminar: ");
scanf("%d",&e); // ELMINA NODO
q=p;
if ((p->siguiente==NULL)&&(p->info==e))
{
p=p->siguiente;
free(q);
q=p;
}
else
{
w=q->siguiente
while(w!=NULL)
{
if(w->info==e)
{
q->siguiente = w->siguiente;
free(w);
q->siguiente=w;
}
else
{
q=w;
w=w->siguiente;
}
}
printf("eliminar otro nodo s/n");
scanf("%c",&op);
} while((op=='s')or(op=='S'))
}
}
}
modifica(nodo *r)
mostrar(nodo *r)
{
q=p;
clrscr();
while(q!=NULL)
{
printf("Nombre: %s\nApellido Paterno: %s\nTelefono: %s\n",q->nombre,q->apaterno,q->telefono);
getch();q=q->sig;
printf("\n");
getch();
}
}
}
-------------------------------------------------------------------------------
les agradeceria mucho si me pudieran ayudar por favor, ya que me urge demasiado hacer este programa...
muchas gracias
xauuuuuuuuuuu
bueno mi pregunta o el problema que me aqueja es el siguiente.
necesito hacer un programa en C con las siguientes caracteristicas
// Campos: Apellido Paterno
// Nombre
// Fono
//
// Con lista doblemente enlazada y memoria dinamica
//
// Se pide crear una agenda telefonica, ingresando la informacion
// ordenada por a. paterno
//
// Funciones: crear agenda
// eliminar
// modifica
// mostrar
//
// con un menu
bueno algo hice, pero no estoy muy seguro si esta bien, se los dejo
Código:
#include<stdio.h>
#include<conio.h> //LIBRERIAS
#include<string.h>
#include<stdlib.h>
#include<ctype.h>
typedef struct datos nodo;
struct datos
{
char nombre[30],apaterno[30],telefono[10]; //ESTRUCTURA
nodo *sig;
nodo *ant;
};
creadatos(nodo **r);
eliminar(nodo *r); //FUNCIONES
modifica(nodo *r);
mostrar(nodo *r);
void main()
{
nodo *p=NULL,*q,*w; //MAIN
int opcion;
do
{
printf("___________________\n\n");
printf(" Menu \n");
printf("___________________\n");
printf("1.Crear Agenda \n\n");
printf("2.Eliminar\n"); //MENU
//printf("3.Modificar\n");
printf("4.Mostrar\n");
printf("5.Salir\n");
printf("___________________\n");
scanf("%d",&opcion);
clrscr();
switch(opcion)
{
case 1:
printf("creador");
creadatos(&r);
break;
case 2:
printf("Eliminar datos");
eliminar(r);
break;
case 3:
printf("modificar");
break;
case 4:
printf("mostrar");
mostrar(r);
break;
}
getch();
}
while(opcion!=6);
creadatos(nodo **r)
{
char resp;
q=(nodo *)malloc(sizeof(nodo));
q->sig=NULL;q->ant=NULL;
do
{
printf("\n Ingrese Nombre\n");
fflush(stdin);gets(q->nombre);
printf("\n Ingrese Apellido Paterno\n");
fflush(stdin);gets(q->apaterno);
printf("\n Ingrese Telefono\n");
fflush(stdin);gets(q->telefono);
if(p==NULL)
{
p=q;w=q;
}
else
{
q->ant=w;w->sig=q;w=w->sig;
}
printf("\n Desea agregar otro Registro S/N\n");
resp=toupper(getche());
}
while(resp=='S');
}
eliminar(nodo *r) //ELIMINAR NODO
{
if (p==NULL) // LISTA VACIA
{
printf("\n lista vacia");
getch();
}
else
{
do
{
clrscr();
printf("\n ingrese informacion a eliminar: ");
scanf("%d",&e); // ELMINA NODO
q=p;
if ((p->siguiente==NULL)&&(p->info==e))
{
p=p->siguiente;
free(q);
q=p;
}
else
{
w=q->siguiente
while(w!=NULL)
{
if(w->info==e)
{
q->siguiente = w->siguiente;
free(w);
q->siguiente=w;
}
else
{
q=w;
w=w->siguiente;
}
}
printf("eliminar otro nodo s/n");
scanf("%c",&op);
} while((op=='s')or(op=='S'))
}
}
}
modifica(nodo *r)
mostrar(nodo *r)
{
q=p;
clrscr();
while(q!=NULL)
{
printf("Nombre: %s\nApellido Paterno: %s\nTelefono: %s\n",q->nombre,q->apaterno,q->telefono);
getch();q=q->sig;
printf("\n");
getch();
}
}
}
-------------------------------------------------------------------------------
les agradeceria mucho si me pudieran ayudar por favor, ya que me urge demasiado hacer este programa...
muchas gracias
xauuuuuuuuuuu
Valora esta pregunta


0