1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107
| //fichier ajouterVin2.c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "vin2.h"
#include "cave2.h"
/**********************************************
La fonction int ajouterVin(pvin nom) renverra 0 si l'ajout du vin dans
la liste chainee se fera sans aucune erreur et 1 sinon.
*********************************************************/
int ajouterVin(pCave vin,pCave tete)
{
pCave nouveau;
pCave courant;
char *res;
if(tete==NULL)//la liste est vide, c'est donc le premier vin qui est ajouté
{
printf("Debut:1\n");
nouveau=(pCave)malloc(sizeof(struct Cave));//alloue la mémoire nécessaire au nouveau maillon de la liste
if(nouveau==NULL)
{ printf("Erreure s'est produite lors de l'allocation dynamique de la mémoire dans l'ajout\n");
return 1;
}
else
{
nouveau->suivant=tete;//la tete est assigné au maillon suivant ici null car la liste est vide
tete=nouveau;
printf("Debut:1\n");
}
}
else//la liste contient au moins 1 element
{
courant=tete;
if(courant->suivant!=NULL) //parcours de la liste chaînée jusqu'au dernier maillon
{
courant=courant->suivant;
}
nouveau=(pCave)malloc(sizeof(struct Cave));//alloue la mémoire nécessaire au nouveau maillon de la liste
if(nouveau==NULL)
{ printf("Erreure s'est produite lors de l'allocation dynamique de la mémoire dans l'ajout\n");
return 1;
}
else
{
printf("Debut:1\n");
courant->suivant=nouveau;
printf("Debut:1\n");
nouveau->suivant=NULL;
}
}
//insertion des caractéristiques du vin dans l'élément nouveau
res=strcpy(nouveau->carac->region,vin->carac->region);
res=strcpy(nouveau->carac->domaine,vin->carac->domaine);
res=strcpy(nouveau->carac->chateau,vin->carac->chateau);
res=strcpy(nouveau->carac->couleur,vin->carac->couleur);
nouveau->carac->annee=vin->carac->annee;
res=strcpy(nouveau->carac->cepage,vin->carac->cepage);
nouveau->carac->taille=vin->carac->taille;
free(nouveau);
return 0;
}
int main()
{
char *res;
pCave vin1;
//pCave vin2;
pCave tete;
tete=NULL;
printf("Debut:1\n");
res=strcpy(vin1->carac->region,"Bordeaux");
res=strcpy(vin1->carac->domaine,"domaine familial");
res=strcpy(vin1->carac->chateau,"Bordeaux Côtes de francs");
res=strcpy(vin1->carac->couleur,"Rouge");
vin1->carac->annee=1993;
res=strcpy(vin1->carac->cepage,"merlot");
vin1->carac->taille=2;
vin1->carac->nbBouteilles=10;
vin1->carac->anneeMat=10;
res=strcpy(vin1->carac->localisation,"3C");
printf("fin\n");
res=strcpy(vin1->carac->commentaires,"lalalalallala");
if((ajouterVin(vin1,tete))!=0)
printf("Erreur lors de l'insertion d'un vin\n");
else
printf("Succes de l'ajout du vin\n");
return 0;
} |
Partager