Amélioration de la fonction de chargement

master
Kyllian Chabanon 2 years ago
parent f91615fc79
commit 9575c11d50

@ -1,68 +1,66 @@
#include "partie1.h" #include "partie1.h"
/*
ListeDept listenouv(void)
{
return NULL;
}
ListeDept insererEnTete(ListeDept l, char departement[], int nbP)
{
MaillonDept *m;
m = (MaillonDept *)malloc(sizeof(MaillonDept));
if (m == NULL)
{
printf("Fonction insererEnTete : problème malloc");
exit(1);
}
strcpy(m->departement, departement);
m->nbP = nbP;
m->suiv = l;
return l;
}
ListeDept chargeListeDept(VilleIUT *tiut[]) ListeDept chargeListeDept(VilleIUT *tiut[])
{ {
int i = 0; int i = 0;
ListeDept liste = listenouv(); ListeDept liste = listenouv();
FILE *file = fopen("informationsIUT.don", "r"); FILE *file = fopen("informationsIUT.txt", "r");
while (!feof(file)) while (!feof(file))
{ {
} }
} }*/
int chargementVilleIUT(VilleIUT *tiut[]) int chargementVillesIUT(VilleIUT *tiut[])
{ {
FILE *file = fopen("informationsIUT.don", "r"); FILE *file = fopen("informationsIUT.txt", "r");
VilleIUT villeiut;
char ville[30], dept[30], nomResp[30]; char ville[30], dept[30], nomResp[30];
int nbP, i = 0; int nbP, i = 0, trouve;
if (file == NULL) if (file == NULL)
{ {
printf("Fonction chargementVilleIUT : Problème lors de l'ouverture du fichier informations.don"); printf("Fonction chargementVillesIUT : Problème lors de l'ouverture du fichier informationsIUT.txt");
exit(-1); exit(-1);
} }
while (!feof(file)) while (!feof(file))
{ {
tiut[i] = (VilleIUT *)malloc(sizeof(VilleIUT)); fscanf(file, "%s%s%d", ville, dept, &nbP);
if (tiut[i] == NULL) fgets(nomResp, 30, file);
trouve = recherche(tiut, i, ville);
if (trouve == 0)
{ {
printf("erreur malloc"); tiut[i] = (VilleIUT *)malloc(sizeof(VilleIUT));
exit(-1); if (tiut[i] == NULL)
{
printf("Fonction chargementVillesIUT : Problème lors du malloc");
exit(-1);
}
strcpy(tiut[i]->ville, ville);
i++;
} }
fscanf(file, "%s%s%d", tiut[i]->ville, dept, &nbP);
fgets(nomResp, 30, file);
i++;
} }
fclose(file); fclose(file);
return i; return i;
} }
int recherche(VilleIUT *tiut[], int nb, char val[])
{
for (int i = 0; i < nb; i++)
{
if (strcmp(tiut[i]->ville, val) == 0)
{
return 1;
}
}
return 0;
}
void affichage(VilleIUT *tiut[], int nb) void affichage(VilleIUT *tiut[], int nb)
{ {
for (int i = 0; i < nb; i++) for (int i = 0; i < nb; i++)
{ {
printf("%s\n", tiut[i]->ville); printf("%s\n", tiut[i]->ville);
} }
} }

@ -1,13 +1,9 @@
#include <stdio.h> #include <stdio.h>
#include <string.h> #include <string.h>
#include "../structures/structures.h"
#include <stdbool.h> #include <stdbool.h>
#include "structures.h"
/* Fichier */ /* Fichier */
int chargementVilleIUT(VilleIUT *tiut[]); int chargementVillesIUT(VilleIUT *tiut[]);
void affichage(VilleIUT *tiut[], int nb); void affichage(VilleIUT *tiut[], int nb);
int recherche(VilleIUT *tiut[], int nb, char val[]);
/* File */
ListeDept listenouv(void);

@ -0,0 +1,21 @@
#include "partie1.h"
ListeDept listenouv(void)
{
return NULL;
}
ListeDept insererEnTete(ListeDept l, char departement[], int nbP)
{
MaillonDept *m;
m = (MaillonDept *)malloc(sizeof(MaillonDept));
if (m == NULL)
{
printf("Fonction insererEnTete : problème malloc");
exit(1);
}
strcpy(m->departement, departement);
m->nbP = nbP;
m->suiv = l;
return l;
}

@ -0,0 +1,20 @@
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
typedef struct maillonDept
{
char departement[30];
int nbP;
char resp[30];
struct maillonDept *suiv;
} MaillonDept, *ListeDept;
typedef struct
{
char ville[30];
ListeDept ldept;
} VilleIUT;
ListeDept listenouv(void);
ListeDept insererEnTete(ListeDept l, char departement[], int nbP);

@ -2,8 +2,9 @@
int main(void) int main(void)
{ {
int nbVilles;
VilleIUT *tiut[100]; VilleIUT *tiut[100];
int nb = chargementVilleIUT(tiut); nbVilles = chargementVillesIUT(tiut);
affichage(tiut, nb); affichage(tiut, nbVilles);
return 0; return 0;
} }

32
SAE.h

@ -3,21 +3,6 @@
#include <string.h> #include <string.h>
#include <stdbool.h> #include <stdbool.h>
/* Partie 1
typedef struct maillonDept
{
char departement[30];
int nbP;
char resp[30];
struct maillonDept *suiv;
} MaillonDept, *ListeDept;
typedef struct
{
char ville[30];
ListeDept ldept;
} VilleIUT; */
/* Menus */ /* Menus */
void choixMenu(void); void choixMenu(void);
void menuUtilisateur(void); void menuUtilisateur(void);
@ -27,20 +12,23 @@ void menuAdministrateur(void);
/* V2 */ /* V2 */
typedef struct { typedef struct
{
char departement[30]; char departement[30];
int decisionAdmission; int decisionAdmission;
int decisionCandidat; int decisionCandidat;
} Departement; } Departement;
typedef struct maillonDepartement { typedef struct maillonDepartement
{
Departement v; Departement v;
struct maillonDepartement *suiv; struct maillonDepartement *suiv;
} MaillonDepartement, *ListeDepartement; } MaillonDepartement, *ListeDepartement;
typedef struct { typedef struct
{
int num; int num;
char nom[22]; // 20 caractere + 1 espace + 1 caractere de fin de chaine char nom[22]; // 20 caractere + 1 espace + 1 caractere de fin de chaine
char prenom[22]; // 20 caractere + 1 espace + 1 caractere de fin de chaine char prenom[22]; // 20 caractere + 1 espace + 1 caractere de fin de chaine
int tabMatiere[4]; int tabMatiere[4];
int nbChoix; int nbChoix;
@ -48,7 +36,8 @@ typedef struct {
ListeDepartement ldept; ListeDepartement ldept;
} Admission; } Admission;
typedef struct maillonAdmission { typedef struct maillonAdmission
{
Admission v; Admission v;
struct maillonAdmission *suiv; struct maillonAdmission *suiv;
} MaillonAdmission, *ListeAdmission; } MaillonAdmission, *ListeAdmission;
@ -67,7 +56,6 @@ ListeAdmission MoyenneCandidats(ListeAdmission listeCandidats);
int modifNoteMinAdmis(); int modifNoteMinAdmis();
int modifNbAdmisMax(); int modifNbAdmisMax();
/* V1 /* V1
typedef struct { typedef struct {
int num; int num;
@ -95,7 +83,7 @@ typedef struct {
int decisionAdmission5; int decisionAdmission5;
int decisionCandidat5; int decisionCandidat5;
} Admission; } Admission;
// Utilisation d'une file car on a pas besoins de modifier les candidats, les mettre au milieu de la file, // Utilisation d'une file car on a pas besoins de modifier les candidats, les mettre au milieu de la file,
// on a juste besoin de les ajouter et de les supprimer, on cherche à les parcourir dans l'ordre d'arrivée // on a juste besoin de les ajouter et de les supprimer, on cherche à les parcourir dans l'ordre d'arrivée
// Pour mettre d'un coté les candidats traités et de l'autre les candidats non traités // Pour mettre d'un coté les candidats traités et de l'autre les candidats non traités
typedef struct maillonAdmission { typedef struct maillonAdmission {

Loading…
Cancel
Save