15#include "../III/trois.c"
21 if(candidat == NULL) {
45 if(listeNew == NULL) {
50 *listePointer = listeNew;
53 candidat->
id = *nbCandidats;
54 (*listePointer)[*nbCandidats-1] = candidat;
69 printf(
"Entrez la ville dans laquelle vous souhaitez candidater : ");
70 scanf(
"%s", searchIUT);
72 if(strcasecmp(searchIUT,
"q") == 0)
78 fprintf(stderr,
"\e[1;91mErreur: la ville '%s' n'est pas dans la liste des IUT.\e[0m\n\n", searchIUT);
82 printf(
"Entrez le département dans lequel vous souhaitez candidater : ");
83 scanf(
"%*c%[^\n]", searchDept);
85 liste = tiut[i]->
ldept;
90 while(liste->
suiv != NULL) {
97 fprintf(stderr,
"\e[1;91mErreur: le département '%s' n'existe pas dans l'IUT '%s'.\e[0m\n\n", searchDept, searchIUT);
101 strcpy(candid->
ville, searchIUT);
105 fprintf(stderr,
"\n\e[1;91mErreur: vous avez déjà candidaté pour le département '%s' dans l'IUT '%s'.\e[0m\n\n", searchDept, searchIUT);
111 printf(
"\n\e[1;32mVotre candidature au département '%s' à l'IUT '%s' a bien été prise en compte !\e[0m\n\n", searchDept, searchIUT);
117 for(i=0; i<nbCandidatures; i++)
134 for (
int i=0; i<nbCandidats; i++) {
135 memcpy(&liste2[i], &liste[i],
sizeof(
Candidat*));
140 for(
int i=0; i<nbCandidats; i++) {
141 candidat = liste2[i];
150 printf(
"Candidat n°%d, '%s %s' :"
151 "\n - Moyenne en mathématiques : %.2f\n - Moyenne en français : %.2f"
152 "\n - Moyenne en anglais : %.2f\n - Moyenne en spécialité : %.2f"
153 "\n - Nombre de candidatures : %d\n\n",
161 if(nbCandidatures == 0)
return;
164 Candidature* candidature = candidatures[nbCandidatures-1];
168 strcpy(decision,
"en cours de traitement");
171 strcpy(decision,
"admis");
174 strcpy(decision,
"refusé");
177 strcpy(decision,
"sur liste d'attente");
185 strcpy(validation,
"n'a pas encore décidé");
188 strcpy(validation,
"accepte la proposition");
191 strcpy(validation,
"refuse la proposition");
198 printf(
"\n\e[4;37m\e[3mCandidature pour le département '%s' à l'IUT '%s' :\n\e[0m"
199 "\e[3m - Décision du département : %s,\n - Décision du candidat : %s\e[0m\n\n",
203 printf(
"\n\e[4;37m\e[1mCandidature pour le département '%s' à l'IUT '%s' :\n\e[0m"
204 "\e[1m - Décision du département : %s,\n - Décision du candidat : %s\n\n\e[0m",
207 printf(
"\n\e[4;37mCandidature pour le département '%s' à l'IUT '%s' :\n\e[0m"
208 " - Décision du département : %s,\n - Décision du candidat : %s\n\n\e[0m",
270 FILE *fe = fopen(
"donnees/candidats.don",
"r");
273 fprintf(stderr,
"Erreur: impossible de lire le fichier candidats.don");
277 fscanf(fe,
"%d", nbCandidats);
286 for(i=0; i<*nbCandidats; i++) {
288 fscanf(fe,
"%d\n%[^\n]\n%[^\n]\n%f\n%f\n%f\n%f\n%d",
296 if(listeCandidatures == NULL) {
306 if(candidature == NULL) {
311 fscanf(fe,
"\n%[^\n]\n%[^\n]\n%d%d",
327 char nomComplet1[60], nomComplet2[60];
328 strcpy(nomComplet1, c1->
nom);
329 strcat(nomComplet1, c1->
prenom);
331 strcpy(nomComplet2, c2->
nom);
332 strcat(nomComplet2, c2->
prenom);
334 return strcmp(nomComplet1, nomComplet2);
343 FILE *fe = fopen(
"donnees/candidats.don",
"w");
346 fprintf(stderr,
"Erreur: impossible de lire le fichier candidats.don");
350 fprintf(fe,
"%d", nbCandidats);
352 for(i=0; i<nbCandidats; i++) {
355 fprintf(fe,
"\n%d\n%s\n%s\n%f\t%f\t%f\t%f\n%d",
364 candidature = listeCandidatures[j];
365 fprintf(fe,
"\n%s\n%s\n%d\n%d",
379 FILE *fe = fopen(
"donnees/status.don",
"r");
386 fscanf(fe,
"%d", &status);
394 FILE *fe = fopen(
"donnees/status.don",
"w");
401 fprintf(fe,
"%d", status);
int saveCandidats(ListeCandidats liste, int nbCandidats)
Enregistre la liste des candidats dans le fichier texte candidats.don.
void menuCandidat_candidater(VilleIUT **tiut, int nbVilles, Candidat *candidat)
Permet au candidat de déposer une candidature.
void saveStatus(int status)
Enregistre sur le fichier texte status.don le status actuel de la phase de candidature (0 si la phase...
void afficherCandidatures(ListeCandidatures candidatures, int nbCandidatures)
Affiche récursivement toutes les candidatures d'un seul candidat.
void ajouterCandidat(ListeCandidats *listePointer, int *nbCandidats, Candidat *candidat)
Ajoute l'adresse du candidat dans le tableau de pointeur "liste".
void ajouterCandidature(Candidat *candidat, Candidature *candidature)
Ajoute une candidature dans la liste des candidatures associées au candidat correspondant dans les pa...
int checkCandidature(Candidat *candidat, Candidature candid)
Verifie si la candidature à ajouter n'existe pas déjà
void afficherCandidat(Candidat *candidat)
Affiche un candidat précis.
Candidature * creerCandidature(void)
Alloue de la mémoire de la taille d'une structure Candidature avec un malloc avec les valeurs par déf...
Candidat * creerCandidat(void)
Alloue de la mémoire de la taille d'une structure Candidat avec un malloc.
int compareCandidats(const void *p1, const void *p2)
Compare deux candidats suivant l'ordre alphabetique.
ListeCandidats readCandidats(int *nbCandidats)
Lit la liste des candidats dans le fichier texte candidats.don puis les met dans la structure ListeCa...
int readStatus(void)
Lis le status actuel de la phase de candidature (0 si la phase est arrêtée et 1 si elle est lancée)
void afficherListeCandidats(ListeCandidats liste, int nbCandidats)
Affiche tous les candidats triés par nom.
ListeCandidatures listeCandidatures
char departement[LEN_MAX]
char departement[LEN_MAX]
struct MaillonDept * suiv
Candidature ** ListeCandidatures
Candidat ** ListeCandidats
int rechercherVille(VilleIUT **tiut, int nbVilles, char *searchIUT)
Fonction de recherche pour trouver la position de la ville recherchée dans le tableau tiut.