@ -533,60 +533,6 @@ void menuPrincipal(/* TODO: prise en compte des status actuels du recrutement */
}
}
// FONCTIONS MENU RESP
void menuResponsable_traiterCandidatures ( VilleIUT * * tiut , int nbVilles , ListeCandidats liste , int nbCandidats ) {
char dept [ LEN_MAX ] , ville [ LEN_MAX ] , choix , poubelle ;
int nbCandidatsAccept , pos , verif ;
ListeDept ldept ;
strcpy ( dept , " Informatique " ) ;
strcpy ( ville , " Clermont-Ferrand " ) ;
printf ( " \n \ e[3;32mLes deux prochaines lignes sont affichées à titre informatif \ e[0m \n \n " ) ;
printf ( " Entrez le nom de la ville que vous souhaitez traiter : %s \n " , ville ) ;
printf ( " Quel département souhaitez-vous modifier ? : %s \n " , dept ) ;
printf ( " \n \ e[1;32mTraitement des candidatures pour le département '%s' de l'IUT '%s' \n \n \ e[0m " , dept , ville ) ;
printf ( " Combien de candidats souhaitez-vous accepter ? : " ) ;
if ( scanf ( " %d " , & nbCandidatsAccept ) = = 0 ) {
while ( ( poubelle = getchar ( ) ) ! = ' \n ' & & poubelle ! = EOF ) ;
fprintf ( stderr , " \n \ e[0;91mErreur : la valeur entrée est invalide, merci de réessayer plus tard. \n \n \ e[0m " ) ;
return ;
}
pos = rechercherVille ( tiut , nbVilles , ville ) ;
ldept = tiut [ pos ] - > ldept ;
while ( ldept ! = NULL & & strcmp ( ldept - > departement , dept ) ! = 0 )
ldept = ldept - > suiv ;
if ( ldept - > noteMinimale = = - 1 ) {
printf ( " \n \ e[1;91mAttention, après avoir entré cette valeur, elle ne sera plus modifiable ! \ e[0m \n \n Quelle est la note minimale pour l'acception du candidat ? : " ) ;
verif = scanf ( " %f " , & ldept - > noteMinimale ) ;
while ( ( ldept - > noteMinimale ) < 0 | | ( ldept - > noteMinimale ) > 20 | | verif = = 0 ) {
fprintf ( stderr , " \ e[0;91mLa note entrée est incorrecte \n \ e[0mEntrez une note minimale entre 0 et 20 : " ) ;
verif = scanf ( " %f " , & ldept - > noteMinimale ) ;
}
}
printf ( " \n Merci de confirmer : Il faut accepter %d candidat avec une note minimale de %.2f (O/N) ? : " , nbCandidatsAccept , ldept - > noteMinimale ) ;
scanf ( " %*c%c " , & choix ) ;
if ( choix = = ' n ' | | choix = = ' N ' )
printf ( " \n \ e[1mAnnulation de l'opération. \ e[0m \n \n " ) ;
else
if ( choix = = ' o ' | | choix = = ' O ' )
traiterCandidatures ( tiut , nbVilles , liste , nbCandidats , nbCandidatsAccept , ldept - > noteMinimale ) ;
else {
while ( ( poubelle = getchar ( ) ) ! = ' \n ' & & poubelle ! = EOF ) ;
fprintf ( stderr , " \n \ e[0;91mErreur : la valeur entrée est invalide, merci de réessayer plus tard. \n \n \ e[0m " ) ;
}
}
// FONCTIONS MENU ADMIN
// FONCTIONS MENU ADMIN
@ -737,81 +683,6 @@ void menuAdmin_modifierResponsable(VilleIUT** tiut, int nbVilles) {
}
}
}
}
// FONCTION MENU CANDIDAT
void menuCandidat_suivreCandidature ( ListeCandidats liste , int nbCandidats , Candidat * candidat ) {
int i , j , mustReply = 0 , nbPropositions = 0 ;
char reponse1 , reponse2 , poubelle ;
// Création d'une liste qui va contenir les candidatures pour lesquelles le candidat a été accepté
// (pour le moment, seul une proposition peut être faite étant donné que seul le département Informatique de Clermont-Ferrand est habilité à donner une réponse)
ListeCandidatures propositions = ( ListeCandidatures ) malloc ( candidat - > nbCandidatures * sizeof ( Candidature * ) ) ;
if ( propositions = = NULL ) {
perror ( " malloc " ) ;
exit ( errno ) ;
}
if ( candidat - > nbCandidatures = = 0 )
fprintf ( stderr , " \ e[0;91mErreur : vous n'avez aucune candidature en cours, merci de réessayer plus tard. \n \ e[0m " ) ;
else
afficherCandidatures ( candidat - > listeCandidatures , candidat - > nbCandidatures ) ;
for ( i = 0 ; i < candidat - > nbCandidatures ; i + + )
if ( candidat - > listeCandidatures [ i ] - > decision = = 1 & & candidat - > listeCandidatures [ i ] - > validation = = 0 ) {
mustReply = 1 ;
propositions [ nbPropositions + + ] = candidat - > listeCandidatures [ i ] ;
}
if ( mustReply = = 1 ) {
printf ( " Vous avez %d candidature(s) contenant une proposition d'admission, souhaitez-vous y répondre ? (O/N) : " , nbPropositions ) ;
scanf ( " %*c%c " , & reponse1 ) ;
for ( i = 0 ; i < nbPropositions ; i + + ) {
if ( reponse1 = = ' o ' | | reponse1 = = ' O ' ) {
afficherCandidatures ( propositions + i , 1 ) ;
printf ( " \n Souhaitez-vous accepter ou refuser cette proposition ? (A/R) : " ) ;
scanf ( " %*c%c " , & reponse2 ) ;
if ( reponse2 = = ' a ' | | reponse2 = = ' A ' ) {
printf ( " \n \ e[1;32mProposition pour le département '%s' à l'IUT '%s' acceptée ! \ e[0m \n " ,
propositions [ i ] - > departement , propositions [ i ] - > ville ) ;
for ( j = 0 ; j < candidat - > nbCandidatures ; j + + ) {
candidat - > listeCandidatures [ j ] - > decision = - 1 ;
candidat - > listeCandidatures [ j ] - > validation = - 1 ;
}
propositions [ i ] - > decision = 1 ;
propositions [ i ] - > validation = 1 ;
break ;
} else {
if ( reponse2 = = ' r ' | | reponse2 = = ' R ' )
printf ( " \n \ e[1;32mProposition pour le département '%s' à l'IUT '%s' refusée ! \ e[0m \n " ,
propositions [ i ] - > departement , propositions [ i ] - > ville ) ;
else {
while ( ( poubelle = getchar ( ) ) ! = ' \n ' & & poubelle ! = EOF ) ;
fprintf ( stderr , " \n \ e[0;91mErreur : la réponse saisie est incorrecte. Merci de réessayer plus tard. \n \ e[0m " ) ;
break ;
}
}
} else {
if ( reponse1 = = ' n ' | | reponse1 = = ' N ' )
printf ( " \n \t \ e[1mTrès bien. Vous pouvez toujours donner votre réponse ultérieurement. \ e[0m \n " ) ;
else {
while ( ( poubelle = getchar ( ) ) ! = ' \n ' & & poubelle ! = EOF ) ;
fprintf ( stderr , " \n \ e[0;91mErreur : la réponse saisie est incorrecte. Merci de réessayer plus tard. \n \ e[0m " ) ;
break ;
}
}
}
}
free ( propositions ) ;
}
VilleIUT * creerVille ( void ) {
VilleIUT * creerVille ( void ) {
VilleIUT * ville = ( VilleIUT * ) malloc ( sizeof ( VilleIUT ) ) ;
VilleIUT * ville = ( VilleIUT * ) malloc ( sizeof ( VilleIUT ) ) ;
@ -1161,34 +1032,4 @@ VilleIUT** readVilles(int* nbVilles) {
fclose ( fe ) ;
fclose ( fe ) ;
return tiut ;
return tiut ;
}
int readStatus ( void ) {
int status ;
FILE * fe = fopen ( " donnees/status.don " , " r " ) ;
if ( fe = = NULL ) {
perror ( " fopen " ) ;
exit ( errno ) ;
}
fscanf ( fe , " %d " , & status ) ;
fclose ( fe ) ;
return status ;
}
void saveStatus ( int status ) {
FILE * fe = fopen ( " donnees/status.don " , " w " ) ;
if ( fe = = NULL ) {
perror ( " fopen " ) ;
exit ( errno ) ;
}
fprintf ( fe , " %d " , status ) ;
fclose ( fe ) ;
}
}