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

/**
*@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;
}*/