diff --git a/SAE.h b/SAE.h index b464700..401d894 100755 --- a/SAE.h +++ b/SAE.h @@ -45,6 +45,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/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