voidmiseAJourChoixResp(Choix*tChoix[],intpos)/* Fontcion permettant de mettre à jour la décision d'un responsable d'admission concernant un candidat */
/*void miseAJourChoixResp(Choix *tChoix[], int pos) Fontcion permettant de mettre à jour la décision d'un responsable d'admission concernant un candidat
{
{
intsaisie;
intsaisie;
system("clear");
system("clear");
if(tChoix[pos]->decisionCand==0)/* Affichage d'un menu adapté pour chaque cas ; le candidat peut choisir entre deux option ou bien ne rien faire */
if(tChoix[pos]->decisionCand==0)Affichage d'un menu adapté pour chaque cas ; le candidat peut choisir entre deux option ou bien ne rien faire
{
{
printf("Votre décision est actuellement en attente\n\n");
printf("Votre décision est actuellement en attente\n\n");
ListeDeptlisteDeptNouv(void)/*Permet de créer un liste vide puis la retourne à la fonction appelante.*/
{
ListeDeptlDept;
lDept=NULL;
returnlDept;
}
ListeDeptinsererEntete(ListeDeptlDept,Departementd)/*Permet d'insérer un MaillonDept en début d'une liste passée en paramètre puis renvoie cette même liste*/
{
MaillonDept*m;/* Création d'un pointeur vers une structure MaillonDept */
m=(MaillonDept*)malloc(sizeof(MaillonDept));/* Allocation d'un espace mémoire pour le nouveau maillon */
if(m==NULL)
{
printf("Problème d'allocation mémoire lors de l'insertion\n");/* Message d'erreur en cas de problème de malloc */
exit(1);
}
m->d=d;/* Affecte le département passé en paramètre à l'attribut d du nouveau maillon */
m->suiv=lDept;
returnm;
}
ListeDeptinsererDept(ListeDeptlDept,Departementd)/* Permet d'insérer un maillon dans une liste donnée en paramètre dans l'ordre alpĥabétique/croissant et retourne cette liste */
{
if(lDept==NULL)/* Si la liste est vide, insère le nouveau maillon en tête */
{
returninsererEntete(lDept,d);
}
if(strcmp(d.dept,lDept->d.dept)<0)/* Si le nom du département est inférieur à celui de la liste testé, le maillon est inséré en tête*/
{
returninsererEntete(lDept,d);
}
if(strcmp(d.dept,lDept->d.dept)==0)/* Si le maillon existe déjà, retourne la liste sans changement */
{
printf("Département déjà présent dans cet IUT\n");
returnlDept;
}
lDept->suiv=insererDept(lDept->suiv,d);/* Si aucun cas précédent n'est respecté, recommence avec le maillon suivant de la liste */
returnlDept;
}
ListeDeptsupprimerEntete(ListeDeptlDept)/* Permet de supprimer un maillon en tête de la liste donnée en paramètre et retourne cette liste */
{
ListeDeptaux;
if(lDept==NULL)/* Si la liste est vide, quitte le programme car cela provoquerait une erreur */
{
printf("Opération interdite\n");
exit(1);
}
aux=lDept;/* On affecte l'adresse de la liste actuelle à une variable temporaire */
lDept=lDept->suiv;/* On supprime le maillon */
free(aux);/* On libère l'espace mémoire du maillon supprimer*/
returnlDept;
}
ListeDeptsupprimerDept(ListeDeptlDept,char*dep)/* Permet de supprimer un maillon d'une liste lDept passée en paramètre à partir de son attribut nom de département (dept) et retourne cette liste */
{
if(lDept==NULL)/* La liste est vide, on la retourne sans changements */
{
returnlDept;
}
if(strcmp(dep,lDept->d.dept)<0)/* Le maillon à supprimer n'existe pas, on retourne la liste sans changement */
{
returnlDept;
}
if(strcmp(dep,lDept->d.dept)==0)/* Le maillon à supprimer est trouvé, on le supprime */
{
returnsupprimerEntete(lDept);
}
lDept->suiv=supprimerDept(lDept->suiv,dep);/* Aucune des conditions précédentes n'a été respectée, on recommence avec le maillon suivant */
returnlDept;
}
intlongueur(ListeDeptlDept)/* Permet d'obtenir la longueur d'une liste passée en paramètre et retourne le nombre de maillons */
{
intcompt=0;/* On déclare un compteur pour compter le nombre de maillons */
while(lDept!=NULL)/* Tant que la liste n'est pas vide, on incrémente le compteur de 1 et on passe au maillon suivant */
{
compt=compt+1;
lDept=lDept->suiv;
}
returncompt;
}
boolvide(ListeDeptlDept)/* Permet de savoir si une liste est vide et retourne un booléen */
{
if(lDept==NULL)
returntrue;
returnfalse;
}
/********************************** Fonction globale et menus ***********************************************/
/********************************** Fonction globale et menus ***********************************************/
voidmiseAJourChoixResp(Choix*tChoix[],intpos)/* Fontcion permettant de mettre à jour la décision d'un responsable d'admission concernant un candidat */
/*void miseAJourChoixResp(Choix *tChoix[], int pos) Fontcion permettant de mettre à jour la décision d'un responsable d'admission concernant un candidat
{
{
intsaisie;
intsaisie;
system("clear");
system("clear");
if(tChoix[pos]->decisionCand==0)/* Affichage d'un menu adapté pour chaque cas ; le candidat peut choisir entre deux option ou bien ne rien faire */
if(tChoix[pos]->decisionCand==0)Affichage d'un menu adapté pour chaque cas ; le candidat peut choisir entre deux option ou bien ne rien faire
{
{
printf("Votre décision est actuellement en attente\n\n");
printf("Votre décision est actuellement en attente\n\n");
ListeDeptlisteDeptNouv(void)/*Permet de créer un liste vide puis la retourne à la fonction appelante.*/
{
ListeDeptlDept;
lDept=NULL;
returnlDept;
}
ListeDeptinsererEntete(ListeDeptlDept,Departementd)/*Permet d'insérer un MaillonDept en début d'une liste passée en paramètre puis renvoie cette même liste*/
{
MaillonDept*m;/* Création d'un pointeur vers une structure MaillonDept */
m=(MaillonDept*)malloc(sizeof(MaillonDept));/* Allocation d'un espace mémoire pour le nouveau maillon */
if(m==NULL)
{
printf("Problème d'allocation mémoire lors de l'insertion\n");/* Message d'erreur en cas de problème de malloc */
exit(1);
}
m->d=d;/* Affecte le département passé en paramètre à l'attribut d du nouveau maillon */
m->suiv=lDept;
returnm;
}
ListeDeptinsererDept(ListeDeptlDept,Departementd)/* Permet d'insérer un maillon dans une liste donnée en paramètre dans l'ordre alpĥabétique/croissant et retourne cette liste */
{
if(lDept==NULL)/* Si la liste est vide, insère le nouveau maillon en tête */
{
returninsererEntete(lDept,d);
}
if(strcmp(d.dept,lDept->d.dept)<0)/* Si le nom du département est inférieur à celui de la liste testé, le maillon est inséré en tête*/
{
returninsererEntete(lDept,d);
}
if(strcmp(d.dept,lDept->d.dept)==0)/* Si le maillon existe déjà, retourne la liste sans changement */
{
printf("Département déjà présent dans cet IUT\n");
returnlDept;
}
lDept->suiv=insererDept(lDept->suiv,d);/* Si aucun cas précédent n'est respecté, recommence avec le maillon suivant de la liste */
returnlDept;
}
ListeDeptsupprimerEntete(ListeDeptlDept)/* Permet de supprimer un maillon en tête de la liste donnée en paramètre et retourne cette liste */
{
ListeDeptaux;
if(lDept==NULL)/* Si la liste est vide, quitte le programme car cela provoquerait une erreur */
{
printf("Opération interdite\n");
exit(1);
}
aux=lDept;/* On affecte l'adresse de la liste actuelle à une variable temporaire */
lDept=lDept->suiv;/* On supprime le maillon */
free(aux);/* On libère l'espace mémoire du maillon supprimer*/
returnlDept;
}
ListeDeptsupprimerDept(ListeDeptlDept,char*dep)/* Permet de supprimer un maillon d'une liste lDept passée en paramètre à partir de son attribut nom de département (dept) et retourne cette liste */
{
if(lDept==NULL)/* La liste est vide, on la retourne sans changements */
{
returnlDept;
}
if(strcmp(dep,lDept->d.dept)<0)/* Le maillon à supprimer n'existe pas, on retourne la liste sans changement */
{
returnlDept;
}
if(strcmp(dep,lDept->d.dept)==0)/* Le maillon à supprimer est trouvé, on le supprime */
{
returnsupprimerEntete(lDept);
}
lDept->suiv=supprimerDept(lDept->suiv,dep);/* Aucune des conditions précédentes n'a été respectée, on recommence avec le maillon suivant */
returnlDept;
}
intlongueur(ListeDeptlDept)/* Permet d'obtenir la longueur d'une liste passée en paramètre et retourne le nombre de maillons */
{
intcompt=0;/* On déclare un compteur pour compter le nombre de maillons */
while(lDept!=NULL)/* Tant que la liste n'est pas vide, on incrémente le compteur de 1 et on passe au maillon suivant */
{
compt=compt+1;
lDept=lDept->suiv;
}
returncompt;
}
boolvide(ListeDeptlDept)/* Permet de savoir si une liste est vide et retourne un booléen */
{
if(lDept==NULL)
returntrue;
returnfalse;
}
/********************************** Fonction globale et menus ***********************************************/
/********************************** Fonction globale et menus ***********************************************/