Advertisement
karlangadas

sistema

Oct 24th, 2016
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.23 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4.  
  5. #define MAX 50
  6.  
  7. typedef struct fecha{
  8.     int anho;
  9.     int mes;
  10.     int dia;
  11.    
  12. }TFecha;
  13.  
  14. typedef struct persona{
  15.     char *nombre;
  16.     char *apellido;
  17.     TFecha fechaNac;
  18.     struct persona *sig;
  19. }TPersona;
  20.  
  21. typedef lista{
  22.     TPersona *inicio;
  23.     TPersona *fin;
  24.     int numPers;
  25. }TLista;
  26.  
  27. int Lista_isEmpty(TLista *L){
  28.     return (L->numPers==0);
  29. }
  30. int Lista_tamanho(TLista *L){
  31.     return (L->numPers);
  32. }
  33. void Lista_init(TLista *L){
  34.     L->inicio=NULL;
  35.     L->fin=NULL;
  36.     L->numElem=0;
  37. }
  38. int Lista_Miembro(TLista *L,TPersona *persona){
  39.  
  40. }
  41. void Lista_Registro(TLista *L,char *nombre,char *apellido,int anho, int mes, int dia){
  42.     TPersona *persona=malloc(sizeof(TPersona));
  43.  
  44.     TPersona *crtPersona=L->inicio;
  45.     TPersona *persAnt=NULL;
  46.     persona->nombre=nombre;
  47.     persona->apellido=apellido;
  48.     persona->fechaNac->anho=anho;
  49.     persona->fechaNac->mes=mes;
  50.     persona->fechaNac->anho=mes;
  51.  
  52.     if (Lista_isEmpty(*L)){
  53.         L->inicio=persona;
  54.         L->fin=persona;
  55.     }
  56.     else{
  57.         //Recorreremos hasta encontrar su ubicación en el mundo *-*
  58.         while(crtPersona!=NULL && crtPersona->apellido<=persona->apellido){
  59.             persAnt=crtPersona;
  60.             crtPersona=crtPersona->sig;
  61.         }
  62.         //En caso encuentre un apellido igual se verá la fecha
  63.         if (crtPersona->apellido=persona->apellido){
  64.             while(crtPersona!=NULL && crtPersona->apellido=persona->apellido && ((crtPersona->fechaNac->anho)*1000+(crtPersona->fechaNac->mes)*100+(crtPersona->fechaNac->dia))<=((persona->fechaNac->anho)*1000+(persona->fechaNac->mes)*100+(persona->fechaNac->dia))){
  65.                 persAnt=crtPersona;
  66.                 crtPersona=crtPersona->sig;
  67.             }
  68.         }
  69.         //veremos si ya esta en la lista
  70.         if(crtPersona->nombre=persona->nombre && crtPersona->apellido=persona->apellido && ((crtPersona->fechaNac->anho)*1000+(crtPersona->fechaNac->mes)*100+(crtPersona->fechaNac->dia))==((persona->fechaNac->anho)*1000+(persona->fechaNac->mes)*100+(persona->fechaNac->dia))){
  71.             return;
  72.         }
  73.         else{
  74.             if (crtPersona=L->inicio){
  75.                 persona->sig=crtPersona;
  76.                 L->inicio=persona;
  77.                 return;
  78.             }
  79.             persona->sig=crtPersona;
  80.             persAnt->sig=persona;
  81.             if (crtPersona=L->fin){
  82.                 L->fin=persona;
  83.             }
  84.         }      
  85.     }
  86. }
  87. int Lista_esMiembro(TLista *L, ){
  88.  
  89. }
  90. void Lista_Actualizacion()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement