intlogin(Candidat*tCand[],inttMax,int*numC,Candidat*c)/* Affiche un menu de connexion pour ensuite adapter l'affichage et les fonctionnalités au type d'utilisateur */
intlogin(Candidat*tCand[],int*tMax,int*pos)/* Affiche un menu de connexion pour ensuite adapter l'affichage et les fonctionnalités au type d'utilisateur */
{
{
inti=3,trouve,pos;
inti=3,trouve,numC;
charid,mdp[31]="mettez20svp",mdpatrouve[31]; /* Déclaration d'un motdepasse administrateur */
charid,mdp[31]="mettez20svp",mdpatrouve[31],choix; /* Déclaration d'un motdepasse administrateur */
system("clear");
system("clear");
printf("\t################################ Bienvenue! ################################\nSouhaitez-vous vous connecter en tant qu'utilisateur ou administeur ? (C/A)\nSaisie : ");
printf("\t################################ Bienvenue! ################################\nSouhaitez-vous vous connecter en tant qu'utilisateur ou administeur ? (C/A)\nSaisie : ");
scanf("%c%*c",&id);
scanf("%c%*c",&id);
@ -599,17 +599,32 @@ int login(Candidat *tCand[],int tMax,int *numC,Candidat *c) /* Affiche un menu d
}
}
if(id=='C'||id=='c')/* Si l'utilisateur sélectionne candidat, la fonction retourne 0 */
if(id=='C'||id=='c')/* Si l'utilisateur sélectionne candidat, la fonction retourne 0 */
{
{
printf("\nInsérer votre numéro de Candidat :\t");
printf("Êtes-vous déjà enregistré / Avez-vous un numéro de candidat ?(o/n)\t");
@ -828,8 +884,8 @@ void clearpage(void) /* Permet de demander à l'utilisateur pour continuer à la
voidglobale(void)/* Permet l'initialisation du tableau, le chargement de celui-ci et l'appel des fonctions login, menus et enregistrement */
voidglobale(void)/* Permet l'initialisation du tableau, le chargement de celui-ci et l'appel des fonctions login, menus et enregistrement */
{
{
inttLog,retour,tMax,numC,phaseCandidature=0;
inttLog,retour,tMax,numC,phaseCandidature=0,pos;
Candidat**tCand,*c;
Candidat**tCand;
VilleIUT*tiut[100];/* Déclaration du tableau de pointeurs tiut */
VilleIUT*tiut[100];/* Déclaration du tableau de pointeurs tiut */
if(tiut==NULL)/* En cas de problème de mémoire, affiche un message d'erreur et quitte le programme */
if(tiut==NULL)/* En cas de problème de mémoire, affiche un message d'erreur et quitte le programme */
{
{
@ -846,7 +902,7 @@ void globale(void) /* Permet l'initialisation du tableau, le chargement de celui
tCand=chargementCandidats(&tMax);
tCand=chargementCandidats(&tMax);
triCandidats(tCand,tMax);
triCandidats(tCand,tMax);
retour=login(tCand,tMax,&numC,c);/* Appelle la fonction login */
retour=login(tCand,&tMax,&pos);/* Appelle la fonction login */
while(retour!=-1)/* Tant que login ne retourne pas -1, la fonction appelle le menu adaptée en fonction du retour de login puis appelle de nouveau login */
while(retour!=-1)/* Tant que login ne retourne pas -1, la fonction appelle le menu adaptée en fonction du retour de login puis appelle de nouveau login */
{
{
if(retour==1)
if(retour==1)
@ -855,79 +911,13 @@ void globale(void) /* Permet l'initialisation du tableau, le chargement de celui
printf("Quel est votre numéro de candidat ?\nSaisie : ");/* Demande à l'utilisateur le numéro du candidat pour l'insertion */
scanf("%d%*c",&numeroC);
printf("\n");
*pos=rechercherCandidat(tCand,*tMax,numeroC,&trouve);/* Vérifie que le numero de candidat n'existe pas déjà */
if(trouve==1)
{
printf("Erreur, votre numéro de candidat existe déjà dans la base de données\n");
returntCand;
}
c=(Candidat*)malloc(sizeof(Candidat));/* Allocation dynamique du candidat à insérer */
if(c==NULL)
{
printf("Erreur d'allocation mémoire lors de l'insertion du candidat\n");
returntCand;
}
printf("Quel est votre nom ?\n");
scanf("%s%*c",nom);
printf("\n");
printf("Quel est votre prenom ?\n");
scanf("%s%*c",prenom);
printf("\n");
printf("Quel est votre moyenne de maths ?\n");
scanf("%f%*c",¬es[0]);
printf("\n");
printf("Quel est votre moyenne de français ?\n");
scanf("%f%*c",¬es[1]);
printf("\n");
printf("Quel est votre moyenne d'anglais ?\n");
scanf("%f%*c",¬es[2]);
printf("\n");
printf("Quel est votre moyenne de spécialité ?\n");
scanf("%f%*c",¬es[3]);
printf("\n");
c->numeroC=numeroC;
strcpy(c->nom,nom);/* Ajout des valeurs dans le candidat à insérer */
strcpy(c->prenom,prenom);
c->notes[0]=notes[0];
c->notes[1]=notes[1];
c->notes[2]=notes[2];
c->notes[3]=notes[3];
tCand=reallocationCand(tCand,*tMax);/* Réallocation du tableau de candidats pour ajouter une place */
for(i=*tMax;i>*pos;i--)/* Décalage à droite des éléments du tableau à partir de la position d'insertion */
{
tCand[i]=tCand[i-1];
}
tCand[*pos]=c;/* Ajout du candidat dans le tableau */
*tMax=*tMax+1;/* Mise à jour de la taille physique du tableau */
returntCand;
}
Choix**insererChoix(Choix*tChoix[],int*nombreChoix)/* Fonction permettant d'ajouter un nouveau choix dans un tableau de choix et retournant le tableau*/
Choix**insererChoix(Choix*tChoix[],int*nombreChoix)/* Fonction permettant d'ajouter un nouveau choix dans un tableau de choix et retournant le tableau*/
{
{
intpos,trouve,i;
intpos,trouve,i;
@ -1481,87 +1527,3 @@ int rechercherCandidat(Candidat *tCand[], int tMax, int numeroC, int *trouve) /*
returninf;
returninf;
}
}
/********************************** Fonction globale et menus ***********************************************/