From 25297d534df090115fd6f15d03142076a3af883d Mon Sep 17 00:00:00 2001 From: Alix JEUDI--LEMOINE Date: Wed, 4 Jan 2023 09:35:54 +0100 Subject: [PATCH] Ajout fclose manquant + passage de afficherCandidatures en recursif + ajout de checkCandidature + correction du realloc de ajouterCandidat --- src/II/deux.c | 68 ++++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 64 insertions(+), 4 deletions(-) diff --git a/src/II/deux.c b/src/II/deux.c index 75c8e5d..8163a7c 100644 --- a/src/II/deux.c +++ b/src/II/deux.c @@ -41,7 +41,7 @@ Candidature* creerCandidature(void) { } void ajouterCandidat(ListeCandidats* listePointer, int* nbCandidats, Candidat* candidat) { - ListeCandidats listeNew = (ListeCandidats) realloc(*listePointer, (*nbCandidats+2)*sizeof(Candidat*)); + ListeCandidats listeNew = (ListeCandidats) realloc(*listePointer, (*nbCandidats+1)*sizeof(Candidat*)); if(listeNew == NULL) { perror("realloc"); @@ -61,6 +61,16 @@ void ajouterCandidature(Candidat* candidat, Candidature* candidature) { candidat->nbCandidatures+=1; } +int checkCandidature(Candidat* candidat, Candidature candid) { + int nbCandidatures = candidat->nbCandidatures; + + for(int i=0; ilisteCandidatures[i]->ville, candid.ville) == 0) + if(strcmp(candidat->listeCandidatures[i]->departement, candid.departement) == 0) + return -1; + + return 0; +} void afficherListeCandidats(ListeCandidats liste, int nbCandidats) { ListeCandidats liste2 = (ListeCandidats) malloc(nbCandidats*sizeof(Candidat*)); @@ -94,7 +104,52 @@ void afficherCandidat(Candidat* candidat) { candidat->nbCandidatures); } -void afficherCandidatures(Candidat* candidat) { +void afficherCandidatures(ListeCandidatures candidatures, int nbCandidatures) { + if(nbCandidatures == 0) return; + + char decision[LEN_MAX], validation[LEN_MAX]; + Candidature* candidature = candidatures[nbCandidatures-1]; + + switch (candidature->decision) { + case 0: + strcpy(decision, "en cours de traitement"); + break; + case 1: + strcpy(decision, "admis"); + break; + case -1: + strcpy(decision, "refusé"); + break; + case 2: + strcpy(decision, "sur liste d'attente"); + break; + default: + break; + } + + switch (candidature->validation) { + case 0: + strcpy(validation, "n'a pas encore décidé"); + break; + case 1: + strcpy(validation, "refuse la proposition"); + break; + case -1: + strcpy(validation, "accepte"); + break; + default: + break; + } + + printf("Candidature pour le département '%s' à l'IUT '%s' : \n" + " - Décision du département : %s,\n - Décision du candidat : %s\n\n", + candidature->departement, candidature->ville, decision, validation); + + afficherCandidatures(candidatures, nbCandidatures-1); +} + +/* +void afficherCandidatures_(Candidat* candidat) { int nbCandidatures = candidat->nbCandidatures; for(int i=0; idepartement, candidature->ville, decision, validation); } -} + + if(nbCandidatures == 0) + fprintf(stderr, "\e[0;91mErreur : vous n'avez aucune candidature en cours, merci de réessayer plus tard.\n\e[0m"); +}*/ ListeCandidats readCandidats(int* nbCandidats) { FILE *fe = fopen("donnees/candidats.don", "r"); @@ -235,6 +293,8 @@ int saveCandidats(ListeCandidats liste, int nbCandidats) { candidature->decision, candidature->validation); } } + + fclose(fe); return 0; } @@ -303,5 +363,5 @@ void test2(void) { ajouterCandidature(liste[2], candid); afficherListeCandidats(liste, nbCandidats); - afficherCandidatures(liste[2]); + //afficherCandidatures(liste[2]); } \ No newline at end of file