• Sábado 14 de Diciembre de 2024, 08:51

Autor Tema:   Programa que necesita una solucion  (Leído 2000 veces)

conker_92

  • Nuevo Miembro
  • *
  • Mensajes: 1
  • Nacionalidad: 00
    • Ver Perfil
Programa que necesita una solucion
« en: Domingo 21 de Octubre de 2012, 06:13 »
0
Alguien me podria ayudar con este programa:



#include "stdafx.h"
#include "stdio.h"
#include "conio.h"
#include "string.h"
#include "math.h"
#include "stdlib.h"

 
#define MAX 20

typedef struct temp
{
    char name[MAX];
    char telephone[10];
    char email[MAX];
    char address[MAX];
    char zipcode[10];

    temp *sig;
} nodo;


nodo* creacion1 ( )
{   
   
   nodo *nuevo = NULL;
   
   
   
    nuevo = (nodo*)malloc(sizeof(nodo));
   

   return nuevo;
}

nodo* creacion2 ()
{   
   nodo *inicio= NULL;
   nodo *nuevo = creacion1();
    inicio= nuevo;

   return inicio;
}

nodo* creacion3 ( )
{   
   
   nodo *nuevo = creacion1();
   nodo *actual = NULL;
    actual=nuevo;

   return actual;
}

nodo* consulta ()
{
   
   nodo *nuevo= creacion1();
   
    nodo *inicio= creacion2();
   
   nodo *actual = creacion3();
   
   

   
   int n;
   printf("How many contacts do you want to add in the agenda? ");
    scanf("%i",&n);

    
   for(int i=1; i<=n; i++)
   {
      
        nuevo = (nodo*)malloc(sizeof(nodo));
      actual->sig = nuevo->sig;                 
        actual = inicio;

      fflush(stdin);
        puts("NAME: ");
        gets(nuevo->name);
        puts("TELEPHONE: ");
        gets(nuevo->telephone);
        puts("EMAIL: ");
        gets(nuevo->email);
        puts("ADDRESS: ");
        gets(nuevo->address);
        puts("ZIP CODE: ");
        gets(nuevo->zipcode);
        nuevo->sig=NULL;
       
     
    }

   actual;
   
   return actual;
   
}


nodo* ordenar ()
{   
   
   nodo *nuevo=creacion1();

   nodo *inicio=creacion2 ();
 
   nodo *actual=consulta();

   
   nodo *aux = NULL;
   nodo *guardar =  NULL;
   
   aux=nuevo;
   guardar=nuevo;
   

   actual=inicio->sig;
   
    int i = 0;
    do
    {
        i++;
        actual = actual->sig;
    }
    while (actual != NULL);

   
   
 
    actual = inicio->sig;
    aux = actual->sig;
    for (int j = 1; j < i; j++)
    {
      
      actual = inicio->sig;
        aux = actual->sig;
       
        while(actual->sig != NULL)
        {
            if (strcmp(actual->name,aux->name) > 0)
            {
                strcpy(guardar->name, actual->name);
                strcpy(guardar->telephone, actual->telephone);
                strcpy(guardar->email, actual->email);
                strcpy(guardar->address, actual->address);
                strcpy(guardar->zipcode, actual->zipcode);
               
                strcpy(actual->name, aux->name);
                strcpy(actual->telephone, aux->telephone);
                strcpy(actual->email, aux->email);
                strcpy(actual->address, aux->address);
                strcpy(actual->zipcode, aux->zipcode);
               
               
                strcpy(aux->name, guardar->name);
                strcpy(aux->telephone, guardar->telephone);
                strcpy(aux->email, guardar->email);   
                strcpy(aux->address, guardar->address);
                strcpy(aux->zipcode, guardar->zipcode);
            }
            actual = actual->sig;
            aux = actual->sig;
        } 
    } 

   return actual;

}


nodo* displayordenar()

   nodo *nuevo=creacion1();
   nodo *inicio=creacion2 ();
   nodo *actual = ordenar();

actual = inicio->sig;
   
   
    while(actual != NULL)
    {
       
        printf("\n********************");
        printf("\n NAME: %s",actual->name);
        printf("\n TELEPHONE: %s", actual->telephone);
        printf("\n E-MAIL: %s", actual->email);
        printf("\n ADDRESS: %s ", actual->address);
        printf("\n ZIP CODE: %s ", actual->zipcode);
        actual = actual->sig;
    }
    getch();

   
   return actual;


}

   

 nodo* displaysearch()
{   
   
nodo *actual = displayordenar();
nodo *inicio= creacion2();
 
 char search[MAX];

  printf("\n\nGive a name to search: ");
  scanf("%s",search);

   
   

actual = inicio->sig;
    while(actual != NULL)
    {
   if(strcmp(search, actual->name)==0)
   {
       printf("\n********************");
        printf("\n NAME: %s",actual->name);
        printf("\n TELEPHONE: %s", actual->telephone);
        printf("\n E-MAIL: %s", actual->email);
        printf("\n ADDRESS: %s ", actual->address);
        printf("\n ZIP CODE: %s ", actual->zipcode);
      
   }
    actual = actual->sig;
   }

    return actual;
   

getch();

}



int main(int argc, char** argv)

   
   
  displaysearch();
   
   
   
   


}