|
|
|
@ -9,6 +9,8 @@
|
|
|
|
|
|
|
|
|
|
#define LEN_MAX 30
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//STRUCTURES
|
|
|
|
|
typedef struct {
|
|
|
|
|
char ville[LEN_MAX], departement[LEN_MAX];
|
|
|
|
|
int decision, validation;
|
|
|
|
@ -26,19 +28,94 @@ typedef struct {
|
|
|
|
|
|
|
|
|
|
typedef Candidat** ListeCandidats;
|
|
|
|
|
|
|
|
|
|
//FONCTIONS ET DOCUMENTATION
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
\brief Alloue de la memoire de la taille d'une structure Candidat avec un malloc
|
|
|
|
|
\return retourne l'adresse générée par le malloc
|
|
|
|
|
*/
|
|
|
|
|
Candidat* creerCandidat(void);
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
\brief Alloue de la memoire de la taille d'une structure Candidature avec un malloc avec les valeurs par défaut à 0 pour les variables décision & valisation
|
|
|
|
|
\return retourne l'adresse générée par le malloc
|
|
|
|
|
*/
|
|
|
|
|
Candidature* creerCandidature(void);
|
|
|
|
|
|
|
|
|
|
void ajouterCandidat(ListeCandidats* liste, int* nbCandidats, Candidat* candidat);
|
|
|
|
|
/**
|
|
|
|
|
\brief Ajoute l'adresse du candidat dans le tableau de pointeur "liste".
|
|
|
|
|
\param listePointer Adresse du tableau de pointeur sur la structure Candidat
|
|
|
|
|
\param nbCandidats Nombre de candidats dans le fichier texte candidats.don
|
|
|
|
|
\param candidat Candidat à ajouter
|
|
|
|
|
*/
|
|
|
|
|
void ajouterCandidat(ListeCandidats* listePointer, int* nbCandidats, Candidat* candidat);
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
\brief Ajoute une candidature dans la liste des candidatures associées au candidat correspondant dans les paramètres de la fonction
|
|
|
|
|
\param candidat Candidat dont on veut ajouter une cadidature
|
|
|
|
|
\param candidature Candidature à ajouter
|
|
|
|
|
*/
|
|
|
|
|
void ajouterCandidature(Candidat* candidat, Candidature* candidature);
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
\brief Permet au candidat de déposer une candidature
|
|
|
|
|
\param tiut Tableau de pointeur sur la structure VilleIUT
|
|
|
|
|
\param nbVilles Pointeur sur le nombre de villes ayant un IUT
|
|
|
|
|
\param candidat Candidat qui veut déposer une candidature
|
|
|
|
|
*/
|
|
|
|
|
void menuCandidat_candidater(VilleIUT** tiut, int nbVilles, Candidat* candidat);
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
\brief Verifie si la candidature à ajouter n'existe pas déjà
|
|
|
|
|
\param candidat Candidat dont on veut ajouter une cadidature
|
|
|
|
|
\param candidature Candidature à vérifier
|
|
|
|
|
\return Retourne -1 si la candidature existe déjà et 0 sinon
|
|
|
|
|
*/
|
|
|
|
|
int checkCandidature(Candidat* candidat, Candidature candid);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
\brief Affiche tous les candidats triés par nom
|
|
|
|
|
\param liste Tableau de pointeur sur la structure Candidat
|
|
|
|
|
\param nbCandidats Nombre de candidats dans la liste des candidats
|
|
|
|
|
*/
|
|
|
|
|
void afficherListeCandidats(ListeCandidats liste, int nbCandidats);
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
\brief Affiche un candidat précis
|
|
|
|
|
\param candidat Candidat que l'utilisateur choisi d'afficher
|
|
|
|
|
*/
|
|
|
|
|
void afficherCandidat(Candidat* candidat);
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
\brief Affiche toutes les candidatures d'un seul candidat
|
|
|
|
|
\param candidatures Tableau de pointeur sur les candidatures d'un candidat
|
|
|
|
|
\param nbCandidatures Nombre de candidatures dans la liste des candidatures du candidat
|
|
|
|
|
*/
|
|
|
|
|
void afficherCandidatures(ListeCandidatures candidatures, int nbCandidatures);
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
\brief Lit la liste des candidats dans le fichier texte candidats.don puis les met dans la structure ListeCandidats
|
|
|
|
|
\param nbCandidats Nombre de candidats dans le fichier candidats.don
|
|
|
|
|
\return Renvoie la liste des candidats
|
|
|
|
|
*/
|
|
|
|
|
ListeCandidats readCandidats(int* nbCandidats);
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
\brief Enregistre la liste des candidats dans le fichier texte candidats.don
|
|
|
|
|
\param liste Tableau de pointeur sur la structure Candidat
|
|
|
|
|
\param nbCandidats Nombre de candidats dans la liste des candidats
|
|
|
|
|
\return Renvoie -1 si il y aeu un problème de lecture du fichier et 0 si la fonction a fonctionné
|
|
|
|
|
*/
|
|
|
|
|
int saveCandidats(ListeCandidats liste, int nbCandidats);
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
\brief Compare deux candidats suivant l'ordre alphabetique
|
|
|
|
|
\param c1 Candidat 1
|
|
|
|
|
\param c2 Candidat 2
|
|
|
|
|
\return <0 si le candidat 1 est avant le candidat 2 dand l'ordre alphabetique, >0 si le candidat 2 est avant le candidat 1 dand l'ordre alphabetique et 0 si ils sont homonymes
|
|
|
|
|
*/
|
|
|
|
|
int compareCandidats(const void* c1, const void* c2);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void test2(void);
|