loris OBRY 2 years ago
commit 0e3a4070bf

@ -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

@ -128,6 +128,7 @@ 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);
@ -154,8 +155,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,7 +9,8 @@ int main(void)
// color
// #endif
Globale();
testCharge();
//Globale();
//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);
@ -580,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é
*
@ -606,10 +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( e = 0; i < nbvilles; i ++ )
{
if ( strcmp( tIut[i] -> nom, ville ) == 0 ) return i; // ville trouvée...
}
return -1;
}
/**
* Affiche et gère le menu administrateur.
@ -722,10 +730,11 @@ void afficherCandidats(Candidat *candidats, int nbCandidats)
}
}
// ===============================================================================
// PARTIE 3
//===============================================================================
/*
================================================
Partie 3
================================================
*/
/**
* \brief Permet de convertir la liste de departement des VilleIut de la partie 1
@ -782,11 +791,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

Loading…
Cancel
Save