You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
386 lines
13 KiB
386 lines
13 KiB
/**
|
|
* @file menus.c
|
|
* @author Kyllian Chabanon - Antoine Perederii
|
|
* @brief Fichier contenant tous les différents menus de notre application.
|
|
*
|
|
*/
|
|
|
|
#include "SAE.h"
|
|
|
|
/**
|
|
* @brief Fonction de sélection des menus
|
|
*
|
|
* @author Kyllian Chabanon
|
|
* @param tiut Tableau des IUT
|
|
* @param nbIUT Nombre d'IUT
|
|
* @param tetud Tableau des candidats
|
|
* @param nbCandidats Nombre de candidats
|
|
* @param phaseCandidatures Booléen contenant l'état de la phase de candidature
|
|
* @param phaseTraitement Booléen contenant l'état de la phase d'admission
|
|
* @param tetudAdmis Tableau des étudiants admis
|
|
* @param nbEtudAdmis Nombre de candidats admis
|
|
* @param tetudAttente Tableau des étudiants en file d'attente
|
|
* @param nbEtudAttente Nombre d'étudiants en file d'attente
|
|
*/
|
|
void menu(VilleIUT *tiut[], int *nbIUT, Etudiant *tetud[], int *nbCandidats, bool *phaseCandidatures, bool *phaseTraitement, Etudiant *tetudAdmis[], int *nbEtudAdmis, Etudiant *tetudAttente[], int *nbEtudAttente)
|
|
{
|
|
int choix, pasMdP = 0;
|
|
bool c = false;
|
|
char etat[8], mdp[30], MdPAdmin[30];
|
|
while (c == false)
|
|
{
|
|
if (*phaseCandidatures == true)
|
|
{
|
|
strcpy(etat, "ouverte");
|
|
}
|
|
else
|
|
{
|
|
strcpy(etat, "fermée");
|
|
}
|
|
printf("\n\nVeuillez choisir votre menu :\n");
|
|
printf("\t1 - Menu administrateur\n");
|
|
printf("\t2 - Menu utilisateur\n");
|
|
printf("\t3 - Menu candidat (phase de candidature %s)\n", etat);
|
|
printf("\t4 - Menu responsable de département\n");
|
|
printf("\t5 - Menu POST Candidatures\n");
|
|
printf("\t9 - Quitter\n");
|
|
printf("\nEntrez votre choix :\n> ");
|
|
scanf("%d%*c", &choix);
|
|
switch (choix)
|
|
{
|
|
case 1:
|
|
menuAdministrateur(tiut, nbIUT, tetud, nbCandidats, phaseCandidatures, phaseTraitement);
|
|
break;
|
|
case 2:
|
|
menuUtilisateur(tiut, nbIUT, tetud, nbCandidats);
|
|
break;
|
|
case 3:
|
|
if (phaseCandidatures == false)
|
|
{
|
|
printf("La phase de candidature est actuellement fermée.");
|
|
break;
|
|
}
|
|
menuCandidat(tiut, nbIUT, tetud, nbCandidats);
|
|
break;
|
|
case 4:
|
|
menuResponsable(tetud, *nbCandidats, tiut, nbIUT, tetudAdmis, nbEtudAdmis, tetudAttente, nbEtudAttente);
|
|
break;
|
|
case 5:
|
|
menuPostCandidat(tetud, nbCandidats);
|
|
break;
|
|
case 9:
|
|
c = true;
|
|
return;
|
|
default:
|
|
printf("Option non reconnue. Veuillez recommencer.\n");
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
/**
|
|
* @brief Menu des administrateurs
|
|
*
|
|
* @author Kyllian Chabanon
|
|
* @param tiut Tableau des IUT
|
|
* @param nbIUT Nombre d'IUT
|
|
* @param tetud Tableau des candidats
|
|
* @param nbCandidats Nombre de candidats
|
|
* @param phaseCandidatures Booléen contenant l'état de la phase de candidature
|
|
* @param phaseTraitement Booléen contenant l'état de la phase d'admission
|
|
*/
|
|
void menuAdministrateur(VilleIUT *tiut[], int *nbIUT, Etudiant *tetud[], int *nbCandidats, bool *phaseCandidatures, bool *phaseTraitement)
|
|
{
|
|
int choix;
|
|
bool c = false;
|
|
while (c == false)
|
|
{
|
|
printf("\n\nMenu d'administrateur : Que voulez-vous faire ?\n");
|
|
printf("\t1 - Modifier le nombre de places dans un département\n");
|
|
printf("\t2 - Créer un département dans un IUT\n");
|
|
printf("\t3 - Supprimer un département d'un IUT\n");
|
|
printf("\t4 - Modifier le responsable d'un département\n");
|
|
printf("\t5 - Afficher les informations de tous les candidats\n");
|
|
printf("\t6 - Afficher les informations d'un seul candidat\n");
|
|
printf("\t7 - Lancer la phase de candidature\n");
|
|
printf("\t8 - Stopper la phase de candidature\n");
|
|
printf("\t9 - Quitter\n");
|
|
printf("\nEntrez votre choix :\n> ");
|
|
scanf("%d%*c", &choix);
|
|
switch (choix)
|
|
{
|
|
case 1:
|
|
modificationNbPDept(tiut, *nbIUT);
|
|
break;
|
|
case 2:
|
|
creationDept(tiut, *nbIUT);
|
|
break;
|
|
case 3:
|
|
*nbIUT = suppressionDept(tiut, *nbIUT);
|
|
break;
|
|
case 4:
|
|
modificationRespDept(tiut, *nbIUT);
|
|
break;
|
|
case 5:
|
|
afficherCandidats(tetud, *nbCandidats);
|
|
printf("\nNombre de candidats : %d\n", *nbCandidats);
|
|
break;
|
|
case 6:
|
|
afficherCandidat(tetud, *nbCandidats);
|
|
break;
|
|
case 7:
|
|
lancerPhaseCandidature(phaseCandidatures, phaseTraitement);
|
|
break;
|
|
case 8:
|
|
stopperPhaseCandidature(phaseCandidatures, phaseTraitement);
|
|
break;
|
|
case 9:
|
|
c = true;
|
|
return;
|
|
default:
|
|
printf("Option non reconnue. Veuillez recommencer.\n");
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
/**
|
|
* @brief Menu des utilisateurs
|
|
*
|
|
* @author Kyllian Chabanon
|
|
* @param tiut Tableau des IUT
|
|
* @param nbIUT Nombre d'IUT
|
|
* @param tetud Tableau des candidats
|
|
* @param nbCandidats Nombre de candidats
|
|
*/
|
|
void menuUtilisateur(VilleIUT *tiut[], int *nbIUT, Etudiant *tetud[], int *nbCandidats)
|
|
{
|
|
int choix;
|
|
bool c = false;
|
|
while (c == false)
|
|
{
|
|
printf("\n\nMenu d'utilisateur : Que voulez-vous faire ?\n");
|
|
printf("\t1 - Voir les villes possédant un IUT\n");
|
|
printf("\t2 - Voir les départements dans chaque IUT\n");
|
|
printf("\t3 - Voir le nombre de places en première année\n");
|
|
printf("\t4 - Voir les IUT possédant un département particulier\n");
|
|
printf("\t9 - Quitter\n");
|
|
printf("\nEntrez votre choix :\n> ");
|
|
scanf("%d%*c", &choix);
|
|
switch (choix)
|
|
{
|
|
case 1:
|
|
affichageVillesIUT(tiut, *nbIUT);
|
|
break;
|
|
case 2:
|
|
affichageDeptIUT(tiut, *nbIUT);
|
|
break;
|
|
case 3:
|
|
affichageNbP(tiut, *nbIUT);
|
|
break;
|
|
case 4:
|
|
affichageDeptParticulier(tiut, *nbIUT);
|
|
break;
|
|
case 9:
|
|
c = true;
|
|
return;
|
|
default:
|
|
printf("Option non reconnue. Veuillez recommencer.\n");
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
/**
|
|
* @brief Menu des candidats
|
|
*
|
|
* @author Kyllian Chabanon
|
|
* @param tiut Tableau des IUT
|
|
* @param nbIUT Nombre d'IUT
|
|
* @param tetud Tableau des candidats
|
|
* @param nbCandidats Nombre de candidats
|
|
*/
|
|
void menuCandidat(VilleIUT *tiut[], int *nbIUT, Etudiant *tetud[], int *nbCandidats)
|
|
{
|
|
int choix;
|
|
bool c = false;
|
|
while (c == false)
|
|
{
|
|
printf("\n\nMenu candidat : Que voulez-vous faire ?\n");
|
|
printf("\t1 - S'inscrire\n");
|
|
printf("\t2 - Afficher ses informations\n");
|
|
printf("\t3 - Ajouter un choix\n");
|
|
printf("\t4 - Supprimer un choix\n");
|
|
printf("\t9 - Quitter\n");
|
|
printf("\nEntrez votre choix :\n> ");
|
|
scanf("%d%*c", &choix);
|
|
switch (choix)
|
|
{
|
|
case 1:
|
|
*nbCandidats = inscription(tetud, *nbCandidats, tiut, *nbIUT);
|
|
break;
|
|
case 2:
|
|
afficherCandidat(tetud, *nbCandidats);
|
|
break;
|
|
case 3:
|
|
ajouterCandidature(tetud, *nbCandidats, tiut, *nbIUT);
|
|
break;
|
|
case 4:
|
|
supprimerCandidature(tetud, *nbCandidats);
|
|
break;
|
|
case 9:
|
|
c = true;
|
|
return;
|
|
default:
|
|
printf("Option non reconnue. Veuillez recommencer.\n");
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
/**
|
|
* @brief Menu des responsables
|
|
*
|
|
* @author Kyllian Chabanon - Antoine Perederii
|
|
* @param tetud Tableau des candidats
|
|
* @param nbCandidats Nombre de candidats
|
|
* @param tiut Tableau des IUT
|
|
* @param nbIUT Nombre d'IUT
|
|
* @param tetudAdmis Tableau des étudiants admis
|
|
* @param nbEtudAdmis Nombre d'étudiants admis
|
|
* @param tetudAttente Tableau des étudiants en file d'attente
|
|
* @param nbEtudAttente Nombre d'étudiants en file d'attente
|
|
*/
|
|
void menuResponsable(Etudiant *tetud[], int nbCandidats, VilleIUT *tiut[], int *nbIUT, Etudiant *tetudAdmis[], int *nbEtudAdmis, Etudiant *tetudAttente[], int *nbEtudAttente)
|
|
{
|
|
int choix;
|
|
bool c = false;
|
|
float noteMin[5];
|
|
Etudiant *tetudResp[100];
|
|
int nbCandidatsDept;
|
|
char respVille[30], respDept[30];
|
|
deptResp(tiut, *nbIUT, respVille, respDept);
|
|
nbCandidatsDept = chargementRespDept(tetud, nbCandidats, respVille, respDept, tetudResp);
|
|
triNote(tetudResp, nbCandidatsDept);
|
|
while (c == false)
|
|
{
|
|
printf("\n\nMenu des Responsable de Departement : Que voulez-vous faire ?\n");
|
|
printf("\t1 - Affichages\n");
|
|
printf("\t2 - Modifier le nombre de places dans un département\n");
|
|
printf("\t3 - Modifier la note minimal d'admission du departement\n");
|
|
printf("\t4 - Lancer les admissions\n");
|
|
printf("\t9 - Quitter\n");
|
|
printf("\nEntrez votre choix :\n> ");
|
|
scanf("%d%*c", &choix);
|
|
switch (choix)
|
|
{
|
|
case 1:
|
|
menuAffichage(tetudResp, nbCandidatsDept, nbEtudAdmis, nbEtudAttente);
|
|
break;
|
|
case 2:
|
|
modificationNbPDeptResp(tiut, *nbIUT, respVille, respDept);
|
|
break;
|
|
case 3:
|
|
*noteMin = modifNoteMin(noteMin);
|
|
break;
|
|
case 4:
|
|
modifStatueCandidat(tetudResp, nbCandidatsDept, noteMin, tiut, *nbIUT, respVille, respDept);
|
|
statueCandidat(tetudResp, nbCandidatsDept, tetudAdmis, tetudAttente, nbEtudAdmis, nbEtudAttente);
|
|
afficherCandidats(tetudAdmis, *nbEtudAdmis);
|
|
break;
|
|
case 9:
|
|
c = true;
|
|
return;
|
|
default:
|
|
printf("Option non reconnue. Veuillez recommencer.\n");
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
/**
|
|
* @brief Menu d'affichage des responsables
|
|
*
|
|
* @author Antoine Perederii
|
|
* @param tetud Tableau des candidats
|
|
* @param nbCandidats Nombre de candidats
|
|
* @param tiut Tableau des IUT
|
|
* @param nbIUT Nombre d'IUT
|
|
* @param tetudAdmis Tableau des étudiants admis
|
|
* @param nbEtudAdmis Nombre d'étudiants admis
|
|
* @param tetudAttente Tableau des étudiants en file d'attente
|
|
* @param nbEtudAttente Nombre d'étudiants en file d'attente
|
|
*/
|
|
void menuAffichage(Etudiant *tetudResp[], int nbEtudDept, int *nbEtudAdmis, int *nbEtudAttente)
|
|
{
|
|
int choix;
|
|
bool c = false;
|
|
int nbEtudRefuses;
|
|
while (c == false)
|
|
{
|
|
printf("\n\nMenu des Affichages Responsable de Departement : Que voulez-vous faire ?\n");
|
|
printf("\t1 - Afficher les candidats dans mon département (trier par note moyenne)\n");
|
|
printf("\t2 - Afficher les candidats admis du departement\n");
|
|
printf("\t3 - Afficher les candidats refusés du departement\n");
|
|
printf("\t4 - Afficher les candidats en attente du departement\n");
|
|
printf("\t5 - Afficher un seul candidat du departement\n");
|
|
printf("\t9 - Quitter\n");
|
|
printf("\nEntrez votre choix :\n> ");
|
|
scanf("%d%*c", &choix);
|
|
switch (choix)
|
|
{
|
|
case 1:
|
|
afficherCandidats(tetudResp, nbEtudDept);
|
|
printf("Il y a %d candidats dans votre departement.\n", nbEtudDept);
|
|
break;
|
|
case 2:
|
|
afficherCandidatsAdmis(tetudResp, nbEtudDept);
|
|
printf("Il y a %d candidats admis dans votre departement.\n", *nbEtudAdmis);
|
|
break;
|
|
case 3:
|
|
nbEtudRefuses = nbCandidatsRefuses(tetudResp, nbEtudDept);
|
|
afficherCandidatsRefuses(tetudResp, nbEtudDept);
|
|
printf("Il y a %d candidats refusés dans votre departement.\n", nbEtudRefuses);
|
|
break;
|
|
case 4:
|
|
afficherCandidatsAttente(tetudResp, nbEtudDept);
|
|
printf("Il y a %d candidats en attente dans votre departement.\n", *nbEtudAttente);
|
|
break;
|
|
case 5:
|
|
afficherCandidat(tetudResp, nbEtudDept);
|
|
break;
|
|
case 9:
|
|
c = true;
|
|
return;
|
|
default:
|
|
printf("Option non reconnue. Veuillez recommencer.\n");
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
void menuPostCandidat(Etudiant *tetud[], int *nbCandidats)
|
|
{
|
|
int choix;
|
|
bool c = false;
|
|
while (c == false)
|
|
{
|
|
printf("\n\nMenu des Affichages Responsable de Departement : Que voulez-vous faire ?\n");
|
|
printf("\t1 - Afficher les informations sur mes voeus\n");
|
|
printf("\t9 - Quitter\n");
|
|
printf("\nEntrez votre choix :\n> ");
|
|
scanf("%d%*c", &choix);
|
|
switch (choix)
|
|
{
|
|
case 1:
|
|
afficherCandidat(tetud, *nbCandidats);
|
|
break;
|
|
case 9:
|
|
c = true;
|
|
return;
|
|
default:
|
|
printf("Option non reconnue. Veuillez recommencer.\n");
|
|
break;
|
|
}
|
|
}
|
|
} |