+
+
+
+
+
+
+
+
17#include "../II/deux.c"
+
+
+
+
21 char connexion, poubelle;
+
+
+
24 printf(
"\nÊtes-vous déjà enregistré (O/N) ? : ");
+
25 scanf(
"%*c%c", &connexion);
+
+
+
+
29 if(connexion ==
'O' || connexion ==
'o') {
+
30 printf(
"\nTrès bien, merci de saisir votre ID : ");
+
+
32 if(scanf(
"%d",
id) == 0) {
+
+
34 fprintf(stderr,
"\e[0;91mErreur : cet ID n'existe pas !\n\n\e[0m");
+
+
+
+
38 if(*
id > *nbCandidats) {
+
+
40 fprintf(stderr,
"\e[0;91mErreur : cet ID n'existe pas !\n\n\e[0m");
+
+
+
+
44 printf(
"Merci de confirmer votre nom de famille : ");
+
+
+
47 if(strcasecmp(nom, (*listePointer)[*
id-1]->nom) != 0) {
+
+
49 fprintf(stderr,
"\n\e[0;91mErreur : le nom de famille ne correspond pas !\n\n\e[0m");
+
+
+
52 printf(
"\n\e[1;92mBienvenue %s %s !\n\e[1;91m"
+
53 "N'oubliez pas de revenir au menu principal pour vous déconnecter à la fin de votre session !\n\n\e[0m",
+
54 (*listePointer)[*
id-1]->prenom, (*listePointer)[*
id-1]->nom);
+
+
+
57 if(connexion ==
'n' || connexion ==
'N') {
+
58 printf(
"\nTrès bien, nous allons donc précéder à votre enregistrement.\n\n");
+
+
+
+
62 printf(
"Nom de famille : ");
+
63 scanf(
"%*c%[^\n]", candidat->
nom);
+
+
+
66 scanf(
"%*c%[^\n]", candidat->
prenom);
+
+
68 printf(
"Moyenne de mathématiques : ");
+
+
+
71 fprintf(stderr,
"\e[0;91mLa moyenne entrée est incorrecte\n\e[0mEntrez votre moyenne de mathématiques de l'année de terminale : ");
+
+
+
+
75 printf(
"Moyenne de français : ");
+
+
+
78 fprintf(stderr,
"\e[0;91mLa moyenne entrée est incorrecte\n\e[0mEntrez votre moyenne de français de l'année de terminale : ");
+
+
+
+
82 printf(
"Moyenne de anglais : ");
+
+
+
85 fprintf(stderr,
"\e[0;91mLa moyenne entrée est incorrecte\n\e[0mEntrez votre moyenne de anglais de l'année de terminale : ");
+
+
+
+
89 printf(
"Moyenne de spécialité : ");
+
+
+
92 fprintf(stderr,
"\e[0;91mLa moyenne entrée est incorrecte\n\e[0mEntrez votre moyenne de spécialité de l'année de terminale : ");
+
+
+
+
+
+
+
99 printf(
"\n\n\e[1mParfait ! Votre ID est \e[1;32m%d\e[0m\e[1m, ne le perdez pas, "
+
100 "il vous suivera tout le long de vos candidatures !\n\e[1;91m"
+
101 "N'oubliez pas de revenir au menu principal pour vous déconnecter à la fin de votre session !\n\n\e[0m", candidat->
id);
+
+
103 while ((poubelle = getchar()) !=
'\n' && poubelle != EOF);
+
104 fprintf(stderr,
"\n\e[0;91mLa valeur entrée est incorrecte. Merci de réessayer plus tard.\e[0m\n");
+
+
+
+
+
+
+
111 printf(
"\e[1;35m██████╗ ███████╗ ██████╗██████╗ ██╗ ██╗████████╗███████╗███╗ ███╗███████╗███╗ ██╗████████╗ ██╗██╗ ██╗████████╗\n");
+
112 printf(
"██╔══██╗██╔════╝██╔════╝██╔══██╗██║ ██║╚══██╔══╝██╔════╝████╗ ████║██╔════╝████╗ ██║╚══██╔══╝ ██║██║ ██║╚══██╔══╝\n");
+
113 printf(
"██████╔╝█████╗ ██║ ██████╔╝██║ ██║ ██║ █████╗ ██╔████╔██║█████╗ ██╔██╗ ██║ ██║ ██║██║ ██║ ██║ \n");
+
114 printf(
"██╔══██╗██╔══╝ ██║ ██╔══██╗██║ ██║ ██║ ██╔══╝ ██║╚██╔╝██║██╔══╝ ██║╚██╗██║ ██║ ██║██║ ██║ ██║ \n");
+
115 printf(
"██║ ██║███████╗╚██████╗██║ ██║╚██████╔╝ ██║ ███████╗██║ ╚═╝ ██║███████╗██║ ╚████║ ██║ ██║╚██████╔╝ ██║ \n");
+
116 printf(
"╚═╝ ╚═╝╚══════╝ ╚═════╝╚═╝ ╚═╝ ╚═════╝ ╚═╝ ╚══════╝╚═╝ ╚═╝╚══════╝╚═╝ ╚═══╝ ╚═╝ ╚═╝ ╚═════╝ ╚═╝ \e[0m\n\n");
+
+
+
+
+
+
+
+
+
+
+
+
128 printf(
"\n\nSouhaitez-vous vous connecter/enregistrer maintenant ou entrer en mode invité (O/N) ? : ");
+
129 scanf(
"%*c%c", &connexion);
+
+
131 if(connexion ==
'O' || connexion ==
'o')
+
+
+
134 if(connexion !=
'n' && connexion !=
'N')
+
135 while ((poubelle = getchar()) !=
'\n' && poubelle != EOF);
+
+
+
138 candidat = (*listePointer)[
id-1];
+
139 printf(
"\e[1;94mCandidat: %s %s, ID: %d\e[0m\n", candidat->
prenom, candidat->
nom,
id);
+
+
141 printf(
"\n\e[1;94mInvité\e[0m\n");
+
142 printf(
"-----------------------------------------------------------------------\n");
+
143 printf(
"\t1 - Consulter les ville possédant un IUT\n\n");
+
144 printf(
"\t2 - Voir les disponibilités des départements dans un IUT\n\n");
+
145 printf(
"\t3 - Rechercher un département\n\n");
+
+
+
148 printf(
"\t4 - Candidater\n\n");
+
149 printf(
"\t5 - Suivre sa candidature\n\n");
+
+
151 printf(
"\t4 - S'identifier\n\n");
+
+
153 printf(
"\t9 - Quitter\n");
+
154 printf(
"-----------------------------------------------------------------------\n");
+
+
+
157 if(scanf(
"%d", &choix) == 0)
+
+
+
160 printf(
"-----------------------------------------------------------------------\n");
+
+
+
+
+
+
166 printf(
"Consulter les ville possédant un IUT...\n\n");
+
+
+
+
170 printf(
"Voir les disponibilités des départements dans un IUT...\n\n");
+
171 printf(
"Saisissez le nom de la ville recherchée (tapez q pour annuler) : ");
+
+
173 scanf(
"\n%[^\n]", searchIUT);
+
+
175 if(strcasecmp(searchIUT,
"q") == 0)
+
+
+
+
+
+
181 printf(
"Rechercher un département...\n\n");
+
182 printf(
"Saisissez le nom du département recherché (tapez q pour annuler) : ");
+
+
184 scanf(
"\n%[^\n]", searchDept);
+
+
186 if(strcasecmp(searchDept,
"q") == 0)
+
+
+
+
+
+
+
193 printf(
"Candidater...\n\n");
+
+
+
+
197 fprintf(stderr,
"\e[0;91mErreur : la phase de candidature est arrêtée.\n\e[0m");
+
+
199 printf(
"S'identifier...\n\n");
+
+
+
202 candidat = (*listePointer)[
id-1];
+
+
+
+
+
207 printf(
"Suivre sa candidature...\n\n");
+
+
+
210 fprintf(stderr,
"\e[0;91mErreur : vous devez d'abord vous authentifier, merci de réessayer plus tard.\n\e[0m");
+
+
+
+
+
+
+
217 while ((poubelle = getchar()) !=
'\n' && poubelle != EOF);
+
218 fprintf(stderr,
"\e[0;91mErreur : la valeur entrée est invalide, merci de réessayer.\n\e[0m");
+
+
+
+
+
223 printf(
"\n\e[1;94mCandidat: %s %s, ID: %d\e[0m\n", candidat->
prenom, candidat->
nom,
id);
+
+
225 printf(
"\n\e[1;94mInvité\e[0m\n");
+
226 printf(
"-----------------------------------------------------------------------\n");
+
227 printf(
"\t1 - Consulter les ville possédant un IUT\n\n");
+
228 printf(
"\t2 - Voir les disponibilités des départements dans un IUT\n\n");
+
229 printf(
"\t3 - Rechercher un département\n\n");
+
+
+
232 printf(
"\t4 - Candidater\n\n");
+
233 printf(
"\t5 - Suivre sa candidature\n\n");
+
+
235 printf(
"\t4 - S'identifier\n\n");
+
+
237 printf(
"\t9 - Quitter\n");
+
238 printf(
"-----------------------------------------------------------------------\n");
+
+
240 if(scanf(
"%d", &choix) == 0)
+
+
+
+
244 printf(
"\nRetour au menu principal...\n");
+
+
+
+
+
+
+
+
+
+
254 printf(
"Merci d'entrer le mot de passe responsable : ");
+
255 system(
"stty -echo");
+
256 scanf(
"\n%[^\n]", pass);
+
+
+
259 if(strcmp(pass,
"resp2023") != 0) {
+
260 fprintf(stderr,
"\n\e[1;91mErreur: mot de passe incorrect !\n\n\e[0m");
+
+
+
+
264 printf(
"\n\n\e[1;32mMot de passe correct !\e[0m\n\n");
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
283 printf(
"\e[1;34mResponsable: M. BOUHOURS, IUT: Clermont-Ferrand, Département: Informatique\e[0m\n");
+
284 printf(
"--------------------------------------------------------------------------\n");
+
285 printf(
"\t1 - Lister les candidatures\n\n");
+
286 printf(
"\t2 - Traiter les candidatures\n\n");
+
287 printf(
"\t3 - Voir les candidats admis\n\n");
+
288 printf(
"\t4 - Voir les candidats en file d'attente\n\n");
+
289 printf(
"\t9 - Quitter\n");
+
290 printf(
"--------------------------------------------------------------------------\n");
+
+
292 if(scanf(
"%d", &choix) == 0)
+
+
+
295 printf(
"--------------------------------------------------------------------------\n");
+
+
+
+
+
300 printf(
"Lister les candidatures...\n");
+
+
+
+
304 printf(
"\n\e[1;32mAffichage des candidatures triées par ordre alphabétique pour le département 'Informatique' de l'IUT 'Clermont-Ferrand'\n\n\e[0m");
+
+
+
+
308 printf(
"Traiter les candidatures...\n");
+
+
+
+
+
+
314 printf(
"Voir les candidats admis...\n");
+
+
316 printf(
"\n\e[1;32mAffichage des candidats admis triés par ordre alphabétique pour le département 'Informatique' de l'IUT 'Clermont-Ferrand'\n\n\e[0m");
+
+
+
+
320 printf(
"Voir les candidats en liste d'attente...\n");
+
+
322 printf(
"\n\e[1;32mAffichage des candidats en file d'attente pour le département 'Informatique' de l'IUT 'Clermont-Ferrand'\n\n\e[0m");
+
+
+
+
+
327 while ((poubelle = getchar()) !=
'\n' && poubelle != EOF);
+
328 fprintf(stderr,
"\e[0;91mErreur : la valeur entrée est invalide, merci de réessayer.\n\n\e[0m");
+
+
+
+
332 printf(
"\e[1;34mResponsable: M. BOUHOURS, IUT: Clermont-Ferrand, Département: Informatique\e[0m\n");
+
333 printf(
"--------------------------------------------------------------------------\n");
+
334 printf(
"\t1 - Lister les candidatures\n\n");
+
335 printf(
"\t2 - Traiter les candidatures\n\n");
+
336 printf(
"\t3 - Voir les candidats admis\n\n");
+
337 printf(
"\t4 - Voir les candidats en file d'attente\n\n");
+
338 printf(
"\t9 - Quitter\n");
+
339 printf(
"--------------------------------------------------------------------------\n");
+
+
341 if(scanf(
"%d", &choix) == 0)
+
+
+
+
+
346 printf(
"\nRetour au menu principal...\n");
+
+
+
+
+
+
+
+
+
+
356 printf(
"Merci d'entrer le mot de passe administrateur : ");
+
357 system(
"stty -echo");
+
358 scanf(
"\n%[^\n]", pass);
+
+
+
361 if(strcmp(pass,
"admin2023") != 0) {
+
362 fprintf(stderr,
"\n\e[1;91mErreur: mot de passe incorrect !\n\n\e[0m");
+
+
+
+
366 printf(
"\n\n\e[1;32mMot de passe correct !\e[0m\n\n");
+
+
368 printf(
"--------------------------------------------------------------------\n");
+
369 printf(
"\t1 - Modifier le nombre de place d'une formation\n\n");
+
370 printf(
"\t2 - Créer un nouvel IUT\n\n");
+
371 printf(
"\t3 - Créer un nouveau département\n\n");
+
372 printf(
"\t4 - Supprimer un département\n\n");
+
+
374 printf(
"\t5 - Arrêter la phase de candidature\n\n");
+
+
376 printf(
"\t5 - Lancer la phase de candidature\n\n");
+
377 printf(
"\t6 - Modifier le nom du responsable d'un département\n\n");
+
378 printf(
"\t7 - Liste des candidats\n\n");
+
379 printf(
"\t9 - Quitter\n");
+
380 printf(
"---------------------------------------------------------------------\n");
+
+
382 if(scanf(
"%d", &choix) == 0)
+
+
+
385 printf(
"---------------------------------------------------------------------\n");
+
+
+
+
+
390 printf(
"Modifier le nombre de place d'une formation...\n\n");
+
+
+
+
394 printf(
"Créer un nouvel IUT...\n\n");
+
+
+
+
398 printf(
"Créer un nouveau département...\n\n");
+
+
+
+
402 printf(
"Supprimer un département...\n\n");
+
+
+
+
+
407 printf(
"Arrêter la phase de candidature...\n\n");
+
+
409 printf(
"Lancer la phase de candidature...\n\n");
+
+
+
412 status = (status ? 0 : 1);
+
+
414 printf(
"\n\e[1;32mLa phase de candidature à bien été %s !\e[0m\n\n", (status ?
"lancée" :
"arrêtée"));
+
+
+
417 printf(
"Modifier le nom du responsable d'un département...\n\n");
+
+
+
+
421 printf(
"Liste des candidats...\n");
+
422 printf(
"\n\e[4;37mListe des candidats (triés par ordre alphabétique) :\e[0m\n\n");
+
+
+
+
+
427 while ((poubelle = getchar()) !=
'\n' && poubelle != EOF);
+
428 fprintf(stderr,
"\e[0;91mErreur : la valeur entrée est invalide, merci de réessayer.\n\e[0m");
+
+
+
+
432 printf(
"\n--------------------------------------------------------------------\n");
+
433 printf(
"\t1 - Modifier le nombre de place d'une formation\n\n");
+
434 printf(
"\t2 - Créer un nouvel IUT\n\n");
+
435 printf(
"\t3 - Créer un nouveau département\n\n");
+
436 printf(
"\t4 - Supprimer un département\n\n");
+
+
438 printf(
"\t5 - Arrêter la phase de candidature\n\n");
+
+
440 printf(
"\t5 - Lancer la phase de candidature\n\n");
+
441 printf(
"\t6 - Modifier le nom du responsable d'un département\n\n");
+
442 printf(
"\t7 - Liste des candidats\n\n");
+
443 printf(
"\t9 - Quitter\n");
+
444 printf(
"---------------------------------------------------------------------\n");
+
+
446 if(scanf(
"%d", &choix) == 0)
+
+
+
+
450 printf(
"\nRetour au menu principal...\n");
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
467 printf(
"--------------------------------------------\n");
+
468 printf(
"Vous êtes : \n");
+
469 printf(
"--------------------------------------------\n");
+
470 printf(
"\t1 - Candidat\n\n");
+
471 printf(
"\t2 - Administrateur\n\n");
+
+
473 printf(
"\t3 - Responsable\n\n");
+
474 printf(
"\t9 - Quitter l'application\n");
+
475 printf(
"--------------------------------------------\n");
+
+
477 if(scanf(
"%d", &choix) == 0)
+
+
+
480 printf(
"-------------------------------------------------\n");
+
+
+
+
+
+
486 printf(
"\e[1;34m ██████╗ █████╗ ███╗ ██╗██████╗ ██╗██████╗ █████╗ ████████╗\n");
+
487 printf(
"██╔════╝██╔══██╗████╗ ██║██╔══██╗██║██╔══██╗██╔══██╗╚══██╔══╝\n");
+
488 printf(
"██║ ███████║██╔██╗ ██║██║ ██║██║██║ ██║███████║ ██║ \n");
+
489 printf(
"██║ ██╔══██║██║╚██╗██║██║ ██║██║██║ ██║██╔══██║ ██║ \n");
+
490 printf(
"╚██████╗██║ ██║██║ ╚████║██████╔╝██║██████╔╝██║ ██║ ██║ \n");
+
491 printf(
" ╚═════╝╚═╝ ╚═╝╚═╝ ╚═══╝╚═════╝ ╚═╝╚═════╝ ╚═╝ ╚═╝ ╚═╝ \e[0m\n\n");
+
+
+
+
+
+
+
498 printf(
"\e[1;34m █████╗ ██████╗ ███╗ ███╗██╗███╗ ██╗██╗███████╗████████╗██████╗ █████╗ ████████╗███████╗██╗ ██╗██████╗ \n");
+
499 printf(
"██╔══██╗██╔══██╗████╗ ████║██║████╗ ██║██║██╔════╝╚══██╔══╝██╔══██╗██╔══██╗╚══██╔══╝██╔════╝██║ ██║██╔══██╗\n");
+
500 printf(
"███████║██║ ██║██╔████╔██║██║██╔██╗ ██║██║███████╗ ██║ ██████╔╝███████║ ██║ █████╗ ██║ ██║██████╔╝\n");
+
501 printf(
"██╔══██║██║ ██║██║╚██╔╝██║██║██║╚██╗██║██║╚════██║ ██║ ██╔══██╗██╔══██║ ██║ ██╔══╝ ██║ ██║██╔══██╗\n");
+
502 printf(
"██║ ██║██████╔╝██║ ╚═╝ ██║██║██║ ╚████║██║███████║ ██║ ██║ ██║██║ ██║ ██║ ███████╗╚██████╔╝██║ ██║\n");
+
503 printf(
"╚═╝ ╚═╝╚═════╝ ╚═╝ ╚═╝╚═╝╚═╝ ╚═══╝╚═╝╚══════╝ ╚═╝ ╚═╝ ╚═╝╚═╝ ╚═╝ ╚═╝ ╚══════╝ ╚═════╝ ╚═╝ ╚═╝\e[0m\n\n");
+
+
505 menuAdmin(&tiut, liste, &nbVilles, nbCandidats);
+
+
+
+
+
+
+
512 printf(
"\e[1;34m██████╗ ███████╗███████╗██████╗ ██████╗ ███╗ ██╗███████╗ █████╗ ██████╗ ██╗ ███████╗\n");
+
513 printf(
"██╔══██╗██╔════╝██╔════╝██╔══██╗██╔═══██╗████╗ ██║██╔════╝██╔══██╗██╔══██╗██║ ██╔════╝\n");
+
514 printf(
"██████╔╝█████╗ ███████╗██████╔╝██║ ██║██╔██╗ ██║███████╗███████║██████╔╝██║ █████╗ \n");
+
515 printf(
"██╔══██╗██╔══╝ ╚════██║██╔═══╝ ██║ ██║██║╚██╗██║╚════██║██╔══██║██╔══██╗██║ ██╔══╝ \n");
+
516 printf(
"██║ ██║███████╗███████║██║ ╚██████╔╝██║ ╚████║███████║██║ ██║██████╔╝███████╗███████╗\n");
+
517 printf(
"╚═╝ ╚═╝╚══════╝╚══════╝╚═╝ ╚═════╝ ╚═╝ ╚═══╝╚══════╝╚═╝ ╚═╝╚═════╝ ╚══════╝╚══════╝\e[0m\n\n");
+
+
+
+
+
522 fprintf(stderr,
"\e[0;91mErreur : les recrutements sont en cours, impossible d'accéder au menu responsable. Merci de réessayer plus tard.\n\n\e[0m");
+
+
+
+
526 while ((poubelle = getchar()) !=
'\n' && poubelle != EOF);
+
527 fprintf(stderr,
"\e[0;91mErreur : la valeur entrée est invalide, merci de réessayer.\n\n\e[0m");
+
+
+
+
531 printf(
"--------------------------------------------\n");
+
532 printf(
"Vous êtes : \n");
+
533 printf(
"--------------------------------------------\n");
+
534 printf(
"\t1 - Candidat\n\n");
+
535 printf(
"\t2 - Administrateur\n\n");
+
+
537 printf(
"\t3 - Responsable\n\n");
+
538 printf(
"\t9 - Quitter l'application\n");
+
539 printf(
"--------------------------------------------\n");
+
+
541 if(scanf(
"%d", &choix) == 0)
+
+
+
+
545 printf(
"\nSauvegarde des IUT...\n");
+
+
547 printf(
"Sauvegarde des Candidats...\n");
+
+
549 printf(
"\nFermeture de l'application...\n");
+
+
+
+
+
+
+
+
+
+
+
+
+
562 printf(
"Entrez une ville (tapez q pour annuler) : ");
+
563 scanf(
"\n%[^\n]", searchIUT);
+
+
565 if(strcasecmp(searchIUT,
"q") == 0)
+
+
+
+
+
+
571 printf(
"Quel département souhaitez-vous modifier ? : ");
+
572 scanf(
"\n%[^\n]", searchDept);
+
573 printf(
"Entrez le nouveau nombre de places pour le département '%s' : ", searchDept);
+
574 scanf(
"%d", &nbPlaces);
+
+
+
+
+
+
+
+
+
583 printf(
"Entrez le nom de la ville (tapez q pour annuler) : ");
+
584 scanf(
"\n%[^\n]", nameIUT);
+
+
586 if(strcasecmp(nameIUT,
"q") == 0)
+
+
+
+
590 strcpy(ville->
ville, nameIUT);
+
+
+
+
594 printf(
"\n\e[1;32mL'IUT '%s' a bien été créé !\e[0m\n\n", nameIUT);
+
+
+
+
+
+
+
+
+
+
+
605 printf(
"Entrez la ville dans laquelle vous souhaitez ajouter un département (tapez q pour annuler) : ");
+
606 scanf(
"\n%[^\n]", searchIUT);
+
+
608 if(strcasecmp(searchIUT,
"q") == 0)
+
+
+
+
+
+
614 fprintf(stderr,
"\n\e[1;91mErreur: la ville '%s' n'est pas dans la liste des IUT.\e[0m\n\n", searchIUT);
+
+
+
+
618 printf(
"Entrez le nom du nouveau département : ");
+
619 scanf(
"%*c%[^\n]", addDept);
+
+
621 ldept = ville->
ldept;
+
+
+
+
625 fprintf(stderr,
"\n\e[1;91mErreur: le département '%s' existe déjà dans l'IUT '%s'.\e[0m\n\n", addDept, searchIUT);
+
+
+
+
629 while(ldept->
suiv != NULL) {
+
+
+
+
+
+
635 fprintf(stderr,
"\n\e[1;91mErreur: le département '%s' existe déjà dans l'IUT '%s'.\e[0m\n\n", addDept, searchIUT);
+
+
+
+
+
+
641 printf(
"Entrez le nombre de place disponibles en 1ère année : ");
+
+
643 printf(
"Entrez le nom du responsable de ce département : ");
+
644 scanf(
"%*c%[^\n]", responsable);
+
+
+
+
+
649 printf(
"\n\e[1;32mLe département '%s' a bien été ajouté à l'IUT '%s' !\e[0m\n\n", addDept, searchIUT);
+
+
+
+
+
+
+
+
+
+
+
660 printf(
"Entrez la ville dans laquelle vous souhaitez supprimer un département (tapez q pour annuler) : ");
+
661 scanf(
"\n%[^\n]", searchIUT);
+
+
663 if(strcasecmp(searchIUT,
"q") == 0)
+
+
+
+
+
+
669 fprintf(stderr,
"\e[1;91mErreur: la ville '%s' n'est pas dans la liste des IUT.\e[0m\n\n", searchIUT);
+
+
+
+
+
+
675 printf(
"Quel département souhaitez-vous supprimer ? : ");
+
676 scanf(
"%*c%[^\n]", searchDept);
+
+
+
+
+
681 fprintf(stderr,
"\e[1;91mErreur: vous ne pouvez pas supprimer de département pendant le recrutement/le traitement des candidatures.\e[0m\n\n");
+
+
+
+
+
+
+
+
689 printf(
"Dans quel IUT souhaitez-vous faire une modification ? (tapez q pour annuler) : ");
+
690 scanf(
"\n%[^\n]", searchIUT);
+
+
692 if(strcasecmp(searchIUT,
"q") == 0)
+
+
+
+
+
+
698 printf(
"Quel département souhaitez-vous modifier ? : ");
+
699 scanf(
"\n%[^\n]", searchDept);
+
+
701 printf(
"Quel est le nom du nouveau responsable : ");
+
702 scanf(
"\n%[^\n]", nom);
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
724 if(tiutNew == NULL) {
+
+
+
+
+
729 *tiutPointer = tiutNew;
+
+
731 (*tiutPointer)[*nbVilles] = ville;
+
+
+
+
+
+
737 for(i=0; i<nbVilles; i++)
+
738 if(strcasecmp(tiut[i]->ville, searchIUT) == 0)
+
+
+
+
+
+
+
745 printf(
"\e[4;37mListe des villes ayant un IUT disponibles :\e[0m\n\n");
+
+
+
748 for(i=0; i<nbVilles; i++)
+
749 printf(
" - %s\n", tiut[i]->ville);
+
+
+
+
+
+
+
+
+
+
+
+
+
+
763 fprintf(stderr,
"\n\e[1;91mErreur: la ville '%s' n'est pas dans la liste des IUT.\e[0m\n\n", searchIUT);
+
+
+
+
767 ldept = tiut[i]->
ldept;
+
+
+
770 fprintf(stderr,
"\n\e[1;91mErreur: la ville '%s' ne contient aucun département\e[0m\n\n", tiut[i]->ville);
+
+
772 printf(
"\n\e[4;37mDépartements disponibles dans la ville '%s' :\e[0m\n\n", tiut[i]->ville);
+
+
774 while (ldept != NULL) {
+
775 printf(
" - %s, \e[0;32m%d places disponibles\e[0m, Reponsable : %s\n", ldept->
departement, ldept->
nbP, ldept->
responsable);
+
+
+
+
+
+
+
+
+
+
+
+
+
+
789 printf(
"\n\e[4;37mListe des IUT contenant le département '%s':\e[0m\n\n", searchDept);
+
+
791 for(i=0; i<nbVilles; i++) {
+
792 ldept = tiut[i]->
ldept;
+
+
+
795 if(strcasecmp(ldept->
departement, searchDept) == 0) {
+
796 printf(
" - %s\n", tiut[i]->ville);
+
+
+
+
+
801 while(search->
suiv != NULL) {
+
802 search = search->
suiv;
+
803 if(strcasecmp(search->
departement, searchDept) == 0) {
+
804 printf(
" - %s\n", tiut[i]->ville);
+
+
+
+
+
+
+
+
+
813 fprintf(stderr,
" \e[1;91mAucun IUT ne contient ce département !\e[0m\n");
+
+
+
+
+
+
+
+
821 if(newDept == NULL) {
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
840 while(search->
suiv != NULL)
+
841 search = search->
suiv;
+
+
+
+
+
+
+
+
+
+
+
+
853 if(strcasecmp(ldept->
departement, searchDept) == 0) {
+
+
+
+
+
+
859 while(search->
suiv != NULL && strcasecmp(search->
departement, searchDept) != 0) {
+
+
861 search = search->
suiv;
+
+
+
864 if(strcasecmp(search->
departement, searchDept) == 0) {
+
+
+
+
+
+
+
871 printf(
"\n\e[1;32mLe département '%s' a bien été supprimé !\e[0m\n\n", searchDept);
+
+
873 fprintf(stderr,
"\n\e[1;91mErreur: la département '%s' n'existe pas.\e[0m\n\n", searchDept);
+
+
+
+
+
+
+
+
+
+
883 fprintf(stderr,
"\n\e[1;91mErreur: la ville '%s' n'est pas dans la liste des IUT.\e[0m\n\n", searchIUT);
+
+
+
+
887 ldept = tiut[i]->
ldept;
+
+
+
890 if(strcasecmp(ldept->
departement, searchDept) == 0) {
+
891 printf(
"\n\e[1;32mLe nombre de places de la formation '%s' à l'IUT '%s' est passé de %d à %d\e[0m\n\n", searchDept, searchIUT, ldept->
nbP, nb);
+
+
+
+
+
+
897 while(search->
suiv != NULL) {
+
898 search = search->
suiv;
+
899 if(strcasecmp(search->
departement, searchDept) == 0) {
+
900 printf(
"\n\e[1;32mLe nombre de places de la formation '%s' à l'IUT '%s' est passé de %d à %d\e[0m\n\n", searchDept, searchIUT, search->
nbP, nb);
+
+
+
+
+
+
+
+
+
909 fprintf(stderr,
"\n\e[1;91mErreur: le département '%s' n'a pas été trouvé dans l'IUT '%s'\e[0m\n\n", searchDept, searchIUT);
+
+
+
+
+
+
+
+
917 fprintf(stderr,
"\n\e[1;91mErreur: la ville '%s' n'est pas dans la liste des IUT.\e[0m\n\n", searchIUT);
+
+
+
+
921 ldept = tiut[i]->
ldept;
+
+
+
924 if(strcasecmp(ldept->
departement, searchDept) == 0) {
+
+
926 printf(
"\n\e[1;32mLe responsable de la formation '%s' à l'IUT '%s' est désormais '%s'.\e[0m\n\n", searchDept, searchIUT, ldept->
responsable);
+
+
+
+
+
931 while(search->
suiv != NULL) {
+
932 search = search->
suiv;
+
933 if(strcasecmp(search->
departement, searchDept) == 0) {
+
+
935 printf(
"\n\e[1;32mLe responsable de la formation '%s' à l'IUT '%s' est désormais '%s'.\e[0m\n\n", searchDept, searchIUT, search->
responsable);
+
+
+
+
+
+
+
+
943 fprintf(stderr,
"\n\e[1;91mErreur: le département '%s' n'a pas été trouvé dans l'IUT '%s'.\e[0m\n\n", searchDept, searchIUT);
+
+
+
+
947 int i, longueurNomVille, nbDepartements, lenDepartement, lenNomResponsable;
+
+
+
+
951 FILE *fe = fopen(
"donnees/villes.bin",
"wb");
+
+
+
954 fprintf(stderr,
"\e[1;91mErreur: impossible d'écrire dans le fichier villes.don\e[0m");
+
+
+
+
958 fwrite(&nbVilles,
sizeof(
int), 1, fe);
+
+
960 for (i=0; i<nbVilles; i++) {
+
+
+
963 longueurNomVille = strlen(ville.
ville)+1;
+
964 fwrite(&longueurNomVille,
sizeof(
int), 1, fe);
+
965 fwrite(ville.
ville,
sizeof(
char), longueurNomVille, fe);
+
+
+
968 maillon = ville.
ldept;
+
969 while (maillon != NULL) {
+
+
971 maillon = maillon->
suiv;
+
+
973 fwrite(&nbDepartements,
sizeof(
int), 1, fe);
+
+
975 maillon = ville.
ldept;
+
976 while (maillon != NULL) {
+
+
978 fwrite(&lenDepartement,
sizeof(
int), 1, fe);
+
979 fwrite(maillon->
departement,
sizeof(
char), lenDepartement, fe);
+
+
981 fwrite(&maillon->
nbP,
sizeof(
int), 1, fe);
+
+
983 lenNomResponsable = strlen(maillon->
responsable)+1;
+
984 fwrite(&lenNomResponsable,
sizeof(
int), 1, fe);
+
985 fwrite(maillon->
responsable,
sizeof(
char), lenNomResponsable, fe);
+
+
+
+
989 maillon = maillon->
suiv;
+
+
+
+
+
+
+
+
+
+
+
1000 int i, lenNomVille, nbDepartements, lenDepartement, lenNomResponsable;
+
+
1002 FILE *fe = fopen(
"donnees/villes.bin",
"rb");
+
+
+
1005 fprintf(stderr,
"\e[1;91mErreur: impossible de lire le fichier villes.bin\e[0m");
+
+
+
+
1009 fread(nbVilles,
sizeof(
int), 1, fe);
+
+
+
+
+
+
+
+
+
1018 for (i=0; i<*nbVilles; i++) {
+
+
+
+
+
+
+
+
1026 fread(&lenNomVille,
sizeof(
int), 1, fe);
+
1027 fread(ville->
ville,
sizeof(
char), lenNomVille, fe);
+
+
1029 fread(&nbDepartements,
sizeof(
int), 1, fe);
+
+
+
1032 maillonPrecedent = NULL;
+
+
+
1035 for (j=0; j<nbDepartements; j++) {
+
+
+
1038 if(maillon == NULL) {
+
+
+
+
+
1043 if(maillonPrecedent != NULL)
+
1044 maillonPrecedent->
suiv = maillon;
+
+
1046 fread(&lenDepartement,
sizeof(
int), 1, fe);
+
1047 fread(maillon->
departement,
sizeof(
char), lenDepartement, fe);
+
+
1049 fread(&maillon->
nbP,
sizeof(
int), 1, fe);
+
+
1051 fread(&lenNomResponsable,
sizeof(
int), 1, fe);
+
1052 fread(maillon->
responsable,
sizeof(
char), lenNomResponsable, fe);
+
+
+
+
1056 if(maillonPrecedent == NULL)
+
1057 ville->
ldept = maillon;
+
+
1059 maillonPrecedent = maillon;
+
+
+
+
+
+
+
+
+
+
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 ajouterCandidat(ListeCandidats *listePointer, int *nbCandidats, Candidat *candidat)
Ajoute l'adresse du candidat dans le tableau de pointeur "liste".
+
Candidat * creerCandidat(void)
Alloue de la mémoire de la taille d'une structure Candidat avec un malloc.
+
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.
+
FileAttente * lireCandidatsAttente(char *dept, char *ville)
+
void menuCandidat_suivreCandidature(ListeCandidats liste, int nbCandidats, Candidat *candidat)
Permet de voir les candidatures et les décisions prises.
+
void menuResponsable_traiterCandidatures(VilleIUT **tiut, int nbVilles, ListeCandidats liste, int nbCandidats)
+
void afficherCandidatsAttente(FileAttente *file)
+
void afficherCandidatsAdmis(char *dept, char *ville)
+
void ecrireCandidatsAttente(char *dept, char *ville, FileAttente *file)
+
+
+
+
+
+
+
+
+
+
+
char departement[LEN_MAX]
+
char responsable[LEN_MAX]
+
struct MaillonDept * suiv
+
+
+
+
+
+
+
void afficherCandidaturesByDept(ListeCandidats liste, int nbCandidats, char *searchIUT, char *searchDept)
Affiche les candidatures pour un seul département dans un IUT.
+
void calculerNoteGlobale(ListeCandidats liste, int nbCandidats)
Calcul la note globale en fonction des coéfficients prédéfinis.
+
void modifierNomResponsable(VilleIUT **tiut, int nbVilles, char *searchIUT, char *searchDept, char *nom)
Modifie le nom du responsable d'une formation.
+
ListeDept creerListeDepartement(void)
Créer une liste vide.
+
void menuAdmin_creerIUT(VilleIUT ***tiutPointer, int *nbVilles)
BONUS: Fonction permettant à l'utilisateur administrateur de créer un nouvel IUT.
+
ListeDept supprimerDepartement(ListeDept ldept, char *searchDept)
Supprime le département dans une ville choisie par l'utilisateur.
+
int rechercherVille(VilleIUT **tiut, int nbVilles, char *searchIUT)
Fonction de recherche pour trouver la position de la ville recherchée dans le tableau tiut.
+
void identificationCandidat(int *id, ListeCandidats *listePointer, int *nbCandidats)
Propose à l'utilisateur de se connecter avec son id ou de créer son compte étudiant....
+
void menuResponsable(VilleIUT **tiut, ListeCandidats liste, int nbVilles, int nbCandidats)
Affiche le menu des responsables et permet l'appel des fonctions suivant le choix de l'utilisateur.
+
void menuAdmin_modifierPlaces(VilleIUT **tiut, int nbVilles)
Fonction permettant à l'administrateur de changer le nombre de places disponibles dans une formation.
+
MaillonDept * creerDepartement(char *departement, int nbP, char *responsable)
Alloue de la memoire de la taille d'une structure MaillonDept avec un malloc.
+
void menuAdmin(VilleIUT ***tiutPointer, ListeCandidats liste, int *nbVilles, int nbCandidats)
Affiche le menu des administrateurs et permet l'appel des fonctions suivant le choix de l'utilisateur...
+
void saveVilles(VilleIUT *tiut[], int nbVilles)
Enregistre les modifications apportées aux structures de données dans le fichier binaire ville....
+
void modifierNbPlaces(VilleIUT **tiut, int nbVilles, char *searchIUT, char *searchDept, int nb)
Modifie le nombre de place d'une formation.
+
void titreMenuPrincipal(void)
Affiche le titre "RECRUTEMENT IUT".
+
void ajouterVille(VilleIUT ***tiutPointer, VilleIUT *ville, int *nbVilles)
BONUS: ajoute l'adresse d'une ville dans le tableau tiut contenue à l'adresse tiutPointer....
+
VilleIUT * creerVille(void)
BONUS: Alloue de la memoire de la taille d'une structure VilleIUT avec un malloc.
+
ListeDept ajouterDepartement(ListeDept ldept, MaillonDept *dept)
Ajoute un département dans la liste chaînée des départements d'une ville.
+
void afficherDepartement(VilleIUT **tiut, int nbVilles, char *searchDept)
Affiche la liste des IUT comprenant un département recherché par l'utilisateur.
+
void menuAdmin_supprimerDepartement(VilleIUT **tiut, int nbVilles)
Fonction permettant à l'utilisateur administrateur de supprimer un département existant.
+
void menuPrincipal()
Affiche le menu principal et permet l'appel des menus candidats/administrateurs/responsables suivant ...
+
void menuAdmin_creerDepartement(VilleIUT **tiut, int nbVilles)
Fonction permettant à l'utilisateur administrateur de créer un nouveau département.
+
int afficherListeDepartement(VilleIUT **tiut, int nbVilles, char *searchIUT)
Affiche la liste des différents départements disponible dans une ville recherchée et le nombre de pla...
+
VilleIUT ** readVilles(int *nbVilles)
Lit le fichier binaire ville.bin et retourne le tableau tiut avec les structures de données et les do...
+
void menuAdmin_modifierResponsable(VilleIUT **tiut, int nbVilles)
Fonction permettant à l'utilisateur administrateur de modifier le nom d'un responsable d'un départeme...
+
void menuCandidat(VilleIUT **tiut, ListeCandidats *listePointer, int nbVilles, int *nbCandidats)
Affiche le menu des candidats et permet l'appel des fonctions suivant le choix de l'utilisateur.
+
void afficherListeVilles(VilleIUT **tiut, int nbVilles)
Affiche la liste des villes ayant un IUT.
+
+