diff --git a/iut.c b/iut.c index 2aaa294..a0f4240 100644 --- a/iut.c +++ b/iut.c @@ -4,11 +4,7 @@ #include "iut.h" //Fonction d'initialisation de VilleIUT --> Renvoie une liste vide -VilleIUT Initialisation(void){ - VilleIUT V; - V.ldept = NULL; - return V; -} + //Fonction qui teste si la liste est vide ou non, et renvoie 'Vrai si la liste est vide', sinon 'Faux' Booleen testVide(VilleIUT V){ @@ -22,7 +18,7 @@ int chargement(VilleIUT *tiut[],int tmax){ int i = 0, j=0; int nbDep = 0; VilleIUT V; - MaillonDept *m; + MaillonDept m; FILE *fe; fe=fopen("ville.don","r"); if(fe==NULL){ @@ -37,11 +33,11 @@ int chargement(VilleIUT *tiut[],int tmax){ printf("Problème de malloc"); return -3; } - *tiut[i] = Initialisation(); *tiut[i] = V; for(j = 0; j < nbDep; j++){ - *m = lireDep(fe); - tiut[i] = Insertion(m,m->departement, m->nbP, m->resp); + + m = lireDep(fe); + tiut[i]->ldept = Insertion(tiut[i]->ldept, m.departement, m.nbP, m.resp); } V = lireVille(fe, &nbDep); i++; @@ -52,6 +48,7 @@ int chargement(VilleIUT *tiut[],int tmax){ VilleIUT lireVille(FILE *fe, int *nbDep){ VilleIUT V; + V.ldept = NULL; fscanf(fe,"%s %d", V.ville, nbDep); return V; } @@ -62,7 +59,8 @@ MaillonDept lireDep(FILE *fe){ return m; } -MaillonDept InsertionTete(MaillonDept *m, char *departement, int nbP,char *resp){ +ListeD InsertionTete(ListeD ld, char *departement, int nbP,char *resp){ + MaillonDept *m; m = (MaillonDept*)malloc(sizeof(MaillonDept)); if(m==NULL){ printf("Problème malloc m"); @@ -70,16 +68,17 @@ MaillonDept InsertionTete(MaillonDept *m, char *departement, int nbP,char *resp) strcpy(m->departement, departement); m->nbP = nbP; strcpy(m->resp, resp); - return *m; + m->suivant = ld; + return m; } -MaillonDept Insertion(MaillonDept *m, char *departement, int nbP,char *resp){ - if(m==NULL) - return InsertionTete(m, departement, nbP, resp); - if(strcmp(m->departement, departement)<0) - return InsertionTete(m, departement, nbP, resp); - m->suivant = Insertion(m->suivant, departement, nbP, resp); - return *m; +ListeD Insertion(ListeD ld, char *departement, int nbP,char *resp){ + if(ld==NULL) + return InsertionTete(ld, departement, nbP, resp); + if(strcmp(ld->departement, departement)<0) + return InsertionTete(ld, departement, nbP, resp); + ld->suivant = Insertion(ld->suivant, departement, nbP, resp); + return ld; } /*VilleIUT Enfiler(VilleIUT V, char *departement, int nbP,char *resp){ MaillonDept *m; @@ -141,13 +140,20 @@ MaillonDept lireDep(FILE *fe){ MaillonDept m; fscanf(fe,"%s %d %s", m.departement, m.nbP, m.resp); return m; -} +}*/ -void affichage (int *tiut[],int n){ +void affichage (VilleIUT *tiut[],int n){ int i; for(i=0;iville, tiut[i]->Ville->departement, tiut[i]->Ville->nbP, tiut[i]->Ville->resp); + printf("\n%s\n", tiut[i]->ville); + affichageListe(tiut[i]->ldept); } -}*/ \ No newline at end of file +} + +void affichageListe(ListeD ld){ + while(ld!=NULL){ + printf("%s\t",ld->departement); + printf("%d\t",ld->nbP); + printf("%s\n",ld->resp); + ld = ld->suivant;} +} diff --git a/iut.h b/iut.h index f1209a9..5f7a799 100644 --- a/iut.h +++ b/iut.h @@ -40,8 +40,9 @@ typedef enum {faux,vrai}Booleen; VilleIUT defiler(VilleIUT V); VilleIUT lireVille(FILE *fe, int *nbDep); MaillonDept lireDep(FILE *fe); - int chargeResultat(VilleIUT *tiut[],int tmax); + int chargement(VilleIUT *tiut[],int tmax); void affichage (VilleIUT *tiut[],int n); + void affichageListe(ListeD ld); - MaillonDept Insertion(MaillonDept *m, char *departement, int nbP,char *resp); - MaillonDept InsertionTete(MaillonDept *m, char *departement, int nbP,char *resp); \ No newline at end of file +ListeD Insertion(ListeD ld, char *departement, int nbP,char *resp); +ListeD InsertionTete(ListeD ld, char *departement, int nbP,char *resp); diff --git a/testIut.c b/testIut.c index 9f22635..f7b9fd3 100644 --- a/testIut.c +++ b/testIut.c @@ -6,10 +6,9 @@ int main(){ VilleIUT V; int n; VilleIUT *tiut[200]; - afficher(V); - n=chargeResultat(tiut ,200); - n=(n+1)/4; - printf("%d",n); + //afficher(V); + n=chargement(tiut ,200); + printf("Nombre de villes : %d\n",n); affichage(tiut,n); int choix; printf("\n\nUtilisateur - 1\tAdministrateur - 2\n\n"); diff --git a/testV1 b/testV1 new file mode 100755 index 0000000..1ee1887 Binary files /dev/null and b/testV1 differ diff --git a/testV2 b/testV2 new file mode 100644 index 0000000..16f7900 Binary files /dev/null and b/testV2 differ diff --git a/testV3 b/testV3 new file mode 100755 index 0000000..5421d2e Binary files /dev/null and b/testV3 differ diff --git a/ville.don b/ville.don index 6d87e00..c24e0a7 100644 --- a/ville.don +++ b/ville.don @@ -4,4 +4,5 @@ Clermont 2 Informatique 136 Simon-Carine Biologie 120 Djojo Aurillac 1 -Bio-Info 56 jiji \ No newline at end of file +Bio-Info 56 jiji +