Fonction de chargement des IUT faite - Commentaire approximatif - Manque la prise en charge des mêmes IUT

master
DahmaneYanis 2 years ago
parent 40b03532af
commit a5be4a0ecb

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

@ -148,8 +148,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 struct VilleIut
* @param nomFichier nom du fichier contenant les données
* @param nbIut pointeur vers un entier qui contiendra le nombre d'IUT lus
* @param nbMax pointeur vers un entier qui contiendra la taille maximale du tableau
* @return le tableau de struct 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 struct VilleIut
* @return le tableau initialisé
*/
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 struct VilleIut
* @param tIut le tableau à augmenter
* @param nbMax pointeur vers un entier qui contiendra la nouvelle taille maximale du tableau
*/
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 un struct VilleIut
* @param fichier pointeur vers le fichier contenant les données de l'IUT
* @return un struct VilleIut rempli avec les données lues
*/
VilleIut * lireIut (FILE * fichier)
{
VilleIut * iut;
iut = initialiseIut();
lectureIut(iut, fichier);
return iut;
}
/**
* @brief Initialise un struct VilleIut
* @return le struct 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 un struct VilleIut
* @param iut pointeur vers le struct VilleIut où stocker les données
* @param fichier pointeur vers le fichier contenant les 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 pointeur vers le fichier contenant les 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 liste chaînée
* @param ldept pointeur vers la liste chaînée où stocker les données
* @param fichier pointeur vers le fichier contenant les 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 teste la fonction chargeIutDon
*/
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;
@ -99,3 +286,9 @@ void sauvegarderFichierIutDon(VilleIut *tVilleIut[], int nbVille, char nomFich[]
}
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);
@ -426,8 +426,6 @@ int modifieChefDept(VilleIut *tVilleIut[], int nbVilles, char ville[], char nomD
return 0;
}
/**
* @brief Affiche les IUT possédant un département spécifique.
*
@ -482,7 +480,6 @@ void afficheVillesIUT(VilleIut **villeIut, int nbVilles)
}
}
/**
* @brief Affiche les IUT et le nombre de places associé pour un département donné
*
@ -511,8 +508,6 @@ void afficheNbPlacesDep(VilleIut *tVilleIut[], int nbVilles, char nomDept[])
}
/**
* Affiche et gère le menu administrateur.
*
@ -577,11 +572,6 @@ void menuAdmin(VilleIut **villeIut, int nbVilles)
} while (choix != 7);
}
/*
================================================
Partie 2
@ -624,7 +614,6 @@ void afficherCandidats(Candidat *candidats, int nbCandidats)
}
}
// ===============================================================================
// PARTIE 3
//===============================================================================
@ -684,8 +673,6 @@ ListeDeptV2 configurationDeptV2( ListeDept ldept )
return lDeptV2;
}
// ==============================================================================
// Partie 4
// ==============================================================================
@ -787,5 +774,3 @@ ListeCandidats insertionTeteCand( ListeCandidats nvL, ListeCandidats l )
return nvL;
}

Loading…
Cancel
Save