From 6b4fa3c184510876365a4c09448c3db319360aa1 Mon Sep 17 00:00:00 2001 From: "antoine.perederii" Date: Fri, 6 Jan 2023 15:10:37 +0100 Subject: [PATCH] Ajout des bonnes structures Partie_2 git status --- SAE.h | 59 ++++++------- exe | Bin 27120 -> 31640 bytes structures.c | 228 ++++++++++++++------------------------------------- 3 files changed, 83 insertions(+), 204 deletions(-) diff --git a/SAE.h b/SAE.h index 7b1e09f..6859788 100755 --- a/SAE.h +++ b/SAE.h @@ -48,43 +48,30 @@ void modificationRespDept(VilleIUT *tiut[], int nb); // Partie 3 -Departement lireDpt(FILE *flot, ListeDepartement dpt); -void afficheDept(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); -ListeAdmission insererAdm(ListeAdmission la, Admission candidat); -void afficherAdm(ListeAdmission la); -bool videAdm(ListeAdmission la); -ListeAdmission supprimerEnTeteAdm(ListeAdmission la); -ListeAdmission supprimerAdm(ListeAdmission la, Admission candidat); -bool rechercheAdm(ListeAdmission la, Admission candidat); -Departement TeteAdm(ListeAdmission la); -int longueurAdm(ListeAdmission la); -void afficherCandidatsAdm(Admission candidat); +// Departement lireDpt(FILE *flot, ListeDepartement dpt); +// void afficheDept(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 Departement -ListeDepartement listenouvDpt(void); -ListeDepartement insererEnTeteDpt(ListeDepartement ld, Departement dpt); -ListeDepartement insererDpt(ListeDepartement ld, Departement dpt); -ListeDepartement supprimerEnTeteDpt(ListeDepartement ld); -ListeDepartement supprimerDpt(ListeDepartement ld, Departement dpt); -bool rechercheDpt(ListeDepartement ld, Departement dpt); -int TeteDpt(ListeDepartement ld); -bool videDpt(ListeDepartement ld); -void afficherDpt(ListeDepartement ld); -void afficherDepartement(Departement dpt); -int longueurDpt(ListeDepartement ld); +// Liste Choix +ListeChoix listenouvChoix(void); +ListeChoix insererEnTeteChoix(ListeChoix lc, Choix choix); +ListeChoix insererChoix(ListeChoix lc, Choix choix); +ListeChoix supprimerEnTeteChoix(ListeChoix lc); +ListeChoix supprimerChoix(ListeChoix lc, Choix choix); +bool rechercheChoix(ListeChoix lc, Choix choix); +Choix TeteChoix(ListeChoix lc); +bool videChoix(ListeChoix lc); +void afficherChoix(ListeChoix lc); +int longueurChoix(ListeChoix lc); +void afficherCandidatsChoix(Choix choix); /* Departement lireDpt(FILE *flot); diff --git a/exe b/exe index 379b279d8adc7dfebdb223cb3d7684ebb5f93f03..3325d2ce0dc100a38221946838b8e63639d36ff7 100755 GIT binary patch delta 9022 zcmcIpc~}%zwy!Q+phan*+1zMQkX3NOZ9qZoOsS|H1vMxL3Mlg_5|+dm{n`YaN!uY& zulZt3Cd121-ZR_NNS3;uRHmoF+w~KGxD`~kP`RDS`->#0d>dqTjrnqx>vWOgx~|lBbUE^J8~g6IVR0J= zj$?8}Hx_}F$=$VKio5UBBC;!Zs6Wh<#*D9v$e)6T z&ZGi1$zN?RXRe2XqBqkqH)kD!N~%lCSL(Cw&~~M`Zq^1W?yTLwJ*i0Avl?GV`#x7h zhK8g>rApF4>gbt+2`G*BQ;O>-^7tZ^l!Rm?LF;MzQB}QZ*jB*jb@N+5VZM)>yHiO^ z$b^W~k&@)HcLyD?zh2*EYG|nqhR>l?GB7lKL}nCpH1ttDMlO%>29IGLO^QRu^%(*? zax!Fy)t%q%I3(-X%QcM^Z_l zHNuok>a3a0aCD%c16v-&3W)6Pr&E0S2iRYwi`AG_tf%)LP^EFpMi}!EHt4DmY~-w3 z9oRu_-C@r!r7`TA-y6TVc-@%@S7>*Ed)p*C&G&&BhbHThDxK+WL*lG7LhE^v63|r zj}FE%^SXJXo5ig6m^yMk%Plxu;`bDrQ>_R z@HTv38D1zqVJ2D8dGcv9A<@(1Zw8RF(M#oVW-`Xs5{>Y1b<*OqbYT`Qd%IGiY z0ysW_SYkHFe+nc|#{8=PelxAO%j7ZZaPnSEfc((_@@>pS)NopCuDs4nHpM2$mH_gf zv9p{DmHJx=ifhw__Z_rpe)%Pf>_KFYR2PoO_3?lg0e&CFE_njKf&q3(anH3V?!rjL z<*&Gw_(QZoL?p!mITCU@| zn=GE!Z>j2*mPdZ!k@>(*I`YHX$oKaec`O?_Xv+!Od}&6Fj^Su8qZNKeLYewsS`z2I z_C{ZltMq84}Dv5U@MW*dFGctoVk%EUFjS5;v&l%ubx{%bIv=1^6% z(3?h}ylcMD3O$je#78>=Ak&rqCq5raC( z@Mv|?363Y3k7i_6+}H%ICt?rW*aN*MVh`Nd1HC6=58MUV3+xH)i3_q>Po$?qWaGSv zYVAfd?v{dfwiN1}aW&vwo$J|imOFo!=m*o-WQ?t`36b{b>CD{+@t`lAxh;^7`_h?v z3i1U#o&0u}(~<3|qnpPH!@f hhzfZ~H?S&9+aGfmKz2f@CN`;O%4{9IMHA(H6i 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 = candidat; - p->suiv = la; + p->choix = choix; + p->suiv = lc; return p; } -ListeAdmission insererAdm(ListeAdmission la, Admission candidat) +ListeChoix insererChoix(ListeChoix lc, Choix choix) { - if (la == NULL) - return insererEnTeteAdm(la, candidat); - if (candidat.num < la->v.num) - return insererEnTeteAdm(la, candidat); - if (candidat.num > la->v.num) - return la; - la->suiv = insererAdm(la->suiv, candidat); - return la; + if (videChoix(lc)) + return insererEnTeteChoix(lc, choix); + if (strcmp(choix.ville, lc->choix.ville) < 0) + return insererEnTeteChoix(lc, choix); + if (strcmp(choix.ville, lc->choix.ville) == 0) + { + if (strcmp(choix.departement, lc->choix.departement) != 0) + return insererEnTeteChoix(lc, choix); + lc->choix = choix; + } + lc->suiv = insererChoix(lc->suiv, choix); + return lc; } -ListeAdmission supprimerEnTeteAdm(ListeAdmission la) +ListeChoix supprimerEnTeteChoix(ListeChoix lc) { - MaillonAdmission *aux; - if (videAdm(la)) + MaillonChoix *aux; + if (videChoix(lc)) { printf("Opérations interdites !!!!\n"); exit(1); } - aux = la; - la = la->suiv; + aux = lc; + lc = lc->suiv; free(aux); - return la; + return lc; } -ListeAdmission supprimerAdm(ListeAdmission la, Admission candidat) +ListeChoix supprimerChoix(ListeChoix lc, Choix choix) { - if (videAdm(la)) - return la; - if (candidat.num < la->v.num) - return la; - if (candidat.num == la->v.num) - return supprimerEnTeteAdm(la); - la->suiv = supprimerAdm(la->suiv, la->v); - return la; + if (videChoix(lc)) + return lc; + if (strcmp(choix.ville, lc->choix.ville) < 0) + return lc; + if (strcmp(choix.ville, lc->choix.ville) == 0) + if (strcmp(choix.departement, lc->choix.departement) == 0) + return supprimerEnTeteChoix(lc); + lc->suiv = supprimerChoix(lc->suiv, lc->choix); + return lc; } -bool rechercherAdm(ListeAdmission la, Admission candidat) +bool rechercherChoix(ListeChoix lc, Choix choix) { - if (videAdm(la)) + if (videChoix(lc)) return false; - if (candidat.num < la->v.num) + if (strcmp(choix.ville, lc->choix.ville) < 0) return false; - if (candidat.num == la->v.num) - return true; - return rechercherAdm(la->suiv, la->v); + if (strcmp(choix.ville, lc->choix.ville) == 0) + if (strcmp(choix.departement, lc->choix.departement) == 0) + return true; + return rechercherChoix(lc->suiv, lc->choix); } -Admission TeteAdm(ListeAdmission la) +Choix TeteChoix(ListeChoix lc) { - if (videAdm(la)) + if (videChoix(lc)) { printf("Opérations interdites !!!!\n"); exit(1); } - return la->v; /* Retourne un candidat */ + return lc->choix; /* Retourne un choix (ville) */ } -bool videAdm(ListeAdmission la) +bool videChoix(ListeChoix lc) { - return la == NULL; + return lc == NULL; } -void afficherAdm(ListeAdmission la) +void afficherChoix(ListeChoix lc) { - while (!videAdm(la)) + while (!videChoix(lc)) { - afficherCandidatsAdm(TeteAdm(la)); - la = la->suiv; + afficherCandidatsChoix(TeteChoix(lc)); + lc = lc->suiv; } printf("\n"); } -int longueurAdm(ListeAdmission la) +int longueurChoix(ListeChoix lc) { int cpt = 0; - while (!videAdm(la)) + while (!videChoix(lc)) { cpt++; - la = la->suiv; + lc = lc->suiv; } return cpt; } -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.tabMatiere[0], candidat.tabMatiere[1], candidat.tabMatiere[2], candidat.tabMatiere[3], candidat.nbChoix, candidat.ville); - afficherDpt(candidat.ldept); -} - -// ListeDepartement - -ListeDepartement listenouvDpt(void) -{ - ListeDepartement ld; - ld = NULL; - return ld; -} - -ListeDepartement insererEnTeteDpt(ListeDepartement ld, Departement dpt) +void afficherCandidatsChoix(Choix choix) { - MaillonDepartement *p; - p = (MaillonDepartement *)malloc(sizeof(MaillonDepartement)); - if (p == NULL) - { - printf("Opérations interdites !!!!\n"); - exit(1); - } - p->v = dpt; - p->suiv = ld; - return p; -} - -ListeDepartement insererDpt(ListeDepartement ld, char dpt) -{ - if (ld == NULL) - return insererEnTeteDpt(ld, dpt); - if (strcmp(dpt, ld->v.departement) < 0) - return insererEnTeteDpt(ld, dpt); - if (strcmp(dpt, ld->v.departement) = 0) - return ld; - ld->suiv = insererDpt(ld->suiv, dpt); - return ld; -} - -ListeDepartement supprimerEnTeteDpt(ListeDepartement ld) -{ - MaillonDepartement *aux; - if (videDpt(ld)) - { - printf("Opérations interdites !!!!\n"); - exit(1); - } - aux = ld; - ld = ld->suiv; - free(aux); - return ld; -} - -ListeDepartement supprimerDpt(ListeDepartement ld, char dpt) -{ - if (videDpt(ld)) - return ld; - if (strcmp(dpt, ld->v.departement) < 0) - return ld; - if (strcmp(dpt, ld->v.departement) = 0) - return supprimerEnTeteDpt(ld); - ld->suiv = supprimerDpt(ld->suiv, dpt); - return ld; -} - -bool rechercherDpt(ListeDepartement ld, char dpt) -{ - if (videDpt(ld)) - return false; - if (strcmp(dpt, ld->v.departement) < 0) - return false; - if (strcmp(dpt, ld->v.departement) = 0) - return true; - return rechercherDpt(ld->suiv, dpt); -} - -Departement TeteDpt(ListeDepartement ld) -{ - if (videDpt(ld)) - { - printf("Opérations interdites !!!!\n"); - exit(1); - } - return ld->v; /* Retourne un département */ -} - -bool videDpt(ListeDepartement ld) -{ - return ld == NULL; -} - -void afficherDpt(ListeDepartement ld) -{ - while (!videDpt(ld)) - { - afficherDepartement(TeteDpt(ld)); - ld = ld->suiv; - } - printf("\n"); -} - -void afficherDepartement(Departement dpt) -{ - printf("%s\t%d\t%d\t", dpt.departement, dpt.decisionAdmission, dpt.decisionCandidat); -} - -int longueurDpt(ListeDepartement ld) -{ - int cpt = 0; - while (!videDpt(ld)) - { - cpt++; - ld = ld->suiv; - } - return cpt; + printf("Ville : %s\nDépartement : %s\nAdmission : %d\nCandidat : %d\n", choix.ville, choix.departement, choix.decisionAdmission, choix.decisionCandidat); } \ No newline at end of file