/** * \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(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;ival){ *pos=i; return; } } *coderet=0; *pos=tlog; return; }*/