From 7007e6ebbed9f9d7d73cec68906718544db2b866 Mon Sep 17 00:00:00 2001 From: Alexis LAURENT Date: Fri, 6 Jan 2023 15:25:55 +0100 Subject: [PATCH] 06/01 15h25 --- SAE.c | 48 ++++++++++++++++++++++--- SAE.h | 6 ++++ SAEl.c | 111 +++------------------------------------------------------ 3 files changed, 54 insertions(+), 111 deletions(-) diff --git a/SAE.c b/SAE.c index 0cc60ff..ef22f06 100644 --- a/SAE.c +++ b/SAE.c @@ -203,7 +203,9 @@ void global(void) tab = chargementVille(nomFich,30,&tailleL); printf("\n"); triEchange(tab, tailleL); - AffichageGlobalIUT(tab, tailleL); + creationDept(tab, tailleL); + AffichageGlobalDepVille(tab, tailleL); + SauvegarderIUT(tab, tailleL); } void AffichageVille(VilleIUT **tiut, int nbEle) @@ -353,8 +355,8 @@ void AffichageGlobalIUT(VilleIUT **tiut, int nbEle) printf("Ville : \t"); while(pos < nbEle) { - printf("-%s :\n\t", tiut[pos]->ville); - printf("Département:\tNombre de places:\tNom du Responsable:\n\t"); + printf("-%s \n", tiut[pos]->ville); + printf("Département:\tNombre de places:\tNom du Responsable:\n"); affichageListeDept(tiut[pos]->idDept); pos = pos + 1; printf("\n"); @@ -418,7 +420,7 @@ void creationDept(VilleIUT **tiut, int nbEle) while(1) { printf("Nom du Département : "); - scanf("%s", code); + scanf("%s%*c", code); aux = rechercheDept(tiut[pos]->idDept, code); if (aux != NULL) printf("Département déjà existant"); @@ -428,7 +430,7 @@ void creationDept(VilleIUT **tiut, int nbEle) fgets(nom,30,stdin); nom[strlen(nom)-1] = '\0'; printf("Nombre de place du Département %s : ",code); - scanf("%d", nbP); + scanf("%d", &nbP); tiut[pos]->idDept = insererDept(tiut[pos]->idDept,code,nom,nbP); printf("insertion du département %s effectuer \n", code); } @@ -548,6 +550,42 @@ void echanger(VilleIUT **tiut, int i, int j) tiut[j] = aux; } +int longueurListe(ListeDept l) +{ + int cpt = 0; + while (l != NULL) + { + cpt += 1; + l = l->suiv; + } + return cpt; +} + +void SauvegarderIUT(VilleIUT** tabV, int tailleL) { + int i; + FILE* flot; + flot = fopen("iut.txt","w"); + for (i = 0 ; i < tailleL ; i++) { + fprintf(flot,"%s\n",tabV[i]->ville); + fprintf(flot,"%d\n",longueurListe(tabV[i]->idDept)); + SauvegarderListe(tabV[i]->idDept,flot); + free(tabV[i]); + } +} + +void SauvegarderListe(ListeDept l, FILE* flot) { + MaillonDept* tmp; + while (l->suiv != NULL) { + tmp = l; + fprintf(flot,"%s %d %s\n",l->departement,l->nbPers,l->responsable); + l = l->suiv; + free(tmp); + } + fprintf(flot,"%s %d %s\n",l->departement,l->nbPers,l->responsable); + free(l); + +} + void clearpage(void) { char entre; diff --git a/SAE.h b/SAE.h index 723d9f6..545c8d4 100644 --- a/SAE.h +++ b/SAE.h @@ -106,3 +106,9 @@ ListeDept supprimerDept(ListeDept l, char *code); bool vide(ListeDept l); ListeDept rechercheDept(ListeDept l, char code[]); + +int longueurListe(ListeDept l); + +void SauvegarderIUT(VilleIUT** tabV, int tailleL); + +void SauvegarderListe(ListeDept l, FILE* flot); diff --git a/SAEl.c b/SAEl.c index 334ee9a..46dca53 100644 --- a/SAEl.c +++ b/SAEl.c @@ -98,7 +98,7 @@ void affichageListeDept(ListeDept l) // itératif { while (l != NULL) { - printf("- %s :\n|%d places\t%s\n\t", l->departement, l->nbPlaces, l->nom); + printf("- %s :\t|%d places\t\t%s|\n", l->departement, l->nbPlaces, l->nom); l = l->suiv; } } @@ -169,102 +169,18 @@ bool vide(ListeDept l) return true; // 1 return false; // 0 } - -int longueurListe(ListeDept l) +/* +int longueur(ListeDept l) { int cpt = 0; while (l != NULL) { - cpt += 1; + cpt + 1; l = l->suiv; } return cpt; } - -void SauvegarderIUT(VilleIUT** tabV, int tailleL) { - int i; - FILE* flot; - flot = fopen("iut.txt","w"); - for (i = 0 ; i < tailleL ; i++) { - fprintf(flot,"%s\n",tabV[i]->ville); - fprintf(flot,"%d\n",longueurListe(tabV[i]->idDept)); - SauvegarderListe(tabV[i]->idDept,flot); - free(tabV[i]); - } -} - -void SauvegarderListe(ListeDept l, FILE* flot) { - MaillonDept* tmp; - while (l->suiv != NULL) { - tmp = l; - fprintf(flot,"%s %d %s\n",l->departement,l->nbPlaces,l->nom); - l = l->suiv; - free(tmp); - } - fprintf(flot,"%s %d %s\n",l->departement,l->nbPlaces,l->nom); - free(l); - -} - - -void creationDept(VilleIUT **tiut, int nbEle) -{ - MaillonDept *aux; - char code[30], nom[30]; - int trouve, pos, nbP; - while(1) - { - printf("Dans quel IUT voulez-vous créer un département : "); - scanf("%s", code); - pos = rechVille(tiut, nbEle, code, &trouve); - if (trouve == 1) - { - while(1) - { - printf("Nom du Département : "); - scanf("%s", code); - aux = rechercheDept(tiut[pos]->idDept, code); - if (aux != NULL) - printf("Département déjà existant"); - if (aux == NULL) - { - printf("Nom du Responsable du Département de %s : ",code); - fgets(nom,30,stdin); - nom[strlen(nom)-1] = '\0'; - printf("Nombre de place du Département %s : ",code); - scanf("%d", nbP); - tiut[pos]->idDept = insererDept(tiut[pos]->idDept,code,nom,nbP); - printf("insertion du département %s effectuer \n", code); - } - printf("Saisi Département :\n"); - if (!verifSelection()) - break; - } - } - if (trouve == 0) - printf("Cet ville n'a pas d'IUT\n"); - printf("Saisi Ville :\n"); - if(!verifSelection()) - break; - - } - -} - -bool verifSelection(void) -{ - char choix[4]; - while(1) - { - printf("Voulez-vous continué la sélection (oui|non) : "); - scanf("%s",choix); - if (strcmp(choix,"oui")==0) - return true; - if (strcmp(choix,"non")==0) - return false; - printf("Erreur de sélection ! Veuillez réessayer \n"); - } -} +*/ ListeDept rechercheDept(ListeDept l, char code[]) { @@ -277,23 +193,6 @@ ListeDept rechercheDept(ListeDept l, char code[]) return rechercheDept(l->suiv, code); } -int rechVille(VilleIUT **tiut, int nbEle, char code[], int *trouve) -{ - int inf = 0, sup = nbEle - 1, m; - while(inf <= sup) - { - m = (inf + sup)/2; - if (strcmp(tiut[m]->ville, code)==0) - { - *trouve = 1; - return m; - } - if (strcmp(tiut[m]->ville, code)>0) - sup = m - 1; - else inf = m + 1; - } -} - /* ListeDept ajouterEnQueue(ListeDept l, int x) {