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();
}