|
|
|
@ -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; i<nbCandidatures; i++)
|
|
|
|
|
if(strcmp(candidat->listeCandidatures[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; i<nbCandidatures; i++) {
|
|
|
|
@ -136,7 +191,10 @@ void afficherCandidatures(Candidat* candidat) {
|
|
|
|
|
" - Décision du département : %s,\n - Décision du candidat : %s\n\n",
|
|
|
|
|
candidature->departement, 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");
|
|
|
|
@ -236,6 +294,8 @@ int saveCandidats(ListeCandidats liste, int nbCandidats) {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
fclose(fe);
|
|
|
|
|
|
|
|
|
|
return 0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -303,5 +363,5 @@ void test2(void) {
|
|
|
|
|
ajouterCandidature(liste[2], candid);
|
|
|
|
|
|
|
|
|
|
afficherListeCandidats(liste, nbCandidats);
|
|
|
|
|
afficherCandidatures(liste[2]);
|
|
|
|
|
//afficherCandidatures(liste[2]);
|
|
|
|
|
}
|