diff --git a/Commun.c b/Commun.c index 11571e7..e3da570 100644 --- a/Commun.c +++ b/Commun.c @@ -712,7 +712,7 @@ void menuCandidat(VilleIUT *tiut[], int *tLog, int tMax) printf("| 1 Afficher les villes où il y a un IUT |\n"); printf("| 2 Afficher tous les départements dans chaque IUT |\n"); printf("| 3 Nombres de places en première année |\n"); - printf("| 4 Rechercher un département dans les IUT |\n"); + printf("| 4 Afficher les IUT possédant le département voulu |\n"); printf("| 9 Quitter |\n"); printf("|___________________________________________________|\n"); printf("Saisie : "); @@ -774,7 +774,7 @@ void menuCandidat(VilleIUT *tiut[], int *tLog, int tMax) printf("| 1 Afficher les villes où il y a un IUT |\n"); printf("| 2 Afficher tous les départements dans chaque IUT |\n"); printf("| 3 Nombres de places en première année |\n"); - printf("| 4 Rechercher un département dans les IUT |\n"); + printf("| 4 Afficher les IUT possédant le département voulu |\n"); printf("| 9 Quitter |\n"); printf("|___________________________________________________|\n"); printf("Saisie :"); diff --git a/Ssae.c b/Ssae.c index 3f9f1ef..c19a90a 100644 --- a/Ssae.c +++ b/Ssae.c @@ -622,10 +622,10 @@ void menuAdmin(VilleIUT *tiut[], int *tLog, int tMax) /* Affiche un menu de choi { retirerDept(tiut, *tLog); } - /*if(select == 5) + if(select == 5) { - miseAJourGlobale(tiut, tLog); - }*/ + miseAJourGlobale(tiut, *tLog); + } if(select == 6) { printf("Quel est le nom de la ville à insérer ?\nSaisie : "); /* Demande le nom de la ville à insérer */ @@ -685,6 +685,120 @@ void menuAdmin(VilleIUT *tiut[], int *tLog, int tMax) /* Affiche un menu de choi } +void miseAJourGlobale(VilleIUT *tiut[], int tLog) +{ + int trouve,pos,choix=0; //Déclaration de variables | initialisation de "choix" pour rentrer dans la boucle + char ville[31],dept[31]; + MaillonDept *m; + Departement *d; + system("clear"); + afficherTIUT(tiut,tLog); //affichage des différentes villes + printf("Dans quelle ville voulez-vous faire des mises à jour?\t"); //demande sur quelle ville faire une mise à jour + scanf("%s%*c",ville); //affecte la saisie au tableau "ville" + pos=rechercheIUT(tiut,tLog,ville,&trouve); //recherche de la saisie dans le tableau des villes et associe la position dans le tableau à la variable "pos" + if(trouve!=1) //message d'erreur si la ville n'est pas trouvée + { + printf("\n\nCette ville n'existe pas\n"); + clearpage(); + return; + } + system("clear"); + afficherVilleDep(*tiut[pos]); //Affiche les différents départements de la ville saisie + printf("Quel département de %s voulez-vous modifier?\t",ville); //demande sur quel département faire une mise à jour + scanf("%s%*c",dept); //affecte la saisie au tableau "dept" + m=rechercherDept(tiut[pos]->lDept,dept,&trouve); //recherche du département saisie et affecte l'adresse du maillon correspondant au pointeur "m" + if(trouve!=1) // message d'erreur si le département n'apparait pas dans la liste + { + printf("\n\nCe département n'existe pas dans cette ville\n"); + clearpage(); + return; + } + d=&(m->d); //affecte au pointeur de département "d" l'adresse de la structure "Departement" du maillon qui nous intéresse + while(choix!=9) // boucle pour le menu des mises à jour + { + system("clear"); + afficherDep(m->d); // affichage du département et de ses caractéristiques + printf("\n\n"); + printf("###################################### Menu des mises à jour ######################################\n"); + printf("\n\t1.Mise à jour du nom du département\n\t2.Mise à jour des places du département\n\t3.Mise à jour du responsable du département\n\t9.Quitter\n\n"); // affiche les modifications qu'on peut faire sur le département + printf("\tSaisie:\t"); + scanf("%d%*c",&choix); // associe la saisie à la variable choix + if(choix==1) // comparaisons de la saisie pour savoir ce que l'utilisateur veut faire et appels des fonctions correspondantes + { + miseAJourNomDept(&(m->d),tiut[pos]->lDept); + } + if(choix==2) + { + miseAJourPlaces(&(m->d)); + } + if(choix==3) + { + miseAJourResp(&(m->d)); + } + } + afficherDep(m->d); //affichages du département après les potentielles modifications + clearpage(); +} + +void miseAJourNomDept(Departement *d,ListeDept l) +{ + int trouve; + char nomDept[31],choix; + system("clear"); + afficherDep(*d); + while(choix!='o' && choix!='O') //Boucle pour de la saisie controlée + { + printf("\nQuel est le nouveau nom du département?\n"); //Demande le nouveau nom du département + fgets(nomDept,31,stdin); //Affecte la saisie au tableau "dept" + nomDept[strlen(nomDept)-1]='\0'; + rechercherDept(l,nomDept,&trouve); //Recherche si le nouveau nom de département saisie n'est pas déjà présent dans la liste des département de la ville + if(trouve==1) //Message informatif si le nouveau nom est déjà présent + { + printf("Important : Nom de département déjà présent dans l'IUT.\n"); + } + printf("Êtes-vous sûr de remplacer le nom du département par %s?(o/n)\t",nomDept); //Demande confirmation + scanf("%c%*c",&choix); //affecte la saisie à la variable "choix" + } + strcpy(d->dept,nomDept); //Applique la modification + afficherDep(*d); //Affiche la modification + clearpage(); +} + +void miseAJourResp(Departement *d) +{ + char resp[31],choix='n'; + system("clear"); + afficherDep(*d); + while(choix!='o' && choix!='O') //Boucle pour de la saisie controlée + { + printf("\nQuel est le nouveau nom du responsable ?\t");//Demande le nouveau nom du responsable + fgets(resp,31,stdin); + resp[strlen(resp)-1]='\0'; + printf("Êtes-vous sûr de remplacer le nom du responsable par %s?(o/n)\t",resp);//Demande confirmation + scanf("%c%*c",&choix); + } + strcpy(d->respAd,resp);//Applique la modification + afficherDep(*d);//Affiche la modification + clearpage(); +} + +void miseAJourPlaces(Departement *d) +{ + int places; + char choix='n'; + system("clear"); + afficherDep(*d); + while(choix!='o' && choix!='O')//Boucle pour de la saisie controlée + { + printf("Quel est le nouveau nombre de place ?\t");//Demande le nouveau nombre de place + scanf("%d%*c",&places); + printf("Êtes-vous sûr de passer les places en première année de %d à %d ?(o/n)\t",d->nbP,places);//Demande confirmation + scanf("%c%*c",&choix); + } + d->nbP=places;//Applique la modification + afficherDep(*d);//Affiche la modification + clearpage(); +} diff --git a/Ssae.h b/Ssae.h index 29be7c4..23f5a48 100644 --- a/Ssae.h +++ b/Ssae.h @@ -66,9 +66,10 @@ int rechercheIUT(VilleIUT *tiut[], int tLog, char ville[], int *trouve); /* Fonctions de mise à jour */ -void miseAJourNomDept(VilleIUT *tiut[], int tLog); -void miseAJourResp(VilleIUT *tiut[], int tLog); -void miseAJourPlaces(VilleIUT *tiut[], int tLog); +void miseAJourGlobale(VilleIUT *tiut[], int tLog); +void miseAJourNomDept(Departement *d,ListeDept l); +void miseAJourResp(Departement *d); +void miseAJourPlaces(Departement *d); /* Fonctions de gestion d'affichage, menus et globale */ @@ -76,4 +77,4 @@ int login(void); void menuAdmin(VilleIUT *tiut[], int *tLog, int tMax); void menuCandidat(VilleIUT *tiut[], int *tLog, int tMax); void clearpage(void); -void globale(void); \ No newline at end of file +void globale(void) \ No newline at end of file