diff --git a/SAE.h b/SAE.h index c209a93..029b24e 100755 --- a/SAE.h +++ b/SAE.h @@ -46,7 +46,7 @@ void modificationRespDept(VilleIUT *tiut[], int nb); // Partie 3 -Departement lireDpt(FILE *flot, ListeDepartement dpt) +Departement lireDpt(FILE *flot, ListeDepartement dpt); void afficherDept(Departement dpt); Admission lireCandidat(FILE *flot, ListeAdmission la); void afficherCandidat(Admission candidat); @@ -67,7 +67,7 @@ bool videAdm(ListeAdmission la); ListeAdmission supprimerEnTeteAdm(ListeAdmission la); ListeAdmission supprimerAdm(ListeAdmission la, Admission candidat); bool rechercheAdm(ListeAdmission la, Admission candidat); -int TeteAdm(ListeAdmission la); +Departement TeteAdm(ListeAdmission la); int longueurAdm(ListeAdmission la); void afficherCandidatsAdm(Admission candidat); diff --git a/partie_3.c b/partie_3.c index e8828a3..0a20991 100755 --- a/partie_3.c +++ b/partie_3.c @@ -30,7 +30,7 @@ Admission lireCandidat(FILE *flot, ListeAdmission la, char dptResAdmis[]) { if(strcmp(la->v.ldept, dptResAdmi) == 0) { - la->v.ldept = inserer(la->v, la->v.ldept); + la->v.ldept = insererDpt(la->v.ldept, la->v.ldept->v.departement); } ajouterDpt(la->v.ldept, lireDept(flot, la->v.ldept)); i++; @@ -62,17 +62,17 @@ ListeAdmission chargerCandidats(char *ficAdmission, char dptResAdmi[30], ListeAd printf("Erreur d'ouverture du fichier !\n"); exit(1); } - la->v = lireCandidat(flot, la, dptResAdmi); + insererAdm(la, lireCandidat(flot, la, dptResAdmi)); while(!feof(flot)) { - listeCandidats = insererCand(listeCandidats, candidat); - candidat = lireCandidat(flot); + la = insererCand(la, la->v); + la->v = lireCandidat(flot, la, dptResAdmi); } fclose(flot); - return listeCandidats; + return la; } -void sauvegarderCandidats(ListeAdmission listeCandidats, char dptResAdmi[30]) +void sauvegarderCandidats(ListeAdmission la, char dptResAdmi[30]) { FILE *flot; flot=fopen("admissionInfo.txt", "w"); @@ -81,74 +81,71 @@ void sauvegarderCandidats(ListeAdmission listeCandidats, char dptResAdmi[30]) printf("Erreur d'ouverture du fichier !\n"); exit(1); } - while(! videCand(listeCandidats)) + while(! videAdm(la)) { - fprintf(flot, "%d\n%s\n%s\n%d\t%d\t%d\t%d\n%d\n%s\n", listeCandidats->v.num, listeCandidats->v.nom, listeCandidats->v.prenom, listeCandidats->v.tabMatiere[0], listeCandidats->v.tabMatiere[1], listeCandidats->v.tabMatiere[2], listeCandidats->v.tabMatiere[3], listeCandidats->v.nbChoix, listeCandidats->v.ville); - while(! videDpt(listeCandidats->v.ldept)) + fprintf(flot, "%d\n%s\n%s\n%d\t%d\t%d\t%d\n%d\n%s\n", 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); + while(! videDpt(la->v.ldept)) { - fprintf(flot, "%s\n%d\n%d\n", listeCandidats->v.ldept->v.departement, listeCandidats->v.ldept->v.decisionAdmission, listeCandidats->v.ldept->v.decisionCandidat); - listeCandidats->v.ldept = listeCandidats->v.ldept->suiv; + fprintf(flot, "%s\n%d\n%d\n", la->v.ldept->v.departement, la->v.ldept->v.decisionAdmission, la->v.ldept->v.decisionCandidat); + la->v.ldept = la->v.ldept->suiv; } - listeCandidats = listeCandidats->suiv; + la = la->suiv; } fclose(flot); } -void afficherCandidatsAdmis(ListeAdmission listeCandidats) +void afficherCandidatsAdmis(ListeAdmission la) { - while(! videCand(listeCandidats)) + while(! videCand(la->v.ldept)) { - if(listeCandidats->v.admis == 1) + if(la->v.ldept->v.decisionAdmission == 1) { - afficherCandidats(listeCandidats->v); + afficherCandidats(la); } - listeCandidats = listeCandidats->suiv; + la->v.ldept = la->v.ldept->suiv; } } -void afficherCandidatsNonAdmis(ListeAdmission listeCandidats) +void afficherCandidatsNonAdmis(ListeAdmission la) { - while(! videCand(listeCandidats)) + while(! videCand(la->v.ldept)) { - if(listeCandidats->v.admis == 0) + if(la->v.ldept->v.decisionAdmission == 0) { - afficherCandidats(listeCandidats->v); + afficherCandidats(la); } - listeCandidats = listeCandidats->suiv; } } -void afficherCandidatsAttente(ListeAdmission listeCandidats) +void afficherCandidatsAttente(ListeAdmission la) { - while(! videCand(listeCandidats)) + while(! videCand(la->v.ldept)) { - if(listeCandidats->v.admis == 2) + if(la->v.ldept->v.decisionAdmission == 2) { - afficherCandidats(listeCandidats->v); + afficherCandidats(la); } - listeCandidats = listeCandidats->suiv; + la = la->suiv; } } -void afficherCandidatsDpt(ListeAdmission listeCandidats) +void afficherCandidatsDpt(ListeAdmission la) { - while(! videCand(listeCandidats)) + while(! videAdm(la->v.ldept)) { - afficherCandidats(listeCandidats->v); - listeCandidats = listeCandidats->suiv; + afficherCandidats(la); + la = la->suiv; } } -ListeAdmission MoyenneCandidats(ListeAdmission listeCandidats) +ListeAdmission MoyenneCandidats(ListeAdmission la) { - ListeAdmission listeMoyenne = listeNouvCand(); - while(! videCand(listeCandidats)) + while(! videAdm(la)) { - listeCandidats->v.moyenne = (listeCandidats->v.noteMaths + listeCandidats->v.noteFrançais + listeCandidats->v.noteAnglais + listeCandidats->v.noteSpe) / 4; - listeMoyenne = insererCand(listeMoyenne, listeCandidats->v); - listeCandidats = listeCandidats->suiv; + la->v.tabMatiere[4] = (la->v.tabMatiere[0] + la->v.tabMatiere[1] + la->v.tabMatiere[2] + la->v.tabMatiere[3]) / 4; + la = la->suiv; } - return listeMoyenne; + return la; } // Comment definir la note sur 20 mise lors de l'etude du dossier ? diff --git a/structures.c b/structures.c index 4d4c6cd..baf9fce 100755 --- a/structures.c +++ b/structures.c @@ -26,9 +26,9 @@ ListeAdmission insererEnTeteAdm(ListeAdmission la, Admission candidat) ListeAdmission insererAdm(ListeAdmission la, Admission candidat) { if(la == NULL) - return insererEnTeteAdm(f, candidat); + return insererEnTeteAdm(la, candidat); if(candidat.num < la->v.num) - return insererEnTeteAdm(f, candidat); + return insererEnTeteAdm(la, candidat); if(candidat.num > la->v.num) return la; la->suiv = insererAdm(la->suiv, candidat); @@ -57,7 +57,7 @@ ListeAdmission supprimerAdm(ListeAdmission la, Admission candidat) return la; if(candidat.num == la->v.num) return supprimerEnTeteAdm(la); - la->suiv = supprimerAdm(la->suiv, candidat.num); + la->suiv = supprimerAdm(la->suiv, la->v); return la; } @@ -70,10 +70,10 @@ bool rechercherAdm(ListeAdmission la, Admission candidat) return false; if(candidat.num == la->v.num) return true; - return rechercherAdm(la->suiv, candidat.num); + return rechercherAdm(la->suiv, la->v); } -int TeteAdm(ListeAdmission la) +Admission TeteAdm(ListeAdmission la) { if(videAdm(la)) { @@ -92,7 +92,7 @@ void afficherAdm(ListeAdmission la) { while(!videAdm(la)) { - afficherCandidatsAdm(Tete(la)); + afficherCandidatsAdm(TeteAdm(la)); la = la->suiv; } printf("\n"); @@ -101,7 +101,7 @@ void afficherAdm(ListeAdmission la) int longueurAdm(ListeAdmission la) { int cpt = 0; - while(!vide(la)) + while(!videAdm(la)) { cpt++; la = la->suiv; @@ -111,8 +111,8 @@ int longueurAdm(ListeAdmission la) void afficherCandidatsAdm(Admission candidat) { - 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); - afficherDpt(candidat.ListeDepartement); + 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.tabMatiere[0], candidat.tabMatiere[1], candidat.tabMatiere[2], candidat.tabMatiere[3], candidat.nbChoix, candidat.ville); + afficherDpt(candidat.ldept); } // ListeDepartement @@ -138,13 +138,13 @@ ListeDepartement insererEnTeteDpt(ListeDepartement ld, Departement dpt) return p; } -ListeDepartement insererDpt(ListeDepartement ld, Departement dpt) +ListeDepartement insererDpt(ListeDepartement ld, char dpt) { if(ld == NULL) return insererEnTeteDpt(ld, dpt); - if(strcmp(dpt.departement, ld->v.departement) < 0) + if(strcmp(dpt, ld->v.departement) < 0) return insererEnTeteDpt(ld, dpt); - if(strcmp(dpt.departement, ld->v.departement) = 0) + if(strcmp(dpt, ld->v.departement) = 0) return ld; ld->suiv = insererDpt(ld->suiv, dpt); return ld; @@ -164,30 +164,30 @@ ListeDepartement supprimerEnTeteDpt(ListeDepartement ld) return ld; } -ListeDepartement supprimerDpt(ListeDepartement ld, Departement dpt) +ListeDepartement supprimerDpt(ListeDepartement ld, char dpt) { if(videDpt(ld)) return ld; - if(strcmp(dpt.departement, ld->v.departement) < 0) + if(strcmp(dpt, ld->v.departement) < 0) return ld; - if(strcmp(dpt.departement, ld->v.departement) = 0) + if(strcmp(dpt, ld->v.departement) = 0) return supprimerEnTeteDpt(ld); - ld->suiv = supprimerDpt(ld->suiv, dpt.departement); + ld->suiv = supprimerDpt(ld->suiv, dpt); return ld; } -bool rechercherDpt(ListeDepartement ld, Departement dpt) +bool rechercherDpt(ListeDepartement ld, char dpt) { if(videDpt(ld)) return false; - if(strcmp(dpt.departement, ld->v.departement) < 0) + if(strcmp(dpt, ld->v.departement) < 0) return false; - if(strcmp(dpt.departement, ld->v.departement) = 0) + if(strcmp(dpt, ld->v.departement) = 0) return true; - return rechercherDpt(ld->suiv, dpt.departement); + return rechercherDpt(ld->suiv, dpt); } -int TeteDpt(ListeDepartement ld) +Departement TeteDpt(ListeDepartement ld) { if(videDpt(ld)) {