diff --git a/Msae.c b/Msae.c index 427a046..8435fd1 100644 --- a/Msae.c +++ b/Msae.c @@ -532,17 +532,37 @@ void lancerPhaseCandidature(int *phaseCandidature) { char choix; system("clear"); - printf("Êtes-vous sur de lancer la phase de candidature?(o/n)"); - scanf("%c",&choix); - if(choix!='O' && choix!='o') + if (*phaseCandidature==0) { printf("La phase de candidature n'a pas été lancée.\n"); - scanf("%c",&choix); - clearpage(); - return; + printf("\nÊtes-vous sur de lancer la phase de candidature?(o/n)\t"); + scanf("%c",&choix); + if(choix!='O' && choix!='o') + { + printf("La phase de candidature n'a pas été lancée.\n"); + scanf("%c",&choix); + clearpage(); + return; + } + *phaseCandidature=1; + printf("\nLa phase de candidature a été lancée.\n"); + } + if(*phaseCandidature==1) + { + printf("La phase de candidature est en court.\n"); + printf("\nÊtes-vous sur d'arrêter la phase de candidature?(o/n)\t"); + scanf("%c",&choix); + if(choix!='O' && choix!='o') + { + printf("La phase de candidature n'a pas été arrêtée.\n"); + scanf("%c",&choix); + clearpage(); + return; + } + *phaseCandidature=2; + printf("\nLa phase de candidature a été arrêtée.\n"); } - *phaseCandidature=1; - printf("\nLa phase de candidature a été lancée.\n"); + clearpage(); } @@ -628,8 +648,6 @@ int login(Candidat *tCand[],int *tMax,int *pos) /* Affiche un menu de connexion } } - - void menuAdmin(VilleIUT *tiut[], int *tLog, int tMax,int *phaseCandidature) /* Affiche un menu de choix adaptés pour un administrateur et appelle les fonctions en conséquence */ { int select, pos; @@ -677,54 +695,58 @@ void menuAdmin(VilleIUT *tiut[], int *tLog, int tMax,int *phaseCandidature) /* A { creerDept(tiut, *tLog); } - if(select == 4) - { - retirerDept(tiut, *tLog); - } - if(select == 5) - { - miseAJourGlobale(tiut, *tLog); - } - if(select == 6) + if(*phaseCandidature==0) { - printf("Quel est le nom de la ville à insérer ?\nSaisie : "); /* Demande le nom de la ville à insérer */ - scanf("%s%*c", ville); - printf("\n"); - pos = rechercheIUT(tiut, *tLog, ville, &trouve); /* Vérifie que la ville existe */ - if(trouve == 1) /* Si elle existe, affiche un message d'erreur */ + if(select == 4) { - printf("Erreur, cette ville existe déjà !\n"); + retirerDept(tiut, *tLog); } - else /* Sinon, appelle la fonction d'insertion */ + if(select == 5) { - insererVille(tiut, ville, tLog, tMax, pos); + miseAJourGlobale(tiut, *tLog); } - } - if(select == 7) - { - printf("Quel est le nom de la ville à supprimer ?\nSaisie : "); /* Demande le nom de la ville à supprimer */ - scanf("%s%*c", ville); - printf("\n"); - pos = rechercheIUT(tiut, *tLog, ville, &trouve); /* Vérifie qu'elle existe */ - if(trouve == 0) /* Si elle n'existe pas, affiche un message d'erreur */ + if(select == 6) { - printf("Erreur, cette ville n'existe pas !\n"); + printf("Quel est le nom de la ville à insérer ?\nSaisie : "); /* Demande le nom de la ville à insérer */ + scanf("%s%*c", ville); + printf("\n"); + pos = rechercheIUT(tiut, *tLog, ville, &trouve); /* Vérifie que la ville existe */ + if(trouve == 1) /* Si elle existe, affiche un message d'erreur */ + { + printf("Erreur, cette ville existe déjà !\n"); + } + else /* Sinon, appelle la fonction d'insertion */ + { + insererVille(tiut, ville, tLog, tMax, pos); + } } - else /* Sinon, demande confirmation, si confirmé, supprime la ville, sinon annule la suppression */ + if(select == 7) { - printf("Êtes-vous sur de vouloir supprimer cette ville ? (O/n)\nSaisie : "); /* Demande confirmation de la suppression */ - scanf("%c%*c", &choix); + printf("Quel est le nom de la ville à supprimer ?\nSaisie : "); /* Demande le nom de la ville à supprimer */ + scanf("%s%*c", ville); printf("\n"); - if(choix == 'N' || choix == 'n') /* Si le choix et non, annule la supression */ + pos = rechercheIUT(tiut, *tLog, ville, &trouve); /* Vérifie qu'elle existe */ + if(trouve == 0) /* Si elle n'existe pas, affiche un message d'erreur */ { - printf("Suppression annulée\n"); + printf("Erreur, cette ville n'existe pas !\n"); } - else + else /* Sinon, demande confirmation, si confirmé, supprime la ville, sinon annule la suppression */ { - supprimerVille(tiut, ville, tLog, pos); + printf("Êtes-vous sur de vouloir supprimer cette ville ? (O/n)\nSaisie : "); /* Demande confirmation de la suppression */ + scanf("%c%*c", &choix); + printf("\n"); + if(choix == 'N' || choix == 'n') /* Si le choix et non, annule la supression */ + { + printf("Suppression annulée\n"); + } + else + { + supprimerVille(tiut, ville, tLog, pos); + } } } } + if(select==8) { lancerPhaseCandidature(phaseCandidature); @@ -823,35 +845,41 @@ void menuCandidat(VilleIUT *tiut[], int *tLog, int tMax,Candidat *tCand[],int tM { afficheDeptDesIUT(tiut,*tLog); } - if(select == 5) - { - for(i = 0; i < tCand[pos]->nombreChoix; i++) - { - afficherChoix(tCand[pos]->tChoix[i]); - } - } - if(select == 6) - { - tCand[pos]->tChoix = insererChoix(tCand[pos]->tChoix, &tCand[pos]->nombreChoix); - for(i = 0; i < tCand[pos]->nombreChoix; i++) - { - afficherChoix(tCand[pos]->tChoix[i]); - } - clearpage(); - } - if(select == 7) - { - tCand[pos]->tChoix = supprimerChoix(tCand[pos]->tChoix, &tCand[pos]->nombreChoix); - for(i = 0; i < tCand[pos]->nombreChoix; i++) - { - afficherChoix(tCand[pos]->tChoix[i]); - } - clearpage(); - } - if(select == 8) + if(phaseCandidature==1) + { + if(select == 5) + { + for(i = 0; i < tCand[pos]->nombreChoix; i++) + { + afficherChoix(tCand[pos]->tChoix[i]); + } + } + if(select == 6) + { + tCand[pos]->tChoix = insererChoix(tCand[pos]->tChoix, &tCand[pos]->nombreChoix); + for(i = 0; i < tCand[pos]->nombreChoix; i++) + { + afficherChoix(tCand[pos]->tChoix[i]); + } + clearpage(); + } + if(select == 7) + { + tCand[pos]->tChoix = supprimerChoix(tCand[pos]->tChoix, &tCand[pos]->nombreChoix); + for(i = 0; i < tCand[pos]->nombreChoix; i++) + { + afficherChoix(tCand[pos]->tChoix[i]); + } + clearpage(); + } + } + if(phaseCandidature=2) { - miseAJourChoixCand(tCand[pos]->tChoix, tCand[pos]->nombreChoix); - } + if(select == 8) + { + miseAJourChoixCand(tCand[pos]->tChoix, tCand[pos]->nombreChoix); + } + } printf("______________________________________________________________\n"); printf("| MENU CANDIDAT |\n"); printf("|------------------------------------------------------------|\n"); @@ -1527,3 +1555,126 @@ int rechercherCandidat(Candidat *tCand[], int tMax, int numeroC, int *trouve) /* return inf; } +/**************************************** File d'attente ****************************************************/ +/************************************************************************************************************/ +/************************************************************************************************************/ + +FileCand filenouv(void) +{ + FileCand f; + f.t = NULL; + f.q = NULL; + return f; +} + +FileCand adjq(FileCand f, Candidat *c) +{ + MaillonCandidat *m; + m = (MaillonCandidat *)malloc(sizeof(MaillonCandidat)); + if(m == NULL) + { + printf("Erreur de malloc pour la file d'attente\n"); + exit(1); + } + m->c = c; + m->suiv = NULL; + if(videFile(f)) + { + f.t = m; + f.q = m; + return f; + } + f.q->suiv = m; + f.q = m; + return f; +} + +FileCand supt(FileCand f) +{ + MaillonCandidat *aux; + if(videFile(f)) + { + printf("Opération interdite\n"); + exit(1); + } + if(f.t == f.q) + { + free(f.t); + return filenouv(); + } + aux = f.t; + f.t = f.t->suiv; + free(aux); + return f; +} + +FileCand supCand(FileCand f, int numeroC) +{ + +} + +Candidat * tete(FileCand f) +{ + if(videFile(f)) + { + printf("File d'attente vide\n"); + exit(1); + } + return f.t->c; +} + +int longueur(FileCand f) +{ + int i = 0; + while(f.t != NULL) + { + f.t = f.t->suiv; + i++; + } + return i; +} + +int positionFileAttente(FileCand f, int numeroC) +{ + int i = 0; + while(f.t != NULL) + { + if(numeroC == f.t->c->numeroC) + { + return i; + } + f.t = f.t->suiv; + i++; + } + return i; +} + +bool vide(FileCand f) +{ + if(f.t == NULL && f.q == NULL) + return true; + return false; +} + +void afficher(FileCand f) +{ + printf("|----------------------------------------------------------------------------|\n"); + printf("| Liste d'attente |\n"); + printf("|----------------------------------------------------------------------------|\n"); + while(f.t != NULL) + { + printf("| %-4d | %-32s | %-32s |\n",f.t->c->numeroC, f.t->c->nom, f.t->c->prenom); + printf("|----------------------------------------------------------------------------|\n"); + f.t = f.t->suiv; + } + printf("\n"); +} + +bool videFile(FileCand f) +{ + if(f.t==f.q) + { + return true; + } + return false; +} \ No newline at end of file