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.

419 lines
15 KiB

/**
* @file menus.c
* @author Kyllian Chabanon - Antoine Perederii
* @brief Ce fichier contient tous les menus de notre application.
*/
#include "SAE.h"
/**
* @brief Fonction de sélection des menus
*
* @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;
bool c = false;
char etat[8];
while (c == false)
{
if (*phaseCandidatures == true)
{
strcpy(etat, "ouverte");
}
else
{
strcpy(etat, "fermée");
}
// system("clear");
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("\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 9:
c = true;
return;
default:
printf("Option non reconnue. Veuillez recommencer.\n");
break;
}
}
}
/**
* @brief Menu des administrateurs
*
* @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)
{
// system("clear");
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
*
* @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)
{
// system("clear");
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
*
* @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)
{
// system("clear");
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("\t5 - Modifier 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 5:
//
break;
case 9:
c = true;
return;
default:
printf("Option non reconnue. Veuillez recommencer.\n");
break;
}
}
}
/**
* @brief Menu des responsables
*
* @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;
Etudiant *tetudResp[100], *tetudRespAdmis[100], *tetudRespAttente[100];
int nbCandidatsDept, nbCandidatsDeptAdmis, nbCandidatsDeptAttente;
char respVille[30], respDept[30];
moyenneCandidats(tetud, nbCandidats);
deptResp(tiut, *nbIUT, respVille, respDept);
nbCandidatsDept = chargementRespDept(tetud, nbCandidats, respVille, respDept, tetudResp); //* Ca marche ca
triNote(tetudResp, nbCandidatsDept);
nbCandidatsDeptAdmis = chargementRespDept(tetudAdmis, nbEtudAdmis, respVille, respDept, tetudRespAdmis); // ? A tester
triNote(tetudRespAdmis, nbCandidatsDeptAdmis);
nbCandidatsDeptAttente = chargementRespDept(tetudAttente, nbEtudAttente, respVille, respDept, tetudRespAttente);
triNote(tetudRespAttente, nbCandidatsDeptAttente);
//! Ajouter la moyenne et nommer deux liste pour admis et en attente
while (c == false)
{
// system("clear");
printf("\n\nMenu des Responsable de Departement : Que voulez-vous faire ?\n");
printf("\t1 - Lancer les admissions\n");
printf("\t2 - Affichages\n");
printf("\t3 - Modifier le nombre de places dans un département\n");
printf("\t4 - Modifier la note minimal d'admission du departement\n");
// printf("\t2 - Afficher les candidats dans mon département\n");
// printf("\t3 - Afficher les candidats admis du departement\n");
// printf("\t4 - Afficher les candidats refusés du departement\n");
// printf("\t5 - Afficher les candidats en attente du departement\n");
// printf("\t6 - Afficher les informations de tous les candidats du departement\n");
// printf("\t7 - Afficher les informations d'un seul candidat du departement\n");
// printf("\t8 - Afficher le statue d'un candidats du departement\n");
// printf("\t9 - Afficher le nombre de candidats admis du departement\n");
// printf("\t10- Afficher le nombre de candidats refusés du departement\n");
// printf("\t11- Afficher le nombre de candidats en attente du departement\n");
printf("\t9 - Quitter\n");
printf("\nEntrez votre choix :\n> ");
scanf("%d%*c", &choix);
switch (choix)
{
case 1:
// lancerAdmissions(tetudResp, nbCandidats, tetudAdmis, nbEtudAdmis, tetudAttente, nbEtudAttente, respVille, respDept);
break;
case 2:
menuAffichage(tetudResp, nbCandidatsDept, tetudRespAdmis, nbCandidatsDeptAdmis, tetudRespAttente, nbCandidatsDeptAttente);
break;
/*case 1:
// modifNbPlaces(nbPlaces)
break;
case 2:
afficherCandidatsAdmis(tetud, nbCandidats);
break;
case 3:
afficherCandidatsRefuses(tetud, nbCandidats);
break;
case 4:
afficherCandidatsAttente(tetud, nbCandidats);
break;
case 5:
afficherCandidats(tetud, nbCandidats);
break;
case 6:
afficherCandidat(tetud, nbCandidats);
break;
case 7:
statueCandidat(tetud, nbCandidats);
break;
case 8:
nbCandidatsAdmis(tetud, nbCandidats);
break;
case 9:
nbCandidatsRefuses(tetud, nbCandidats);
break;
case 10:
nbCandidatsAttente(tetud, nbCandidats);
break;
case 11:
// modifNoteMin(noteMin);
break;
case 12:
// modifNoteExel(noteExel);
break;*/
case 9:
c = true;
return;
default:
printf("Option non reconnue. Veuillez recommencer.\n");
break;
}
}
}
/**
* @brief Menu d'affichage des responsables
*
* @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 *tetud[], int nbCandidats, VilleIUT *tiut[], int *nbIUT, Etudiant *tetudAdmis[], int *nbEtudAdmis, Etudiant *tetudAttente[], int *nbEtudAttente)
{
int choix;
bool c = false;
while (c == false)
{
// system("clear");
printf("\n\nMenu des Affichages Responsable de Departement : Que voulez-vous faire ?\n");
printf("\t1 - Afficher les candidats dans mon département\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 les informations de tous les candidats du departement\n");
printf("\t6 - Afficher les informations d'un seul candidat du departement\n");
printf("\t7 - Afficher le statue d'un candidats du departement\n");
// ! printf("\t8 - Afficher le nombre de candidats admis du departement\n");
// ! printf("\t9 - Afficher le nombre de candidats refusés du departement\n"); Les mettres a la fin de chaque affichage des autres
// ! printf("\t10- Afficher le nombre de candidats en attente du departement\n");
printf("\t9 - Quitter\n");
printf("\nEntrez votre choix :\n> ");
scanf("%d%*c", &choix);
switch (choix)
{
case 1:
// lancerAdmission(tetudResp, *nbCandidats);
break;
case 2:
// afficherCandidatsAdmis(tetudResp, nbCandidatsDept);
break;
case 3:
// afficherCandidatsRefuses(tetudResp, nbCandidatsDept);
afficherCandidats(tetudRespAttente, nbCandidatsDeptAttente);
break;
case 4:
// afficherCandidatsAttente(tetudResp, nbCandidatsDept);
afficherCandidats(tetudRespAdmis, nbCandidatsDeptAdmis);
break;
case 5:
afficherCandidats(tetudResp, nbCandidatsDept);
break;
// case 6:
// afficherCandidat(tetud, nbCandidats);
// break;
// case 7:
// statueCandidat(tetud, nbCandidats);
// break;
// case 8:
// nbCandidatsAdmis(tetud, nbCandidats);
// break;
// case 10:
// nbCandidatsRefuses(tetud, nbCandidats);
// break;
// case 11:
// nbCandidatsAttente(tetud, nbCandidats);
// break;
case 9:
c = true;
return;
default:
printf("Option non reconnue. Veuillez recommencer.\n");
break;
}
}
}