Ajout appels fonctions dans menu + passage paramètre de la liste d'IUT

master
Alix JEUDI--LEMOINE 2 years ago
parent 7a6ee748fa
commit 7e7d860db2

@ -11,6 +11,7 @@
#include <stdlib.h>
#include <string.h>
#include "un.h"
#include "../II/deux.c"
void titreMenuPrincipal(void) {
system("clear");
@ -22,10 +23,9 @@ void titreMenuPrincipal(void) {
printf("╚═╝ ╚═╝╚══════╝ ╚═════╝╚═╝ ╚═╝ ╚═════╝ ╚═╝ ╚══════╝╚═╝ ╚═╝╚══════╝╚═╝ ╚═══╝ ╚═╝ ╚═╝ ╚═════╝ ╚═╝ \n\n");
}
void menuCandidat(void) {
void menuCandidat(VilleIUT** tiut, int* nbVilles) {
int choix; // Contient le choix de l'utilisateur dans le menu
int nbVilles = 0;
VilleIUT** tiut = (VilleIUT**) malloc(sizeof(VilleIUT*));
printf("\n-----------------------------------------------------------------------\n");
printf("\t1 - Consulter les ville possédant un IUT\n\n");
@ -47,15 +47,25 @@ void menuCandidat(void) {
case 1:
//system("clear");
printf("Consulter les ville possédant un IUT...\n\n");
afficherListeVilles(tiut, nbVilles);
afficherListeVilles(tiut, *nbVilles);
break;
case 2:
printf("Voir les disponibilités des départements dans un IUT...\n\n");
// TODO
printf("Saisissez le nom de la ville recherchée : ");
char searchIUT[LEN_MAX];
scanf("%s", searchIUT);
afficherListeDepartement(tiut, *nbVilles, searchIUT);
break;
case 3:
printf("Rechercher un département...\n\n");
// TODO
printf("Saisissez le nom du département recherché : ");
char searchDept[LEN_MAX];
scanf("%*c%[^\n]", searchDept);
afficherDepartement(tiut, *nbVilles, searchDept);
break;
case 4:
printf("Candidater...\n\n");
@ -84,7 +94,7 @@ void menuCandidat(void) {
printf("\nRetour au menu principal...\n");
}
void menuResponsable(void) {
void menuResponsable(VilleIUT** tiut, int* nbVilles) {
int choix;
printf("\n--------------------------------------------------------------------\n");
@ -124,7 +134,7 @@ void menuResponsable(void) {
printf("\nRetour au menu principal...\n");
}
void menuAdmin(void) {
void menuAdmin(VilleIUT** tiut, int* nbVilles) {
int choix; // Contient le choix de l'utilisateur dans le menu
printf("\n--------------------------------------------------------------------\n");
@ -145,15 +155,73 @@ void menuAdmin(void) {
switch (choix) {
case 1:
printf("Modifier le nombre de place d'une formation...\n\n");
// TODO
int nbPlaces;
char searchIUT[LEN_MAX], searchDept[LEN_MAX];
printf("Entrez une ville : ");
scanf("%s", searchIUT);
printf("Entrez un département : ");
scanf("%s", searchDept);
printf("Entrez le nouveau nombre de places pour le département '%s' : ", searchDept);
scanf("%d", &nbPlaces);
modifierNbPlaces(tiut, *nbVilles, searchIUT, searchDept, nbPlaces);
break;
case 2:
printf("Créer un nouveau département...\n\n");
// TODO
char searchIUT2[LEN_MAX];
printf("Entrez la ville dans laquelle vous souhaitez ajouter un département : ");
scanf("%s", searchIUT2);
VilleIUT* ville = NULL;
int i;
for(i=0; i<*nbVilles; i++)
if(strcmp(tiut[i]->ville, searchIUT2) == 0)
ville = tiut[i];
if(ville == NULL)
fprintf(stderr, "\e[1;91mErreur: la ville '%s' n'est pas dans la liste des IUT.\e[0m\n\n", searchIUT2);
else {
int nbP;
char addDept[LEN_MAX], responsable[LEN_MAX];
printf("Entrez le nom du nouveau département : ");
scanf("%*c%[^\n]", addDept);
printf("Entrez le nombre de place disponibles en 1ère année : ");
scanf("%d", &nbP);
printf("Entrez le nom du responsable de ce département : ");
scanf("%*c%[^\n]", responsable);
MaillonDept* dept = creerDepartement(addDept, nbP, responsable);
ville->ldept = ajouterDepartement(ville->ldept, dept);
printf("\nLe département '%s' a bien été ajouté à l'IUT '%s' !\n\n", addDept, searchIUT2);
}
break;
case 3:
printf("Supprimer un département...\n\n");
// TODO
char searchIUT3[LEN_MAX];
printf("Entrez la ville dans laquelle vous souhaitez supprimer un département : ");
scanf("%s", searchIUT3);
VilleIUT* ville3 = NULL;
int i3;
for(i3=0; i<*nbVilles; i++)
if(strcmp(tiut[i3]->ville, searchIUT3) == 0)
ville3 = tiut[i3];
if(ville3 == NULL)
fprintf(stderr, "\e[1;91mErreur: la ville '%s' n'est pas dans la liste des IUT.\e[0m\n\n", searchIUT3);
else {
char searchDept3[LEN_MAX];
printf("Entrez le nom du département à supprimer : ");
scanf("%*c%[^\n]", searchDept3);
ville3->ldept = supprimerDepartement(ville3->ldept, searchDept3);
printf("\nLe département '%s' a bien été supprimé de l'IUT '%s' !\n\n", searchDept3, searchIUT3);
}
break;
case 4:
printf("Lancer/arrêter la phase de candidature...\n\n");
@ -161,22 +229,30 @@ void menuAdmin(void) {
break;
case 5:
printf("Modifier le nom du responsable d'un département...\n\n");
void modifierNomResponsable(VilleIUT** tiut, int nbVilles);
char searchIUT5[LEN_MAX], searchDept5[LEN_MAX], nom[LEN_MAX];
printf("Entrez une ville : ");
scanf("%s", searchIUT5);
printf("Entrez un département : ");
scanf("%s", searchDept5);
printf("Entrez le nom du nouveau responsable : ");
scanf("%*c%[^\n]", nom);
modifierNomResponsable(tiut, *nbVilles, searchIUT5, searchDept5, nom);
break;
default:
fprintf(stderr, "\e[0;91mErreur : la valeur entrée est invalide, merci de réessayer.\n\n\e[0m");
break;
}
printf("\n----------------------------------------------------------------\n");
printf("\t1 - Modifier le nombre de place d'une formation \n\n");
printf("\n--------------------------------------------------------------------\n");
printf("\t1 - Modifier le nombre de place d'une formation\n\n");
printf("\t2 - Créer un nouveau département\n\n");
printf("\t3 - Supprimer un département\n\n");
printf("\t4 - Administrateur\n\n");
printf("\t5 - Candidater\n\n");
printf("\t6 - Suivre sa candidature\n\n");
printf("\t4 - Lancer/arrêter la phase de candidature\n\n");
printf("\t5 - Modifier le nom du responsable d'un département\n\n");
printf("\t9 - Quitter\n");
printf("-----------------------------------------------------------------\n");
printf("---------------------------------------------------------------------\n");
scanf("%*c%d", &choix);
}
@ -186,6 +262,11 @@ void menuAdmin(void) {
void menuPrincipal(/* TODO: prise en compte des status actuels du recrutement */) {
int choix; // Contient le choix de l'utilisateur dans le menu
int nbVilles = 0;
VilleIUT** tiut;
tiut = readVilles(&nbVilles);
printf("--------------------------------------------\n");
printf("Vous êtes : \n");
printf("--------------------------------------------\n");
@ -211,7 +292,7 @@ void menuPrincipal(/* TODO: prise en compte des status actuels du recrutement */
printf("╚██████╗██║ ██║██║ ╚████║██████╔╝██║██████╔╝██║ ██║ ██║ \n");
printf(" ╚═════╝╚═╝ ╚═╝╚═╝ ╚═══╝╚═════╝ ╚═╝╚═════╝ ╚═╝ ╚═╝ ╚═╝ \n\n");
menuCandidat();
menuCandidat(tiut, &nbVilles);
titreMenuPrincipal();
break;
case 2:
@ -223,7 +304,7 @@ void menuPrincipal(/* TODO: prise en compte des status actuels du recrutement */
printf("██║ ██║██████╔╝██║ ╚═╝ ██║██║██║ ╚████║██║███████║ ██║ ██║ ██║██║ ██║ ██║ ███████╗╚██████╔╝██║ ██║\n");
printf("╚═╝ ╚═╝╚═════╝ ╚═╝ ╚═╝╚═╝╚═╝ ╚═══╝╚═╝╚══════╝ ╚═╝ ╚═╝ ╚═╝╚═╝ ╚═╝ ╚═╝ ╚══════╝ ╚═════╝ ╚═╝ ╚═╝\n\n");
menuAdmin();
menuAdmin(tiut, &nbVilles);
titreMenuPrincipal();
break;
case 3:
@ -235,7 +316,7 @@ void menuPrincipal(/* TODO: prise en compte des status actuels du recrutement */
printf("██║ ██║███████╗███████║██║ ╚██████╔╝██║ ╚████║███████║██║ ██║██████╔╝███████╗███████╗\n");
printf("╚═╝ ╚═╝╚══════╝╚══════╝╚═╝ ╚═════╝ ╚═╝ ╚═══╝╚══════╝╚═╝ ╚═╝╚═════╝ ╚══════╝╚══════╝\n\n");
menuResponsable();
menuResponsable(tiut, &nbVilles);
titreMenuPrincipal();
break;
default:
@ -287,25 +368,35 @@ ListeDept creerListeDepartement(void) {
return NULL;
}
void afficherListeDepartement(VilleIUT ville) {
if(ville.ldept == NULL)
fprintf(stderr, "Erreur: la ville '%s' ne contient aucun département\n", ville.ville);
else {
ListeDept search = ville.ldept;
void afficherListeDepartement(VilleIUT** tiut, int nbVilles, char* searchIUT) {
int i, foundIUT=0;
printf("Départements disponibles dans la ville '%s' :\n", ville.ville);
while (search != NULL) {
printf(" - %s, %d places disponibles\n", search->departement, search->nbP);
search = search->suiv;
}
for(i=0; i<nbVilles; i++) {
if(strcmp(tiut[i]->ville, searchIUT) == 0) {
foundIUT = 1;
ListeDept ldept = tiut[i]->ldept;
if(ldept == NULL)
fprintf(stderr, "\n\e[1;91mErreur: la ville '%s' ne contient aucun département\e[0m\n\n", tiut[i]->ville);
else {
printf("\nDépartements disponibles dans la ville '%s' :\n", tiut[i]->ville);
while (ldept != NULL) {
printf(" - %s, %d places disponibles\n", ldept->departement, ldept->nbP);
ldept = ldept->suiv;
}
printf("\n\n");
printf("\n");
}
}
}
if(foundIUT == 0)
fprintf(stderr, "\n\e[1;91mErreur: l'IUT '%s' n'existe pas !\e[0m\n\n", searchIUT);
}
void afficherDepartement(VilleIUT** tiut, int nbVilles, char* searchDept) {
printf("Liste des IUT contenant le département '%s':\n\n", searchDept);
printf("\nListe des IUT contenant le département '%s':\n\n", searchDept);
int i, nb=0;
for(i=0; i<nbVilles; i++) {
@ -330,7 +421,7 @@ void afficherDepartement(VilleIUT** tiut, int nbVilles, char* searchDept) {
}
if(nb == 0)
printf(" \e[0;91mAucun IUT ne contient ce département !\e[0m\n");
fprintf(stderr, " \e[1;91mAucun IUT ne contient ce département !\e[0m\n");
printf("\n\n");
}
@ -417,17 +508,7 @@ void modifierNbPlaces(VilleIUT** tiut, int nbVilles, char* searchIUT, char* sear
fprintf(stderr, "\e[1;91mErreur: le département '%s' n'a pas été trouvé dans l'IUT '%s'\e[0m\n\n", searchDept, searchIUT);
}
void modifierNomResponsable(VilleIUT** tiut, int nbVilles){
char searchIUT[LEN_MAX];
char searchDept[LEN_MAX];
char nom[LEN_MAX];
printf("Entrez une ville:\t");
scanf("%s", searchIUT);
printf("Entrez un département:\t");
scanf("%s", searchDept);
printf("Entrez le nom du nouveau responsable:\t");
scanf("%s[^\n]", nom);
void modifierNomResponsable(VilleIUT** tiut, int nbVilles, char* searchIUT, char* searchDept, char* nom) {
int i, foundIUT=0, foundDept=0;
for(i=0; i<nbVilles; i++) {
if(strcmp(tiut[i]->ville, searchIUT) == 0) {
@ -437,7 +518,7 @@ void modifierNomResponsable(VilleIUT** tiut, int nbVilles){
if(ldept != NULL) {
if(strcmp(ldept->departement, searchDept) == 0) {
strcpy(ldept->responsable, nom);
printf("Le responsable de la formation '%s' à l'IUT '%s' est désormais '%s'\n\n", searchDept, searchIUT, ldept->responsable);
printf("\nLe responsable de la formation '%s' à l'IUT '%s' est désormais '%s'.\n\n", searchDept, searchIUT, ldept->responsable);
foundDept = 1;
} else {
ListeDept search = ldept;
@ -445,7 +526,7 @@ void modifierNomResponsable(VilleIUT** tiut, int nbVilles){
while(search->suiv != NULL) {
if(strcmp(ldept->departement, searchDept) == 0) {
strcpy(search->responsable, nom);
printf("Le responsable de la formation '%s' à l'IUT '%s' est désormais '%s'\n\n", searchDept, searchIUT, search->responsable);
printf("\nLe responsable de la formation '%s' à l'IUT '%s' est désormais '%s'.\n\n", searchDept, searchIUT, search->responsable);
foundDept = 1;
}
search = search->suiv;
@ -458,10 +539,10 @@ void modifierNomResponsable(VilleIUT** tiut, int nbVilles){
}
if(foundIUT == 0)
fprintf(stderr, "\e[1;91mErreur: l'IUT '%s' n'a pas été trouvé !\e[0m\n\n", searchIUT);
fprintf(stderr, "\n\e[1;91mErreur: l'IUT '%s' n'a pas été trouvé !\e[0m\n\n", searchIUT);
else
if(foundDept == 0)
fprintf(stderr, "\e[1;91mErreur: le département '%s' n'a pas été trouvé dans l'IUT '%s'\e[0m\n\n", searchDept, searchIUT);
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);
}
void saveVilles(VilleIUT* tiut[], int nbVilles) {
@ -576,7 +657,7 @@ void test(void) {
tiut = ajouterVille(tiut, clermont, &nbVilles);
afficherListeDepartement(*clermont);
//afficherListeDepartement(*clermont);
MaillonDept* departement = creerDepartement("Informatique", 136, "Simon Carine");
tiut[0]->ldept = ajouterDepartement(tiut[0]->ldept, departement);
@ -587,7 +668,7 @@ void test(void) {
departement = creerDepartement("Testeuuu", 1337, "IDK");
tiut[0]->ldept = ajouterDepartement(tiut[0]->ldept, departement);
afficherListeDepartement(*clermont);
//afficherListeDepartement(*clermont);
saveVilles(tiut, nbVilles);
@ -598,7 +679,7 @@ void test(void) {
tiut2 = readVilles(&nbVilles2);
afficherListeDepartement(*tiut2[0]);
//afficherListeDepartement(*tiut2[0]);
VilleIUT* grenoble = creerVille();
strcpy(grenoble->ville, "Grenoble");
@ -615,13 +696,13 @@ void test(void) {
tiut2[0]->ldept = supprimerDepartement(tiut2[0]->ldept, "Testeuuu");
afficherListeDepartement(*tiut2[0]);
//afficherListeDepartement(*tiut2[0]);
modifierNbPlaces(tiut2, nbVilles2, "Clermond Ft", "Informatique", 140);
afficherListeDepartement(*tiut2[1]);
//afficherListeDepartement(*tiut2[1]);
modifierNomResponsable(tiut2, nbVilles2);
//modifierNomResponsable(tiut2, nbVilles2);
}
/*

Loading…
Cancel
Save