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.

446 lines
7.4 KiB

/**
* \file sae102.h
* \author Erwan. M & Corentin. L
* \date 11/12/22
* \brief Résumé : Fichier .c regroupant les fonctions du programme
*/
#include "sae102.h"
void switchAdministrateur(int choix){
switch (choix){
case 1:
printf("Modifier place\n"); //
break;
case 2:
printf("Créer\n"); //
break;
case 3:
printf("Supprimer\n"); //
break;
case 4:
printf("Lancer\n"); //
break;
case 5:
printf("Modifier nom\n"); //
break;
case 9:
clear(); // Clear terminal
return;
default:
clear(); // Clear terminal
affichageErreurSaisie();
}
}
void affichageMenuPrincipal(void){
printf("-------------------------------\n");
printf("\033[1;37m"); // Gras
printf("\tMENU PRINCIPAL\t\n");
printf("\033[0m"); // Reset couleur
printf("-------------------------------\n\n");
printf("(1) Utilisateur\n");
printf("(2) Administrateur\n");
printf("(9) Quitter\n");
}
void switchPrincipal(int choix){
switch (choix){
case 1:
sousMenuUtilisateur();
break;
case 2:
printf("\e[1;1H\e[2J"); // Clear terminal
sousMenuAdministrateur(); // Sous Menu Administrateur
break;
case 9:
printf("Programme réalisé par Corentin LEMAIRE et Erwan MENAGER.\n");
exit(1);
default:
affichageErreurSaisie();
}
}
void affichageErreurSaisie(void){
printf("\e[1;1H\e[2J"); // Clear terminal
printf("-------------------------------\n");
printf("\033[1;31m"); // Rouge
printf("Erreur : Saisie incorrecte.\n\a"); // \a -> Cloche
printf("\033[0m"); // Reset couleur
printf("-------------------------------\n");
}
void affichageMenuAdministrateur(void){
printf("-------------------------------\n");
printf("\033[1;37m"); // Gras
printf("\tMENU ADMINISTRATEUR\t\n");
printf("\033[0m"); // Reset couleur
printf("-------------------------------\n\n");
printf("(1) Modifier le nombre de places dans un département\n");
printf("(2) Créer un département dans un IUT\n");
printf("(3) Supprimer un département d'un IUT\n");
printf("(4) Lancer et arrêter la phase de candidature (PARTIE 2)\n");
printf("(5) Modifier le nom du responsable d'un département\n");
printf("(9) Retour\n");
}
void affichageErreurMdp(void){
printf("\e[1;1H\e[2J"); // Clear terminal
printf("---------------------------------------------------\n");
printf("\033[1;31m"); // Rouge
printf("Mot de passe incorrect. ");
printf("\033[0m"); // Reset couleur
printf("Retour au menu principal.\n\a"); // \a -> Cloche
printf("---------------------------------------------------\n");
}
void menuPrincipal(void){
int choix;
while(choix != 9){
affichageMenuPrincipal();
choix = fonctionChoix();
switchPrincipal(choix);
}
}
void sousMenuAdministrateur(void){
int choix;
char motDePasseAdmin[20];
printf("Mot de passe administrateur : ");
scanf("%*c");
fgets(motDePasseAdmin, 20, stdin);
motDePasseAdmin[strlen(motDePasseAdmin)-1] = '\0';
if(strcmp("M.Hasbani>", motDePasseAdmin) != 0){
affichageErreurMdp();
return;
}
clear(); // Clear terminal
while(choix != 9){
affichageMenuAdministrateur();
choix = fonctionChoix();
switchAdministrateur(choix);
}
}
int fonctionChoix(void){
int choix;
printf("\nVotre choix : ");
scanf("%d", &choix);
return choix;
}
void affichageSousMenuUtilisateur(void){
printf("-------------------------------\n");
printf("\033[1;37m"); // Gras
printf("\tMENU UTILISATEUR\t\n");
printf("\033[0m"); // Reset couleur
printf("-------------------------------\n\n");
printf("(1) Voir les villes où il y a un IUT\n");
printf("(2) Voir les département d'un IUT\n");
printf("(3) Voir le nombre de places en première année d'un département d'un IUT\n");
printf("(4) Voir les IUT possédant un département en particulier\n");
printf("(9) Retour\n");
}
void switchUtilisateur(int choix){
switch (choix){
case 1:
printf("Villes avec IUT\n"); //
break;
case 2:
printf("Départements d'un IUT\n"); //
break;
case 3:
printf("Nombre de places d'un IUT\n"); //
break;
case 4:
printf("IUT avec département en particulier\n"); //
break;
case 9:
clear(); // Clear terminal
return;
default:
clear(); // Clear terminal
printf("-------------------------------\n");
printf("\033[1;31m"); // Rouge
printf("Erreur : Saisie incorrecte.\n\a"); // \a -> Cloche
printf("\033[0m"); // Reset couleur
printf("-------------------------------\n");
}
}
void sousMenuUtilisateur(void){
int choix;
while (choix != 9){
affichageSousMenuUtilisateur();
choix = fonctionChoix();
switchUtilisateur(choix);
}
}
ListeDept Listenouv(void){
ListeDept l;
l = NULL;
return l;
}
ListeDept inserer(ListeDept l, char* departement, int nbP, char* nomResp){
if (l == NULL)
return insererEnTete(l, departement, nbP, nomResp);
if (strcmp(departement, l -> departement) < 0)
return insererEnTete(l, departement, nbP, nomResp);
if (strcmp(departement, l -> departement) == 0)
return l;
l -> suiv = inserer(l->suiv, departement, nbP, nomResp);
return l;
}
ListeDept insererEnTete(ListeDept l, char* departement, int nbP, char* nomResp){
MaillonDept *m;
m = (MaillonDept *)malloc(sizeof(MaillonDept));
if (m == NULL)
{
printf("Problème malloc\n");
exit(1);
}
strcpy(m -> departement, departement);
m -> nbP = nbP;
strcpy(m -> nomResp, nomResp);
m -> suiv = l;
return m;
}
MaillonDept modifNbPlaces(MaillonDept m){
int nvNbPlaces;
printf("Combien de places à présent ? ");
scanf("%d", &nvNbPlaces);
while (nvNbPlaces < 1){
printf("Nombre incorrect, réessayez !\n");
printf("Combien de places à présent ? ");
scanf("%d", &nvNbPlaces);
}
m.nbP = nvNbPlaces;
return m;
}
MaillonDept modifResp(MaillonDept m){
char nomResp[22];
printf("Nouveau nom de chef de département ? ");
fgets(nomResp, 22, stdin);
nomResp[strlen(nomResp) - 1 ] = '\0';
strcpy(m.nomResp, nomResp);
return m;
}
void clear(void){
printf("\e[1;1H\e[2J");
}
/* EN COURS
void rechercherVille(int* tiut, int tlog, int val, int *coderet, int *pos){
int i;
for(i=0;i<tlog;i++){
if(tAdh[0][i]==val){
*coderet=1;
*pos=i;
*idAdh=tAdh[0][i];
*nbpts=tAdh[1][i];
*categ=tAdh[2][i];
return;
}
if(tAdh[0][i]>val){
*pos=i;
return;
}
}
*coderet=0;
*pos=tlog;
return;
}*/