diff --git a/Msae.h b/Msae.h index 17925ea..9202355 100644 --- a/Msae.h +++ b/Msae.h @@ -1,65 +1,155 @@ #include +#include #include #include -#include - -//######### Définition des types ############# typedef struct { char dept[31]; int nbP; char respAd[31]; -}Departement; +} Departement; typedef struct maillonDept { Departement d; struct maillonDept *suiv; -}MaillonDept,*ListeDept; +} MaillonDept,*ListeDept; typedef struct { char nom[31]; ListeDept lDept; -}VilleIUT; +} VilleIUT; + +typedef struct +{ + char ville[31]; + char dep[31]; + int decisionResp; + int decisionCand; +} Choix; + + +typedef struct +{ + int numeroC; + char nom[31]; + char prenom[31]; + float notes[4]; + int nombreChoix; + Choix **tChoix; +} Candidat; + + +/* Fonctions de Chargement */ -//########## fonction commune ############### int chargement(VilleIUT *tiut[],int tMax); Departement lireDep(FILE *flot); +void enregistrement(VilleIUT *tiut[], int tLog); -int login(void); -void globale(void); -void clearpage(void); - +/* Fonctions d'affichage */ -//########## fonction affichage ############## void afficherPlace(Departement d); void afficherDep(Departement d); -void afficherVilleDep(VilleIUT v); -void afficherTIUT(VilleIUT *tiut[], int tLog); void afficherVille(VilleIUT v); +void afficherTIUT(VilleIUT *tiut[], int tLog); +void afficherVilleDep(VilleIUT v); void afficheDeptDesIUT(VilleIUT *tiut[], int tLog); -//########## fonction de mise à jour ########### -void miseAJourGlobale(VilleIUT *tiut[], int tLog); -void miseAJourNomDept(Departement d,ListeDept l); -void miseAJourResp(Departement d); -void miseAJourPlaces(Departement d); +/* Fonctions de Listes */ -//########## fonctions d'insertion ############## +ListeDept listeDeptNouv(void); +ListeDept insererEntete(ListeDept lDept,Departement d); ListeDept insererDept(ListeDept lDept, Departement d); -int insererVille(VilleIUT *tiut[], char nomV[], Departement d, int *tLog, int tMax, int pos); +ListeDept supprimerEntete(ListeDept lDept); +ListeDept supprimerDept(ListeDept lDept, char *dep); +bool vide(ListeDept lDept); +int longueur(ListeDept lDept); + +/* Fonctions de département */ + +void creerDept(VilleIUT *tiut[],int tLog); +void retirerDept(VilleIUT *tiut[], int tLog); + +/* Fonctions de gestion du tableau */ + +int insererVille(VilleIUT *tiut[], char nomV[], int *tLog, int tMax, int pos); +int supprimerVille(VilleIUT *tiut[], char nomV[], int *tLog, int pos); + +/* Fonctions de recherche */ -//########## fonction de recherche ############## ListeDept rechercherDept(ListeDept lDept, char dept[], int *trouve); int rechercheIUT(VilleIUT *tiut[], int tLog, char ville[], int *trouve); -//########## fonction liste ############## -ListeDept listeDeptNouv(void); -ListeDept insererEntete(ListeDept lDept,Departement d); -ListeDept supprimerEntete(ListeDept lDept); -ListeDept supprimerDept(ListeDept lDept, Departement d); -bool vide(ListeDept lDept); -int longueur(ListeDept lDept); \ No newline at end of file +/* Fonctions de mise à jour */ + +void miseAJourGlobale(VilleIUT *tiut[], int tLog); +void miseAJourNomDept(Departement *d,ListeDept l); +void miseAJourResp(Departement *d); +void miseAJourPlaces(Departement *d); + +void lancerPhaseCandidature(int *phaseCandidature); +// ########################################################################################### +// ########################################################################################### +// ################################ Commun au 2 parties ###################################### +// ########################################################################################### +// ########################################################################################### + +int login(Candidat *tCand[],int tMax,int *numC,Candidat *c); +void menuAdmin(VilleIUT *tiut[], int *tLog, int tMax, int *phaseCandidature); +void menuCandidat(VilleIUT *tiut[], int *tLog, int tMax,Candidat *tCand[],int tMaxC,Candidat *c,int phaseCandidature); +void clearpage(void); +void globale(void); + + +// ########################################################################################### +// ########################################################################################### +// ################################ Partie II ################################################ +// ########################################################################################### +// ########################################################################################### + + +/* Fonctions de Chargement et sauvegarde*/ + +Candidat ** chargementCandidats(int *tMax); +Candidat * lireCandidat(FILE *flot); +Choix * lireChoix(FILE *flot); +void sauvegarder(Candidat *tCand[], int tMax); + +/* Fonctions d'affichage*/ + +void afficherCandidat(Candidat *c); +void afficherChoix(Choix *c); +void afficherCandChoix(Candidat *tCand[],int tMax); +void afficherCandDep(Candidat *tCand[], int tMax); + +/* Fonctions de réallocation */ + +Candidat ** reallocationCand(Candidat *tCand[], int tMax); +Choix ** reallocationChoix(Choix *tChoix[], int nbChoix); + +/* Fonctions de tri */ + +void triCandidats(Candidat *tCand[], int tMax); +int plusGrandCand(Candidat *tCand[], int tMax); +void echangerCand(Candidat *tCand[], int i, int j); +void triChoix(Choix *tChoix[], int nombreChoix); +int plusGrandChoix(Choix *tChoix[], int nombreChoix); +void echangerChoix(Choix *tChoix[], int i, int j); + +/* Fonctions de recherche */ + +int rechercherChoix(Choix *tChoix[], int nombreChoix, char ville[], char dep[], int *trouve); +int rechercherCandidat(Candidat *tCand[], int tMax, int numeroC, int *trouve); + +/* Fonctions d'insertion/suppresion/maj*/ + +Choix ** insererChoix(Choix *tChoix[], int *nombreChoix); +Choix ** supprimerChoix(Choix *tChoix[], int *nombreChoix); +void miseAJourChoixCand(Choix *tChoix[], int nombreChoix); + +/* Fonctions globale, menus*/ +void globale2(void); +void menuCandidat2(Candidat *tCand[], int tMax); \ No newline at end of file