From 2463b1ac4c89e923366cfbdeda76ab5a2c95b3aa Mon Sep 17 00:00:00 2001 From: "antoine.perederii" Date: Fri, 13 Jan 2023 16:50:53 +0100 Subject: [PATCH] ajout de modif sur le menu des responsables --- Autres/genereClermont.py | 12 ++-- SAE.h | 6 +- dptInfos.txt | 6 +- informationsIUT.txt | 2 +- menus.c | 84 ++++++++++++++++++-------- responsable.c | 127 +++++++++++++++++++++++++-------------- 6 files changed, 152 insertions(+), 85 deletions(-) diff --git a/Autres/genereClermont.py b/Autres/genereClermont.py index fa7ecd2..d103213 100755 --- a/Autres/genereClermont.py +++ b/Autres/genereClermont.py @@ -4,8 +4,6 @@ import string # Ouverture du fichier en mode écriture with open("resultats.txt", "w") as f: # Écriture des en-têtes de colonnes - f.write("Numero de candidat\tNom\tPrenom\tNote de maths\tNote de francais\tNote d'anglais\tNote de specialite\tNombre de choix de candidatures\tVille choisie de la premiere candidature\tDepartement\tDecision du departement\tValidation\n") - # Génération de données aléatoires pour chaque candidat for i in range(1, 100): nom = ''.join(random.choices(string.ascii_lowercase, k=20)) @@ -29,12 +27,12 @@ with open("resultats.txt", "w") as f: #f.write(str(i) + "\t" + nom + "\t" + prenom + "\t" + note_maths + "\t" + note_francais + "\t" + note_anglais + "\t" + note_specialite + "\t" + nb_choix + "\t" + ville + "\t" + departement + "\t" + decision + "\t" + validation + "\n" ) # Écriture des données dans le fichier, séparées par des points-virgules if nb_choix == "1": - f.write(str(i) + "\t" + nom + "\t" + prenom + "\t" + note_maths + "\t" + note_francais + "\t" + note_anglais + "\t" + note_specialite + "\t" + nb_choix + "\t" + ville + "\t" + departement1 + "\t" + decision + "\t" + validation + "\n") + f.write(str(i) + "\n" + nom + "\n" + prenom + "\n" + note_maths + "\t" + note_francais + "\t" + note_anglais + "\t" + note_specialite + "\n" + nb_choix + "\n" + ville + "\n" + departement1 + "\n" + decision + "\n" + validation + "\n") elif nb_choix == "2": - f.write(str(i) + "\t" + nom + "\t" + prenom + "\t" + note_maths + "\t" + note_francais + "\t" + note_anglais + "\t" + note_specialite + "\t" + nb_choix + "\t" + ville + "\t" + departement1 + "\t" + decision + "\t" + validation + "\t" + ville + "\t" + departement2 + "\t" + decision + "\t" + validation + "\n") + f.write(str(i) + "\n" + nom + "\n" + prenom + "\n" + note_maths + "\t" + note_francais + "\t" + note_anglais + "\t" + note_specialite + "\n" + nb_choix + "\n" + ville + "\n" + departement1 + "\n" + decision + "\n" + validation + "\n" + ville + "\n" + departement2 + "\n" + decision + "\n" + validation + "\n") elif nb_choix == "3": - f.write(str(i) + "\t" + nom + "\t" + prenom + "\t" + note_maths + "\t" + note_francais + "\t" + note_anglais + "\t" + note_specialite + "\t" + nb_choix + "\t" + ville + "\t" + departement1 + "\t" + decision + "\t" + validation + "\t" + ville + "\t" + departement2 + "\t" + decision + "\t" + validation + "\t" + ville + "\t" + departement3 + "\t" + decision + "\t" + validation + "\n") + f.write(str(i) + "\n" + nom + "\n" + prenom + "\n" + note_maths + "\t" + note_francais + "\t" + note_anglais + "\t" + note_specialite + "\n" + nb_choix + "\n" + ville + "\n" + departement1 + "\n" + decision + "\n" + validation + "\n" + ville + "\n" + departement2 + "\n" + decision + "\n" + validation + "\n" + ville + "\n" + departement3 + "\n" + decision + "\n" + validation + "\n") elif nb_choix == "4": - f.write(str(i) + "\t" + nom + "\t" + prenom + "\t" + note_maths + "\t" + note_francais + "\t" + note_anglais + "\t" + note_specialite + "\t" + nb_choix + "\t" + ville + "\t" + departement1 + "\t" + decision + "\t" + validation + "\t" + ville + "\t" + departement2 + "\t" + decision + "\t" + validation + "\t" + ville + "\t" + departement3 + "\t" + decision + "\t" + validation + "\t" + ville + "\t" + departement4 + "\t" + decision + "\t" + validation + "\n") + f.write(str(i) + "\n" + nom + "\n" + prenom + "\n" + note_maths + "\t" + note_francais + "\t" + note_anglais + "\t" + note_specialite + "\n" + nb_choix + "\n" + ville + "\n" + departement1 + "\n" + decision + "\n" + validation + "\n" + ville + "\n" + departement2 + "\n" + decision + "\n" + validation + "\n" + ville + "\n" + departement3 + "\n" + decision + "\n" + validation + "\n" + ville + "\n" + departement4 + "\n" + decision + "\n" + validation + "\n") elif nb_choix == "5": - f.write(str(i) + "\t" + nom + "\t" + prenom + "\t" + note_maths + "\t" + note_francais + "\t" + note_anglais + "\t" + note_specialite + "\t" + nb_choix + "\t" + ville + "\t" + departement1 + "\t" + decision + "\t" + validation + "\t" + ville + "\t" + departement2 + "\t" + decision + "\t" + validation + "\t" + ville + "\t" + departement3 + "\t" + decision + "\t" + validation + "\t" + ville + "\t" + departement4 + "\t" + decision + "\t" + validation + "\t" + ville + "\t" + departement5 + "\t" + decision + "\t" + validation + "\n") + f.write(str(i) + "\n" + nom + "\n" + prenom + "\n" + note_maths + "\t" + note_francais + "\t" + note_anglais + "\t" + note_specialite + "\n" + nb_choix + "\n" + ville + "\n" + departement1 + "\n" + decision + "\n" + validation + "\n" + ville + "\n" + departement2 + "\n" + decision + "\n" + validation + "\n" + ville + "\n" + departement3 + "\n" + decision + "\n" + validation + "\n" + ville + "\n" + departement4 + "\n" + decision + "\n" + validation + "\n" + ville + "\n" + departement5 + "\n" + decision + "\n" + validation + "\n") diff --git a/SAE.h b/SAE.h index 023cafa..d516e1a 100755 --- a/SAE.h +++ b/SAE.h @@ -12,7 +12,7 @@ void menuAdministrateur(VilleIUT *tiut[], int *nbIUT, Etudiant *tetud[], int *nb void menuUtilisateur(VilleIUT *tiut[], int *nbIUT, Etudiant *tetud[], int *nbCandidats); void menuCandidat(VilleIUT *tiut[], int *nbIUT, Etudiant *tetud[], int *nbCandidats); void menuResponsable(Etudiant *tetud[], int nbCandidats, VilleIUT *tiut[], int *nbIUT, Etudiant *tetudAdmis[], int nbEtudAdmis, Etudiant *tetudAttente[], int nbEtudAttente); -void menuAffichage(Etudiant *tetudResp[], int nbCandidatsDept, Etudiant *tetudRespAdmis[], int nbCandidatsDeptAdmis, Etudiant *tetudRespAttente[], int nbCandidatsDeptAttente); +void menuAffichage(Etudiant *tetudResp[], int nbCandidatsDept); /* Partie 1 */ @@ -44,18 +44,18 @@ int chargerCandidats(Etudiant *tetud[]); void sauvegarderCandidats(Etudiant *tetud[], int nbCandidats, char nomFichier[]); void sauvegarderChoix(ListeChoix lChoix, FILE *flot); +void modificationNbPDeptResp(VilleIUT *tiut[], int nbIUT, char respVille[30], char respDept[30]); void afficherCandidatsAdmis(Etudiant *tetud[], int nbCandidats); void afficherCandidatsRefuses(Etudiant *tetud[], int nbCandidats); void afficherCandidatsAttente(Etudiant *tetud[], int nbCandidats); Etudiant moyenneCandidat(Etudiant mEtudiant); Etudiant *moyenneCandidats(Etudiant *tetud[], int nbCandiats); -Etudiant modifStatueCandidat(Etudiant *tetud[], int nbCandidats, float noteMin[], float noteExel[]); +Etudiant modifStatueCandidat(Etudiant *tetud[], int nbCandidats, float noteMin[]); int statueCandidat(Etudiant *tetud[], int nbCandidats); int nbCandidatsAdmis(Etudiant *tetud[], int nbCandidats); int nbCandidatsRefuses(Etudiant *tetud[], int nbCandidats); int nbCandidatsAttente(Etudiant *tetud[], int nbCandidats); float modifNoteMin(float noteMin[]); -float modifNoteExel(float noteExel[]); int modifNbPlaces(int nbPlaces); void ajouterCandidature(Etudiant *tetud[], int nbCandidats, VilleIUT *tiut[], int nbVillesIUT); void supprimerCandidature(Etudiant *tetud[], int nbCandidats); diff --git a/dptInfos.txt b/dptInfos.txt index afc40d1..f76a9e1 100644 --- a/dptInfos.txt +++ b/dptInfos.txt @@ -6,7 +6,7 @@ Albert 1 Clermont-Ferrand Informatique -0 +1 0 2 Michel @@ -15,7 +15,7 @@ Jacques 2 Clermont-Ferrand Informatique -0 +-1 0 Grenoble Informatique @@ -28,5 +28,5 @@ Kyllian 1 Clermont-Ferrand Informatique -0 +2 0 diff --git a/informationsIUT.txt b/informationsIUT.txt index 91db32f..3d0c107 100755 --- a/informationsIUT.txt +++ b/informationsIUT.txt @@ -1,5 +1,5 @@ Grenoble Informatique 120 Dupont Jean Clermont-Ferrand Biologie 120 Coralie Elebon -Clermont-Ferrand Informatique 136 Simon Carine +Clermont-Ferrand Informatique 137 Simon Carine Aurillac Bio-Informatique 56 Ayoub Milaki Aurillac Mathématiques 150 Durand diff --git a/menus.c b/menus.c index 0de4310..49febdd 100755 --- a/menus.c +++ b/menus.c @@ -64,6 +64,9 @@ void menu(VilleIUT *tiut[], int *nbIUT, Etudiant *tetud[], int *nbCandidats, boo case 4: menuResponsable(tetud, *nbCandidats, tiut, nbIUT, tetudAdmis, *nbEtudAdmis, tetudAttente, *nbEtudAttente); break; + case 5: + menuPostCandidat(); + break; case 9: c = true; return; @@ -212,7 +215,7 @@ void menuCandidat(VilleIUT *tiut[], int *nbIUT, Etudiant *tetud[], int *nbCandid printf("\t4 - Supprimer un choix\n"); printf("\t5 - Modifier un choix\n"); printf("\t9 - Quitter\n"); - printf("\nEntrez votre choix :\n> "); + printf("\nEntrez votre choix :\n> "); //! Comment les identifié ? scanf("%d%*c", &choix); switch (choix) { @@ -220,7 +223,7 @@ void menuCandidat(VilleIUT *tiut[], int *nbIUT, Etudiant *tetud[], int *nbCandid *nbCandidats = inscription(tetud, *nbCandidats, tiut, *nbIUT); break; case 2: - afficherCandidat(tetud, *nbCandidats); + afficherCandidat(tetud, *nbCandidats); //! affiche pas pour celui identifié break; case 3: ajouterCandidature(tetud, *nbCandidats, tiut, *nbIUT); @@ -258,43 +261,43 @@ void menuResponsable(Etudiant *tetud[], int nbCandidats, VilleIUT *tiut[], int * { int choix; bool c = false; + float noteMin[5]; Etudiant *tetudResp[100], *tetudRespAdmis[100], *tetudRespAttente[100]; - int nbCandidatsDept, nbCandidatsDeptAdmis, nbCandidatsDeptAttente; + int nbCandidatsDept, nbCandidatsDeptAdmis, nbCandidatsDeptAttente, nbCandidatsDeptRefuse; char respVille[30], respDept[30]; - moyenneCandidats(tetud, nbCandidats); deptResp(tiut, *nbIUT, respVille, respDept); nbCandidatsDept = chargementRespDept(tetud, nbCandidats, respVille, respDept, tetudResp); //* Ca marche ca triNote(tetudResp, nbCandidatsDept); - nbCandidatsDeptAdmis = chargementRespDept(tetudAdmis, nbEtudAdmis, respVille, respDept, tetudRespAdmis); // ? A tester - triNote(tetudRespAdmis, nbCandidatsDeptAdmis); - nbCandidatsDeptAttente = chargementRespDept(tetudAttente, nbEtudAttente, respVille, respDept, tetudRespAttente); - triNote(tetudRespAttente, nbCandidatsDeptAttente); //! Ajouter la moyenne et nommer deux liste pour admis et en attente while (c == false) { // system("clear"); printf("\n\nMenu des Responsable de Departement : Que voulez-vous faire ?\n"); - printf("\t1 - Lancer les admissions\n"); - printf("\t2 - Affichages\n"); - printf("\t3 - Modifier le nombre de places dans un département\n"); - printf("\t4 - Modifier la note minimal d'admission du departement\n"); + printf("\t1 - Affichages\n"); + printf("\t2 - Modifier le nombre de places dans un département\n"); + printf("\t3 - Modifier la note minimal d'admission du departement\n"); // ! A faire + printf("\t4 - Lancer les admissions\n"); // ! A revoir printf("\t9 - Quitter\n"); printf("\nEntrez votre choix :\n> "); scanf("%d%*c", &choix); switch (choix) { case 1: - // lancerAdmissions(tetudResp, nbCandidats, tetudAdmis, nbEtudAdmis, tetudAttente, nbEtudAttente, respVille, respDept); + menuAffichage(tetudResp, nbCandidatsDept); break; case 2: - menuAffichage(tetudResp, nbCandidatsDept, tetudRespAdmis, nbCandidatsDeptAdmis, tetudRespAttente, nbCandidatsDeptAttente); + modificationNbPDeptResp(tiut, *nbIUT, respVille, respDept); break; case 3: - modificationNbPDept(tiut, *nbIUT); - break; + //*noteMin = modifNoteMin(noteMin); + // ? Note min stocké où ? ==> dans le fichier informationsIUT.txt + break; //! A revoir segment fault case 4: - // modificationNoteMinDept(tiut, *nbIUT); + modifStatueCandidat(tetudResp, nbCandidatsDept, noteMin, tiut, *nbIUT, respVille, respDept); //! Mettre dans l'admin et dire que c'est lui qui lance tt + // lancerAdmissions(tetudResp, nbCandidats, tetudAdmis, nbEtudAdmis, tetudAttente, nbEtudAttente, respVille, respDept); + //! Qd finis enregistrer dans tblAdmis et tblAttente puis sauv dans fichier + statueCandidat(tetud, nbCandidats, tetudAdmis, tetudAttente, nbEtudAdmis, nbEtudAttente); break; case 9: c = true; @@ -319,10 +322,11 @@ void menuResponsable(Etudiant *tetud[], int nbCandidats, VilleIUT *tiut[], int * * @param tetudAttente Tableau des étudiants en file d'attente * @param nbEtudAttente Nombre d'étudiants en file d'attente */ -void menuAffichage(Etudiant *tetudResp[], int nbCandidatsDept, Etudiant *tetudRespAdmis[], int nbCandidatsDeptAdmis, Etudiant *tetudRespAttente[], int nbCandidatsDeptAttente) +void menuAffichage(Etudiant *tetudResp[], int nbCandidatsDept) { int choix; bool c = false; + int nbCandidatsDeptAdmis = 0, nbCandidatsDeptAttente = 0, nbCandidatsDeptRefuse = 0; while (c == false) { printf("\n\nMenu des Affichages Responsable de Departement : Que voulez-vous faire ?\n"); @@ -331,7 +335,6 @@ void menuAffichage(Etudiant *tetudResp[], int nbCandidatsDept, Etudiant *tetudRe printf("\t3 - Afficher les candidats refusés du departement\n"); printf("\t4 - Afficher les candidats en attente du departement\n"); printf("\t5 - Afficher un seul candidat du departement\n"); - printf("\t6 - Afficher le statue d'un candidats du departement\n"); printf("\t9 - Quitter\n"); printf("\nEntrez votre choix :\n> "); scanf("%d%*c", &choix); @@ -342,23 +345,54 @@ void menuAffichage(Etudiant *tetudResp[], int nbCandidatsDept, Etudiant *tetudRe printf("Il y a %d candidats dans votre departement.\n", nbCandidatsDept); break; case 2: + nbCandidatsDeptAdmis = nbCandidatsAdmis(tetudResp, nbCandidatsDept); afficherCandidatsAdmis(tetudResp, nbCandidatsDept); - printf("Il y a %d candidats admis dans votre departement.\n", nbCandidatsDeptAdmis);// ! A revoir nbr incorrect + printf("Il y a %d candidats admis dans votre departement.\n", nbCandidatsDeptAdmis); break; case 3: + nbCandidatsDeptRefuse = nbCandidatsRefuses(tetudResp, nbCandidatsDept); afficherCandidatsRefuses(tetudResp, nbCandidatsDept); - printf("Il y a %d candidats refusés dans votre departement.\n", (nbCandidatsDept - (nbCandidatsDeptAdmis + nbCandidatsDeptAttente)));// ! A revoir nbr incorrect + printf("Il y a %d candidats refusés dans votre departement.\n", nbCandidatsDeptRefuse); break; case 4: + nbCandidatsDeptAttente = nbCandidatsAttente(tetudResp, nbCandidatsDept); afficherCandidatsAttente(tetudResp, nbCandidatsDept); - printf("Il y a %d candidats en attente dans votre departement.\n", nbCandidatsDeptAttente); // ! A revoir nbr incorrect + printf("Il y a %d candidats en attente dans votre departement.\n", nbCandidatsDeptAttente); break; case 5: afficherCandidat(tetudResp, nbCandidatsDept); break; - // case 6: - // afficherStatutCandidat(tetudResp, nbCandidatsDept); - // break; + case 9: + c = true; + return; + default: + printf("Option non reconnue. Veuillez recommencer.\n"); + break; + } + } +} + +void menuPostCandidat() +{ + int choix; + bool c = false; + while (c == false) + { + printf("\n\nMenu des Affichages Responsable de Departement : Que voulez-vous faire ?\n"); + printf("\t1 - Afficher les informations sur mes voeus\n"); + printf("\t2 - Validation d'un voeux (et refus des autres)\n"); + printf("\t9 - Quitter\n"); + printf("\nEntrez votre choix :\n> "); + scanf("%d%*c", &choix); + switch (choix) + { + case 1: + afficherCandidat(tetud, *nbCandidats); + break; + case 2: + ValidationCandidature();//** Valide une candidature et rejette ttes les autres ==> enregistre dans tblAdmis et tblAttente + MiseAJourAdmission();//** relance l'admission + break; case 9: c = true; return; diff --git a/responsable.c b/responsable.c index 9391c1d..e3888af 100644 --- a/responsable.c +++ b/responsable.c @@ -40,32 +40,51 @@ int chargementRespDept(Etudiant *tetud[], int nbCand, char respVille[], char res -Etudiant moyenneCandidat(Etudiant mEtudiant) +// Etudiant moyenneCandidat(Etudiant mEtudiant) +// { +// float moyenne = 0; +// for (int i = 0; i < 4; i++) +// { +// moyenne += mEtudiant.tabNotes[i]; +// } +// moyenne /= 4; +// mEtudiant.tabNotes[moy] = moyenne; +// return mEtudiant; +// } + +// Etudiant *moyenneCandidats(Etudiant *tetud[], int nbCandidats) +// { +// for (int i = 0; i < nbCandidats; i++) +// { +// *tetud[i] = moyenneCandidat(*tetud[i]); +// } +// return *tetud; +// } + + +Etudiant modifStatueCandidat(Etudiant *tetud[], int nbCandidats, float noteMin[], VilleIUT *tiut[], int nbIUT, char respVille[30], char respDept[30]) //! tableau des admis + compteur admis { - float moyenne = 0; - for (int i = 0; i < 4; i++) + int posIUT, posDept, nbPlaces; + bool trouve; + posIUT = rechercheVille(tiut, nbIUT, respVille, &trouve); + if (trouve == false) { - moyenne += mEtudiant.tabNotes[i]; + printf("L'IUT de ce responsable n'existe pas. Veuillez réessayer en changeant de responsable.\n"); + return; } - moyenne /= 4; - mEtudiant.tabNotes[moy] = moyenne; - return mEtudiant; -} - -Etudiant *moyenneCandidats(Etudiant *tetud[], int nbCandidats) -{ - for (int i = 0; i < nbCandidats; i++) + posDept = rechercheDept(tiut[posIUT]->ldept, respDept, &trouve); + if (trouve == false) { - *tetud[i] = moyenneCandidat(*tetud[i]); + printf("Le departement de ce responsable n'existe pas. Veuillez réessayer en changeant de responsable.\n"); + return; } - return *tetud; -} - -Etudiant modifStatueCandidat(Etudiant *tetud[], int nbCandidats, float noteMin[]) -{ for (int i = 0; i < nbCandidats; i++) { - if (tetud[i]->tabNotes[maths] >= noteMin[maths] && tetud[i]->tabNotes[francais] >= noteMin[francais] && tetud[i]->tabNotes[anglais] >= noteMin[anglais] && tetud[i]->tabNotes[spe] >= noteMin[spe] && tetud[i]->tabNotes[moy] >= noteMin[moy]) + if (tetud[i]->tabNotes[maths] >= noteMin[maths] && tetud[i]->tabNotes[francais] >= noteMin[francais] && tetud[i]->tabNotes[anglais] >= noteMin[anglais] && tetud[i]->tabNotes[spe] >= noteMin[spe] && tetud[i]->tabNotes[moy] >= noteMin[moy] && nbCandidatsAdmis(tetud, nbCandidats) <= getNbP(tiut[posIUT]->ldept, posDept)) + { + tetud[i]->lChoix->choix.decisionAdmission = 1; + } + else if(tetud[i]->tabNotes[maths] >= noteMin[maths] && tetud[i]->tabNotes[francais] >= noteMin[francais] && tetud[i]->tabNotes[anglais] >= noteMin[anglais] && tetud[i]->tabNotes[spe] >= noteMin[spe] && tetud[i]->tabNotes[moy] >= noteMin[moy] && nbCandidatsAdmis(tetud, nbCandidats) > getNbP(tiut[posIUT]->ldept, posDept)) { tetud[i]->lChoix->choix.decisionAdmission = 2; } @@ -77,21 +96,35 @@ Etudiant modifStatueCandidat(Etudiant *tetud[], int nbCandidats, float noteMin[] return **tetud; } -int statueCandidat(Etudiant *tetud[], int nbCandidats) +int statueCandidat(Etudiant *tetud[], int nbCandidats, Etudiant *tetudAdmis[], Etudiant *tetudAttente[], int nbEtudAdmis, int nbEtudAttente) { - for (int i = 0; i < nbCandidats; i++) + int i; + for (i = 0; i < nbCandidats; i++) { if (tetud[i]->lChoix->choix.decisionAdmission == 1) { - return 1; + tetudAdmis[nbEtudAdmis] = tetud[i]; + nbEtudAdmis++; } - else if (tetud[i]->lChoix->choix.decisionAdmission == -1) + else if (tetud[i]->lChoix->choix.decisionAdmission == 2) { - return -1; + tetudAttente[nbEtudAttente] = tetud[i]; + nbEtudAttente++; } - else + } +} + +Etudiant ValidationCandidature() +{ + int i; + char choix[30]; + printf("Quel voeu souhaitez-vous valider ?\n") + scanf("%s", &choix); + for (i = 0; i < nbCandidats; i++) + { + if (tetud[i]->lChoix->choix.decisionAdmission == 1) { - return 2; + tetud[i]->lChoix->choix.decisionAdmission = 0; } } } @@ -137,7 +170,6 @@ int nbCandidatsAttente(Etudiant *tetud[], int nbCandidats) float modifNoteMin(float noteMin[]) { - for (int i = 0; i < 5; i++) { printf("Entrez la note minimale pour la matiere %s (0/20, -1 pour sortir) : ", i + 1); // afficher le nom de la matiere du enum @@ -155,24 +187,27 @@ float modifNoteMin(float noteMin[]) return *noteMin; } -// float modifNoteExel(float noteExel[]) -// { -// for (int i = 0; i < 5; i++) -// { -// printf("Entrez la note minimale pour la matiere %s (0/20, -1 pour sortir) : ", i + 1); // afficher le nom de la matiere du enum -// scanf("%f", ¬eExel[i]); -// while (noteExel[i] < 0 || noteExel[i] > 20) -// { -// scanf("%f", ¬eExel[i]); -// if (noteExel[i] == -1) -// { -// break; -// } -// printf("La note doit être comprise entre 0 et 20 !\n"); -// } -// } -// return *noteExel; -// } +void modificationNbPDeptResp(VilleIUT *tiut[], int nbIUT, char respVille[30], char respDept[30]) +{ + int posIUT, posDept, nbPlaces; + bool trouve; + posIUT = rechercheVille(tiut, nbIUT, respVille, &trouve); + if (trouve == false) + { + printf("L'IUT de ce responsable n'existe pas. Veuillez réessayer en changeant de responsable.\n"); + return; + } + posDept = rechercheDept(tiut[posIUT]->ldept, respDept, &trouve); + if (trouve == false) + { + printf("Le departement de ce responsable n'existe pas. Veuillez réessayer en changeant de responsable.\n"); + return; + } + printf("Il y a actuellement %d places dans ce département. Entrez le nouveau nombre de places :\n> ", getNbP(tiut[posIUT]->ldept, posDept)); + scanf("%d", &nbPlaces); + setNbP(tiut[posIUT]->ldept, posDept, nbPlaces); + printf("Le nombre de places est bien passé à %d.\n", getNbP(tiut[posIUT]->ldept, posDept)); +} int modifNbPlaces(int nbPlaces) { @@ -231,7 +266,7 @@ void lancerAdmissions(Etudiant *tetudResp[], int nbCandResp, Etudiant *tetudAdmi *nbEtudAdmis++; places++; } - else if (tetudResp[i]->tabNotes[4] >= moyenneMin) + else if (tetudResp[i]->tabNotes[4] >= moyenneMin && places >= placesMax) { setDecisionAdmission(tetudResp[i]->lChoix, pos, 2); tetudAttente[*nbEtudAttente] = tetudResp[i];