Guillaume 2 years ago
commit 77e791bdc4

@ -3,4 +3,4 @@ Clermont-Ferrand Informatique 136 Simon Carine
Aurillac Bio-Informatique 56 Durand Alex
Clermont-Ferrand Biologie 120 Perrier Yanick
Millau mathematiques 100 Fauchon Sophie
Paris Informatique 55 Dahmane Yanis

@ -26,13 +26,15 @@ void testColor(void);
*/
//Proposition structure de candidat & choix pour la partie 2 ( jean ) :
typedef struct
typedef struct choix
{
char ville[50];
char departement[50];
int decisionDepartement;
int validationCandidat;
}Choix;
struct choix *suiv;
}Choix, *lChoix;
typedef struct
{
@ -41,7 +43,7 @@ typedef struct
char prenom[50];
float notes[4];
int nbChoix;
Choix *choix;
lChoix lchoix;
}Candidat;
//Proposition de structure de candidature pour la Partie 3 ( jean ) :
@ -122,9 +124,11 @@ void seConnecterTest(void);
int modifiePlacesDept(VilleIut **villeIut, int nbVilles, char *ville, char *nomDept, int nbP);
int modifieRespDept(VilleIut *tVilleIut[], int nbVilles, char ville[], char nomDept[], char nvNomResp[]);
void afficherDeptIutDonne(VilleIut **villeIut, int nbVille);
void afficheIUTDept(VilleIut* *villeIut, int nbVilles, char *nomDept);
void afficheVillesIUT(VilleIut **villeIut, int nbVilles);
void afficheNbPlacesDep(VilleIut *tVilleIut[], int nbVilles, char nomDept[]);
int existeVille( VilleIut * tIut[], char ville[], int nbvilles );
void menuAdmin(VilleIut **villeIut, int nbVilles);
void afficherCandidat(Candidat candidat);
@ -152,8 +156,18 @@ void afficherListe(ListeDept ldept);
// chargEtSauvFich.c
int chargIutDon(VilleIut *tVilleIut[], int nbMax, char nomFich[]);
void lireDep(FILE *flot, char nomDept[], int *nbP, char resp[]);
int appartientIut(VilleIut *tVilleIut[], int nb, char nom[], int *trouve);
void sauvegarderFichierIutDon(VilleIut *tVilleIut[], int nbVille, char nomFich[]);
//int chargIutDon(VilleIut *tVilleIut[], int nbMax, char nomFich[]);
//void lireDep(FILE *flot, char nomDept[], int *nbP, char resp[]);
//int appartientIut(VilleIut *tVilleIut[], int nb, char nom[], int *trouve);
//void sauvegarderFichierIutDon(VilleIut *tVilleIut[], int nbVille, char nomFich[]);
void testCharge(void);
void lectureDep(ListeDept ldept, FILE * fichier);
ListeDept initialiseDep(void);
ListeDept lireDep(FILE * fichier);
void lectureIut(VilleIut * iut, FILE * fichier);
VilleIut * initialiseIut(void);
VilleIut * lireIut (FILE * fichier);
VilleIut ** chargeIutDon(char nomFichier[], int * nbIut, int * nbMax);
VilleIut ** initialiseTabIut(void);
void tailleSupTabIut(VilleIut ** tIut, int *nbMax);

@ -1,6 +1,193 @@
#include "../header/sae.h"
int chargIutDon(VilleIut *tVilleIut[], int nbMax, char nomFich[])
/**
* @brief Charge les données d'un fichier dans un tableau de pointeur de VilleIut
* @param nomFichier [CHAINE DE CARACTERES] Nom du fichier contenant les données
* @param nbIut [POINTEUR - Taille Logique] Nombre d'IUT
* @param nbMax [POINTEUR - Taille Physique Dynamique]
* @return Tableau de pointeur de VilleIut rempli avec les données du fichier
*/
VilleIut ** chargeIutDon(char nomFichier[], int * nbIut, int * nbMax)
{
FILE * fichier;
VilleIut ** tIut;
int i = 0;
fichier = fopen(nomFichier, "r");
if (fichier == NULL)
{
printf("Error: Ouverture du fichier %s impossible\n", nomFichier);
exit(1);
}
// Si tout s'est bien passé dans l'ouverture de fichier
tIut = initialiseTabIut();
*nbMax = 5;
i = 0;
while (!feof(fichier))
{
// Taille max atteinte ?
if (i+1 == *nbMax)
{
tailleSupTabIut(tIut, nbMax); // Augmentation de la taille avec un realloc
}
tIut[i] = lireIut(fichier); // Lecture d'un IUT
i++;
}
*nbIut = i-1;
return tIut;
}
/**
* @brief Initialise un tableau de pointeur de VilleIut
* @return Tableau de pointeur de VilleIut
*/
VilleIut ** initialiseTabIut(void)
{
VilleIut ** tIut = (VilleIut **) malloc(sizeof(VilleIut *)*5);
if (tIut == NULL)
{
printf("Error: Probleme d'allocation dynamique du tableau\n");
exit(1);
}
return tIut;
}
/**
* @brief Augmente la taille d'un tableau de pointeur de VilleIut
* @param tIut Tableau de pointeur de VilleIut
* @param nbMax [POINTEUR - Taille Physique Dynamique] Nouvelle taille max
*/
void tailleSupTabIut(VilleIut ** tIut, int *nbMax)
{
VilleIut **aux;
*nbMax+=5;
aux = (VilleIut **) realloc(tIut, *nbMax);
if (aux == NULL)
{
printf("Error : Probleme de realloc\n");
exit(1);
}
tIut = aux;
}
/**
* @brief Lit les données d'un IUT dans un fichier et les stocke dans une VilleIut
* @param fichier [FICHIER] Données de l'IUT
* @return une VilleIut rempli avec les données lues
*/
VilleIut * lireIut (FILE * fichier)
{
VilleIut * iut;
iut = initialiseIut();
lectureIut(iut, fichier);
return iut;
}
/**
* @brief Initialise une VilleIut
* @return VilleIut initialisé
*/
VilleIut * initialiseIut(void)
{
VilleIut * iut;
iut = (VilleIut *)malloc(sizeof(VilleIut));
if (iut == NULL)
{
printf("Error : Probleme d'allocation dynamique de l'IUT\n");
exit(1);
}
return iut;
}
/**
* @brief Lit les données d'un IUT dans un fichier et les stocke dans une VilleIut
* @param iut [POINTEUR] Pointeur vers une VilleIut où stocker les données
* @param fichier [FICHIER] Données de l'IUT
*/
void lectureIut(VilleIut * iut, FILE * fichier)
{
fscanf(fichier, "%s", iut->nom);
iut->lDept = lireDep(fichier);
}
/**
* @brief Lit les données d'un département dans un fichier et les stocke dans une liste chaînée
* @param fichier [FICHIER] Données du département
* @return une liste chaînée contenant les données du département
*/
ListeDept lireDep(FILE * fichier)
{
ListeDept ldept;
ldept = initialiseDep();
lectureDep(ldept, fichier);
}
/**
* @brief Initialise une liste chaînée de départements
* @return la liste chaînée initialisée
*/
ListeDept initialiseDep(void)
{
ListeDept ldept = (MaillonDept *) malloc(sizeof(MaillonDept));
if (ldept == NULL)
{
printf("Erreur : Erreur de malloc ldept\n");
exit(1);
}
return ldept;
}
/**
* @brief Lit les données d'un département dans un fichier et les stocke dans une structure de Departement
* @param ldept Liste chaînée où stocker les données
* @param fichier [FICHIER] Données du département
*/
void lectureDep(ListeDept ldept, FILE * fichier)
{
// Lecture des données du département
fscanf(fichier, "%s %d ", ldept->nomDept, &ldept->nbP);
fgets(ldept->resp, 30, fichier);
ldept->resp[strlen(ldept->resp)-1] = '\0';
}
/**
* @brief Fonction de test de chargement
*/
void testCharge(void)
{
int nbIut, nbMax;
VilleIut ** tIut = chargeIutDon("../donnees/iut.don", &nbIut, &nbMax);
for (int i = 0; i < nbIut; i++)
{
printf("[ %s | %s | %d | %s ]\n", tIut[i]->nom, tIut[i]->lDept->nomDept, tIut[i]->lDept->nbP, tIut[i]->lDept->resp);
}
}
/*int chargIutDon(VilleIut *tVilleIut[], int nbMax, char nomFich[])
{
FILE *flot;
int i=0, nbP, trouve, indice;
@ -98,4 +285,10 @@ void sauvegarderFichierIutDon(VilleIut *tVilleIut[], int nbVille, char nomFich[]
i = i + 1;
}
fclose(flot);
}
}
*/
/*
*/

@ -9,8 +9,8 @@ int main(void)
// color
// #endif
testCharge();
//Globale();
guillaume();
//testJean();
return 0;

@ -23,7 +23,7 @@ void Globale(void)
//Chargement des fichiers
tLog = chargementLog("../donnees/log.don", &nbLog);
nbVilles = chargIutDon(tIut, 50, "../donnees/iut.don");
//nbVilles = chargIutDon(tIut, 50, "../donnees/iut.don");
//Appel du menu visiteur
menuVisiteur(tLog, nbLog, tIut, nbVilles);
@ -153,27 +153,21 @@ void menuCandidat(Log * tLog, int nbLog, VilleIut *tIut[], int nbVilles)
while(actif)
{
choix = choixMenuVisiteur();
choix = choixMenuCandidat();
clean
switch(choix)
{
case 1:
//test(tIut, nbVilles);
afficheVillesIUT(tIut, nbVilles);
//printf("Affiche les Villes contenant des IUT (En attente d'une fonction de chargement fonctionnelle)\n");
//affiche les candidatures
break;
case 2:
printf("Affiche le nombre de place dans un departement (En attente de Guillaume)\n");
//Creer une candidature
break;
case 3 :
printf("Affiche les departements d'un IUT donne (En attente de Loris)\n");
//Modifier une candidature
break;
case 4 :
printf("Affiche les IUT possedant un departement donne (En attente de Jean)\n");
break;
case 5 :
seConnecter(tLog, nbLog);
clean
//Supprimer une candidature
break;
case 0 :
actif = 0;
@ -479,7 +473,7 @@ int modifiePlacesDept(VilleIut **villeIut, int nbVilles, char *ville, char *nomD
*
* @return 1 si le nom du responsable a été trouvé et modifié, 0 sinon
*/
int modifieChefDept(VilleIut *tVilleIut[], int nbVilles, char ville[], char nomDept[], char nvNomResp[])
int modifieRespDept(VilleIut *tVilleIut[], int nbVilles, char ville[], char nomDept[], char nvNomResp[])
{
// Recherche de la ville et du département
int i;
@ -512,7 +506,22 @@ int modifieChefDept(VilleIut *tVilleIut[], int nbVilles, char ville[], char nomD
return 0;
}
void afficherDeptIutDonne(VilleIut **villeIut, int nbVille)
{
int res;
char *nom;
afficheVillesIUT(villeIut, nbVille);
printf("Veuillez saisir le nom de l'iut que vous voulez afficher.\n");
scanf("%s", nom);
res = existeVille(villeIut, nom, nbVille);
if (res == -1)
{
printf("Cet IUT n'existe pas\n");
return ;
}
afficherListe(villeIut[res]->lDept);
}
/**
* @brief Affiche les IUT possédant un département spécifique.
@ -571,7 +580,6 @@ void afficheVillesIUT(VilleIut **villeIut, int nbVilles)
printf(" \n\n\n");
}
/**
* @brief Affiche les IUT et le nombre de places associé pour un département donné
*
@ -597,9 +605,19 @@ void afficheNbPlacesDep(VilleIut *tVilleIut[], int nbVilles, char nomDept[])
dept = dept->suiv;
}
}
}
int existeVille( VilleIut * tIut[], char ville[], int nbvilles )
{
int i = 0;
//recherche de la ville
for( i = 0; i < nbvilles; i ++ )
{
if ( strcmp( tIut[i] -> nom, ville ) == 0 ) return i; // ville trouvée...
}
return -1;
}
/**
@ -668,9 +686,6 @@ void menuAdmin(VilleIut **villeIut, int nbVilles)
/*
================================================
Partie 2
@ -681,7 +696,7 @@ void menuAdmin(VilleIut **villeIut, int nbVilles)
* @brief Affiche les informations d'un candidat
* @param candidat Le candidat à afficher
*/
void afficherCandidat(Candidat candidat)
/* void afficherCandidat(Candidat candidat)
{
printf("Numéro du candidat : %d\n", candidat.numero);
printf("Nom : %s\n", candidat.nom);
@ -696,7 +711,7 @@ void afficherCandidat(Candidat candidat)
printf(" Décision du département : %d\n", candidat.choix[i].decisionDepartement);
printf(" Validation : %d\n", candidat.choix[i].validationCandidat);
}
}
} */
/**
* @brief Affiche la liste des candidats
@ -704,7 +719,7 @@ void afficherCandidat(Candidat candidat)
* @param candidats Le tableau de candidats à afficher
* @param nbCandidats Le nombre de candidats dans le tableau
*/
void afficherCandidats(Candidat *candidats, int nbCandidats)
/*void afficherCandidats(Candidat *candidats, int nbCandidats)
{
for (int i = 0; i < nbCandidats; i++)
{
@ -769,10 +784,11 @@ int creerCandid(Candidat tCand[], int nbCandidats)
}
// ===============================================================================
// PARTIE 3
//===============================================================================
/*
================================================
Partie 3
================================================
*/
/**
* \brief Permet de convertir la liste de departement des VilleIut de la partie 1
@ -829,11 +845,11 @@ ListeDeptV2 configurationDeptV2( ListeDept ldept )
return lDeptV2;
}
// ==============================================================================
// Partie 4
// ==============================================================================
/*
================================================
Partie 4
================================================
*/
/**
* @brief Affiche une liste de candidats après l'avoir triée par ordre alphabétique
@ -931,6 +947,4 @@ ListeCandidats insertionTeteCand( ListeCandidats nvL, ListeCandidats l )
free( l );
return nvL;
}
}
Loading…
Cancel
Save