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.
421 lines
7.5 KiB
421 lines
7.5 KiB
/**
|
|
*@file : sae.c
|
|
*@author : Erwan.M
|
|
*@date : 07/11/22
|
|
* sujet : SAE 1.01
|
|
*@brief : Résumé : Fichier .c regroupant les fonctions du programme
|
|
*/
|
|
|
|
#include "SAE2.h"
|
|
#include <stdio.h>
|
|
#include <stdlib.h>
|
|
#include <string.h>
|
|
|
|
void menuPrincipal(void){
|
|
|
|
int choix;
|
|
|
|
while(choix != 9){
|
|
|
|
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");
|
|
|
|
choix = fonctionChoix();
|
|
|
|
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:
|
|
|
|
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 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){
|
|
|
|
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");
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
printf("\e[1;1H\e[2J"); // Clear terminal
|
|
|
|
while(choix != 9){
|
|
|
|
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");
|
|
|
|
choix = fonctionChoix();
|
|
|
|
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:
|
|
|
|
printf("\e[1;1H\e[2J"); // Clear terminal
|
|
|
|
return;
|
|
|
|
default:
|
|
|
|
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");
|
|
|
|
}
|
|
}
|
|
}
|
|
|
|
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:
|
|
|
|
printf("\e[1;1H\e[2J"); // Clear terminal
|
|
|
|
return;
|
|
|
|
default:
|
|
|
|
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 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);
|
|
|
|
}
|
|
|
|
*m -> departement = departement;
|
|
|
|
m -> nbP = nbP;
|
|
|
|
*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';
|
|
|
|
*m.nomResp = nomResp;
|
|
|
|
return m;
|
|
|
|
}
|
|
|
|
/* 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;
|
|
}*/ |