Tfe

Ongi etorri tfe-ren webgunera...

Old stuff/ecole_etude_fac_de_pau/licence_2/struct/tp3/tp3.c

(Deskargatu)
#include <stdio.h>
#include <stdlib.h>






struct anniversaire
{
  char nom[20];
  char date[12];
  struct anniversaire *suivant;
};

struct anniversaire *agenda;
struct anniversaire creer()
{
  agenda = NULL;
};



struct elem
{
  struct anniversaire anniv;
  struct elem *suivant;

};
typedef struct elem elemListe;
typedef struct elem *pElemListe;




void ajouter(struct anniversaire sanniv) {
  struct anniversaire *panniv;
  panniv = (struct anniversaire*) malloc(sizeof(struct anniversaire));
  strcpy(panniv->nom,sanniv.nom);
  strcpy(panniv->date,sanniv.date);
  panniv->suivant = NULL;

  if (agenda == NULL) {
    agenda = panniv;
  }
  else {
    panniv->suivant=agenda;
    agenda=panniv;
  }



}


void modifier(char *name, char *date)
{
  struct anniversaire *panniv = agenda;
  while(panniv != NULL) {
    if (strcmp(panniv->nom,name) == 0)
      {
	strcpy((*panniv).date,date);
      }
    panniv = panniv->suivant;
     
  }

}



void afficher_agenda()
{
  printf("\n");
  struct anniversaire *anniversaire=agenda;
  while(anniversaire != NULL){
  printf("Nom : %s;\nDate : %s\n",anniversaire->nom,anniversaire->date);
  anniversaire=anniversaire->suivant;
 }
 printf("\n");
}

void supprimer(char *nom)
{
  struct anniversaire *pannif = agenda;
  struct anniversaire *precedant = NULL;
  while(pannif != NULL)
    {
      if (strcmp(pannif->nom,nom) == 0)
      {
	if (precedant == NULL) 
	  {
	    pannif = agenda->suivant;
	    agenda = pannif;
	  }
	else 
	  {
	precedant->suivant = pannif->suivant;
	pannif = pannif->suivant;
	}
      }
      else
	{
	  precedant = pannif;
 	  pannif = pannif->suivant;
	}
    }
}

int recherche(char *nom)
{
  struct anniversaire *panniv = agenda;
  while(panniv != NULL) {
    panniv = panniv->suivant;
  }
  return strcmp(panniv->nom,nom) == 0 ? 1 : 0;
}



int main() {
  creer();
  struct anniversaire anni = { "test","12/12/2004" };
  struct anniversaire anno = { "trafic","01/01/2005" };

  ajouter(anni);
  ajouter(anno);
  afficher_agenda();
  modifier("test","10/10/1000");
  int a = recherche("test");
  printf(" valeur %d\n",a);
  supprimer("trafic");
  afficher_agenda();
}