-Menu candidat fonctionnel, -saisieCandidature -existedept -Changements de supprimer et ajouter candidatures : Enleve et rajoute 1 respectivement DANS la fonction pour nbchoix du candidats -Plus de clean et appuyer pour continuer pour afficherVillesIuta
commit
78ae3d0fb9
@ -0,0 +1,103 @@
|
||||
#include "../header/sae.h"
|
||||
|
||||
// ==============================================================================
|
||||
// Partie 4
|
||||
// ==============================================================================
|
||||
|
||||
/**
|
||||
* @brief Affiche une liste de candidats après l'avoir triée par ordre alphabétique
|
||||
*
|
||||
* @param lcand liste de candidats à trier et afficher
|
||||
* @param type type de liste à afficher ( en attente ou admis )
|
||||
* @param nomDept nom du departement dont est issu la liste
|
||||
*/
|
||||
void affichageListesDept( ListeCandidats lcand, char * type, char * nomDept )
|
||||
{
|
||||
lcand = trierListeCandidats( lcand );
|
||||
|
||||
printf( " Liste des candidats %s du departement %10s \n -------------------------------------------------------\n\n", type, nomDept);
|
||||
|
||||
while ( lcand != NULL)
|
||||
{
|
||||
printf(" | Nom : %10s | Prenom : %10s | Numero : %8s |\n",
|
||||
lcand -> candidat.nom, lcand -> candidat.prenom, lcand -> candidat.numero);
|
||||
|
||||
lcand = lcand -> suiv;
|
||||
}
|
||||
}
|
||||
/**
|
||||
* @brief Trie par ordre alphabétique les candidats d'une liste
|
||||
*
|
||||
* @param l liste de candidats à trier.
|
||||
*
|
||||
* @return La liste triée
|
||||
*/
|
||||
ListeCandidats trierListeCandidats( ListeCandidats l )
|
||||
{
|
||||
ListeCandidats nvL;
|
||||
|
||||
while ( l != NULL )
|
||||
{
|
||||
nvL = insertionCroissanteCand( nvL, l );
|
||||
l = l -> suiv;
|
||||
}
|
||||
|
||||
return nvL;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Permet d'insérer un nouveau Maillon de candidats dans la liste par ordre alphabétique
|
||||
* @param l la liste dont est issu le maillon à insérer
|
||||
* @param nvL la nouvelle liste où est inséré le maillon
|
||||
*
|
||||
* @return La nouvelle liste avec le maillon au bon endroit
|
||||
*/
|
||||
ListeCandidats insertionCroissanteCand( ListeCandidats nvL, ListeCandidats l )
|
||||
{
|
||||
if ( l == NULL)
|
||||
{
|
||||
nvL = insertionTeteCand( nvL, l );
|
||||
return nvL;
|
||||
}
|
||||
|
||||
if ( strcmp( l -> candidat.nom, nvL -> candidat.nom ) < 0 )
|
||||
{
|
||||
nvL = insertionTeteCand( nvL, l );
|
||||
return nvL;
|
||||
}
|
||||
|
||||
if ( strcmp( l -> candidat.nom, nvL -> candidat.nom ) == 0 )
|
||||
{
|
||||
if ( strcmp( l -> candidat.prenom, nvL -> candidat.prenom ) < 0 )
|
||||
{
|
||||
nvL = insertionTeteCand( nvL, l );
|
||||
return nvL;
|
||||
}
|
||||
}
|
||||
|
||||
nvL -> suiv = insertionCroissanteCand( nvL -> suiv, l );
|
||||
return nvL;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Insère en tête de la nouvelle liste un nouveau maillon
|
||||
* @param l liste d'où est issu le nouveau maillon à intégrer
|
||||
* @param nvL Liste où est insérer le nouveau Maillon
|
||||
* @return La nouvelle liste avec le maillon au bon endroit
|
||||
*/
|
||||
ListeCandidats insertionTeteCand( ListeCandidats nvL, ListeCandidats l )
|
||||
{
|
||||
MaillonCandidat * m = ( MaillonCandidat * ) malloc ( sizeof( MaillonCandidat ));
|
||||
if ( m == NULL )
|
||||
{
|
||||
printf("\n -> Erreur allocation memoire...\n");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
m -> candidat = l -> candidat;
|
||||
m -> suiv = nvL;
|
||||
nvL = m;
|
||||
free( l );
|
||||
|
||||
return nvL;
|
||||
}
|
Loading…
Reference in new issue