C/Visual C - ayuda con agenda en C por favo

 
Vista:

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
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:ayuda con agenda en C por favo

Publicado por Nelek (816 intervenciones) el 19/11/2007 08:10:15
Para comprobar si un programa va bien, lo mejor es compilar, ejecutar y probar.

Si encuentras algun fallo, intenta depurar y focalizar donde esta el problema y te ayudaremos con mucho gusto.

A primera vista no tiene del todo mala pinta, hace lo que se supone que tiene que hacer?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar