diff --git a/SAE.h b/SAE.h index b464700..c209a93 100755 --- a/SAE.h +++ b/SAE.h @@ -5,9 +5,9 @@ #include "structures.h" /* Menus */ -void choixMenu(void); -void menuUtilisateur(void); -void menuAdministrateur(void); +void choixMenu(ListeDept *tiut[]); +void menuUtilisateur(ListeDept *tiut[]); +void menuAdministrateur(ListeDept *tiut[]); /* Partie 1 */ ListeDept listenouv(void); @@ -19,6 +19,7 @@ void afficherDept(ListeDept l); int rechercheDept(ListeDept l, char departement[], bool *trouve); ListeDept supprimerEnTete(ListeDept l); ListeDept supprimer(ListeDept l, char departement[]); +int longueur(ListeDept l); int getNbP(ListeDept l, int pos); void setNbP(ListeDept l, int pos, int valeur); @@ -45,6 +46,18 @@ void modificationRespDept(VilleIUT *tiut[], int nb); // Partie 3 +Departement lireDpt(FILE *flot, ListeDepartement dpt) +void afficherDept(Departement dpt); +Admission lireCandidat(FILE *flot, ListeAdmission la); +void afficherCandidat(Admission candidat); +ListeAdmission chargerCandidats(char *ficAdmission, char dptResAdmi[30], ListeAdmission la); +void sauvegarderCandidats(ListeAdmission listeCandidats, char dptResAdmi[30]); +void afficherCandidatsAdmis(ListeAdmission listeCandidats); +void afficherCandidatsNonAdmis(ListeAdmission listeCandidats); +void afficherCandidatsAttente(ListeAdmission listeCandidats); +void afficherCandidatsDpt(ListeAdmission listeCandidats); +ListeAdmission MoyenneCandidats(ListeAdmission listeCandidats); + // Liste Admission ListeAdmission listenouvAdm(void); ListeAdmission insererEnTeteAdm(ListeAdmission la, Admission candidat); diff --git a/exe b/exe index 23a11fb..1e1cebf 100755 Binary files a/exe and b/exe differ diff --git a/global.c b/global.c index 5ba7d09..8532777 100755 --- a/global.c +++ b/global.c @@ -2,5 +2,6 @@ void global(void) { + } diff --git a/menus.c b/menus.c index 3fbea0b..b6695c6 100755 --- a/menus.c +++ b/menus.c @@ -1,6 +1,6 @@ #include "SAE.h" -void choixMenu(void) +void choixMenu(ListeDept *tiut[]) { int choix; bool c = false; @@ -17,11 +17,11 @@ void choixMenu(void) { case 1: c = true; - menuUtilisateur(); + menuUtilisateur(tiut); break; case 2: c = true; - menuAdministrateur(); + menuAdministrateur(tiut); break; case 9: c = true; @@ -33,7 +33,7 @@ void choixMenu(void) } } -void menuUtilisateur(void) +void menuUtilisateur(ListeDept *tiut[]) { int choix; bool c = false; @@ -68,7 +68,7 @@ void menuUtilisateur(void) break; case 9: c = true; - return choixMenu(); + return choixMenu(tiut); default: printf("Option non reconnue. Veuillez recommencer.\n"); break; @@ -76,7 +76,7 @@ void menuUtilisateur(void) } } -void menuAdministrateur(void) +void menuAdministrateur(ListeDept *tiut[]) { int choix; bool c = false; @@ -120,7 +120,7 @@ void menuAdministrateur(void) // break; case 9: - return choixMenu(); + return choixMenu(tiut); break; default: printf("Option non reconnue. Veuillez recommencer.\n"); diff --git a/partie_3.c b/partie_3.c index c2663d2..e8828a3 100755 --- a/partie_3.c +++ b/partie_3.c @@ -1,8 +1,7 @@ #include "SAE.h" -/* -Departement lireDpt(FILE *flot, Admission ListeDepartement) + +Departement lireDept(FILE *flot, ListeDepartement dpt) { - Departement dpt; fscanf(flot, "%s\n%d\n%d\n", dpt.departement, &dpt.decisionAdmission, &dpt.decisionCandidat); return dpt; } @@ -12,41 +11,41 @@ void afficherDpt(Departement dpt) printf("\t%s\t%d\t%d", dpt.departement, dpt.decisionAdmission, dpt.decisionCandidat); } -Admission lireCandidat(FILE *flot, ListeAdmission la) +Admission lireCandidat(FILE *flot, ListeAdmission la, char dptResAdmis[]) { int i = 0; - fscanf(flot, "%d\n", &la->candidat.num); - fgets(candidat.nom, 22, flot); - candidat.nom[strlen(candidat.nom) - 1] = '\0'; - fgets(candidat.prenom, 22, flot); - candidat.prenom[strlen(candidat.prenom) - 1] = '\0'; - fscanf(flot, "%d\t%d\t%d\t%d\n%d\n%s\n", &candidat.tabMatiere[0], &candidat.tabMatiere[1], &candidat.tabMatiere[2], &candidat.tabMatiere[3], &candidat.nbChoix, candidat.ville); - if(candidat.nbChoix == 0) + fscanf(flot, "%d\n", &la->v.num); + fgets(la->v.nom, 22, flot); + la->v.nom[strlen(la->v.nom) - 1] = '\0'; + fgets(la->v.prenom, 22, flot); + la->v.prenom[strlen(la->v.prenom) - 1] = '\0'; + fscanf(flot, "%d\t%d\t%d\t%d\n%d\n%s\n", &la->v.tabMatiere[0], &la->v.tabMatiere[1], &la->v.tabMatiere[2], &la->v.tabMatiere[3], &la->v.nbChoix, la->v.ville); + if(la->v.nbChoix == 0) { listenouv(); - return candidat; + return la->v; } - dpt = lireDpt(flot); - while(!feof(flot) && i < candidat.nbChoix) + ajouterDpt(la->v.ldept, lireDept(flot, la->v.ldept)); + while(!feof(flot) && i < la->v.nbChoix) { - if(strcmp(dpt.departement, dptResAdmi) == 0) + if(strcmp(la->v.ldept, dptResAdmi) == 0) { - candidat.ldept = inserer(candidat, dpt); + la->v.ldept = inserer(la->v, la->v.ldept); } - dpt = lireDpt(flot); + ajouterDpt(la->v.ldept, lireDept(flot, la->v.ldept)); i++; } - return candidat; + return la->v; } -void afficherCandidats(Admission candidat) +void afficherCandidats(ListeAdmission la) { int i; - printf("%d\t%s\t%s\t%d\t%d\t%d\t%d\t%d\t%s\t%s\t%d\t%d", candidat.num, candidat.nom, candidat.prenom, candidat.noteMaths, candidat.noteFrançais, candidat.noteAnglais, candidat.noteSpe, candidat.nbChoix, candidat.ville); - for(i = 0; i < candidat.nbChoix; i++) + printf("%d\t%s\t%s\t%d\t%d\t%d\t%d\t%d\t%s\t%s\t%d\t%d", la->v.num, la->v.nom, la->v.prenom, la->v.tabMatiere[0], la->v.tabMatiere[1], la->v.tabMatiere[2], la->v.tabMatiere[3], la->v.nbChoix, la->v.ville); + for(i = 0; i < la->v.nbChoix; i++) { - afficherDpt(candidat.ldept->v); - ldept = ldept->suiv; + afficherDpt(la->v.ldept->v); + la->v.ldept = la->v.ldept->suiv; } printf("\n"); } @@ -63,7 +62,7 @@ ListeAdmission chargerCandidats(char *ficAdmission, char dptResAdmi[30], ListeAd printf("Erreur d'ouverture du fichier !\n"); exit(1); } - la->v = lireCandidat(flot); + la->v = lireCandidat(flot, la, dptResAdmi); while(!feof(flot)) { listeCandidats = insererCand(listeCandidats, candidat); @@ -225,4 +224,3 @@ int modifNbAdmisMax() scanf("%d", &nbAdmisMax); return nbAdmisMax; } -*/ \ No newline at end of file diff --git a/structures.c b/structures.c index 29b299d..4d4c6cd 100755 --- a/structures.c +++ b/structures.c @@ -1,5 +1,5 @@ #include "SAE.h" -/* + // ListeAdmission ListeAdmission listenouvAdm(void) @@ -43,7 +43,7 @@ ListeAdmission supprimerEnTeteAdm(ListeAdmission la) printf("Opérations interdites !!!!\n"); exit(1); } - aux = la + aux = la; la = la->suiv; free(aux); return la; @@ -80,7 +80,7 @@ int TeteAdm(ListeAdmission la) printf("Opérations interdites !!!!\n"); exit(1); } - return la->v; /* Retourne un candidat + return la->v; /* Retourne un candidat */ } bool videAdm(ListeAdmission la) @@ -194,7 +194,7 @@ int TeteDpt(ListeDepartement ld) printf("Opérations interdites !!!!\n"); exit(1); } - return ld->v; /* Retourne un département + return ld->v; /* Retourne un département */ } bool videDpt(ListeDepartement ld) @@ -226,6 +226,4 @@ int longueurDpt(ListeDepartement ld) ld = ld->suiv; } return cpt; -} - -*/ \ No newline at end of file +} \ No newline at end of file diff --git a/structuresP1.c b/structuresP1.c index 0e02dea..4b6db95 100644 --- a/structuresP1.c +++ b/structuresP1.c @@ -163,4 +163,13 @@ char* getDept(ListeDept l, int pos) l = l->suiv; } return l->departement; +} + +int longueur(ListeDept l) +{ + if (vide(l)) + { + return 0; + } + return 1 + longueur(l->suiv); } \ No newline at end of file diff --git a/utilisateur.c b/utilisateur.c index f2849dc..10fc4ea 100644 --- a/utilisateur.c +++ b/utilisateur.c @@ -17,4 +17,17 @@ void affichageDeptIUT(VilleIUT *tiut[], int nb) printf("\t%s :\n", tiut[i]->ville); afficherDept(tiut[i]->ldept); } +} + +void affichageNbP(VilleIUT *tiut[], int nb) +{ + printf("Voici le nombre de places dans chaque département de chaque IUT :"); + for (int i = 0; i < nb; i++) + { + printf("\t%s :\n", tiut[i]->ville); + for (int v = 0; v < longueur(tiut[i]->ldept); v++) + { + printf("\t%s :\t%s", getDept(tiut[i]->ldept, v), getNbP(tiut[i]->ldept, v)); + } + } } \ No newline at end of file