diff --git a/Ssae.c b/Ssae.c index 5480f85..398d024 100644 --- a/Ssae.c +++ b/Ssae.c @@ -35,4 +35,68 @@ void clearpage(void) printf("\nappuyé sur la touche [ENTREE] pour continuer"); scanf("%*c%c", &entre); system("clear"); -} \ No newline at end of file +} + +int chargement(VilleIUT *tiut[],int *tMax) +{ + FILE *flot; + VilleIUT *v; + MaillonDept *m; + int nb = 0, pos; + char trouve; + flot = fopen("IUT.don", "r"); + if(flot == NULL) + { + printf("Problème d'ouverture du fichier\n"); + return -1; + } + while(!feof(flot)) + { + v = (VilleIUT *)malloc(sizeof(VilleIUT)); + if(v == NULL) + { + printf("Problème allocation ville lors de la lecture du fichier\n"); + return -2; + } + fscanf(flot, "%s", v->nom); + pos = recherche(tiut, nb, v->nom, &trouve); + m = (MaillonDept *)malloc(sizeof(MaillonDept)); + if(m == NULL) + { + printf("Problème allocation département lors de la lecture du fichier\n"); + return -3; + } + *m = lireDep(flot); + if(trouve == 'O') + { + insererDep(tiut[pos],*m); + } + else + { + m->suiv = NULL; + v->lDept = m; + tiut[nb] = v; + } + free(v); + free(m); + nb++; + } + return nb; +} + +int rechercheIUT(VilleIUT *tiut[], int tLog, char ville[], char *trouve){ + int inf,sup,t; + inf=0; + sup=tLog-1; + while(inf<=sup){ + t=(inf+sup)/2; + if(strcmp(ville,tiut[t]->nom)==0){ + *trouve=1; + return t; + } + if(strcmp(ville,tiut[t]->nom)<0) + sup=t-1; + else inf=t+1; + } + +} diff --git a/Ssae.h b/Ssae.h index 03cd37e..7a6c5db 100644 --- a/Ssae.h +++ b/Ssae.h @@ -3,11 +3,6 @@ #include #include -//################ Fonction Menu ##################### - -void menuAdmin(VilleIUT *tiut[], int *tLog, int tMax); -void menuCandidat(VilleIUT *tiut[], int *tLog, int tMax); - //################ Types de structures ############### typedef struct maillonDept @@ -29,9 +24,11 @@ typedef struct //################ Fonctions communes ################# void clearpage(void); +int rechercheIUT(VilleIUT *tiut[], int tLog, char ville[], char *trouve); +//################ Fonction Menu ##################### - - +void menuAdmin(VilleIUT *tiut[], int *tLog, int tMax); +void menuCandidat(VilleIUT *tiut[], int *tLog, int tMax); diff --git a/Stest.c b/Stest.c index e03c675..22cddb6 100644 --- a/Stest.c +++ b/Stest.c @@ -2,4 +2,5 @@ int main(void){ + return 0; } \ No newline at end of file