diff --git a/src/partie2/saeP2.c b/src/partie2/saeP2.c index 1c4172d..f2e492e 100644 --- a/src/partie2/saeP2.c +++ b/src/partie2/saeP2.c @@ -18,11 +18,19 @@ candidat** LoadCandid(int* CandidOpen, int* nbcandid) //Lire la première ligne pr savoir combien d'étudiant je vais lire fread(nbcandid,sizeof(int),1,file); candidat** Tabcandidat=(candidat**) malloc (sizeof(candidat*)*(*nbcandid)); + if(Tabcandidat==NULL){ + perror("malloc"); + exit(errno); + } //Tant que j'ai des étudiants à lire : for(int i=0;*nbcandid>i;++i) { //Son numéro, Son nom, Son prenom, liste de note` Tabcandidat[i]=(candidat*)malloc(sizeof(candidat)); + if(Tabcandidat[i]==NULL){ + perror("malloc"); + exit(errno); + } fread(&Tabcandidat[i]->numcandid,sizeof(int),1,file); fread(Tabcandidat[i]->surname,sizeof(char)*31,1,file); fread(Tabcandidat[i]->name,sizeof(char)*31,1,file); @@ -77,29 +85,29 @@ void RechercheCandidat(int ID, int nbcandidat,candidat *tcandidat[]) Note d'anglais : %f\n\ Note de spécialité : %f\n\ Nombre de voeu : %d\n\ - Voeu :\n",tcandidat[i].numcandid,tcandidat[i].surname,tcandidat[i].name,\ - tcandidat[i].note[0],tcandidat[i].note[1],tcandidat[i].note[2],\ - tcandidat[i].note[3],tcandidat[i].nbchoix); - for(int y=0;ynumcandid,tcandidat[i]->surname,tcandidat[i]->name,\ + tcandidat[i]->note[0],tcandidat[i]->note[1],tcandidat[i]->note[2],\ + tcandidat[i]->note[3],tcandidat[i]->nbchoix); + for(int y=0;ynbchoix;++y) { printf("Ville : %s\n\ Departement : %s\n\ - Décision département : ",tcandidat[i].TabVoeu[y]->ville,tcandidat[i].TabVoeu[y]->dep); - if(tcandidat[i].TabVoeu[y]->ddep==0) printf("Dossier non traité\n"); + Décision département : ",tcandidat[i]->TabVoeu[y]->ville,tcandidat[i]->TabVoeu[y]->dep); + if(tcandidat[i]->TabVoeu[y]->ddep==0) printf("Dossier non traité\n"); else { - if(tcandidat[i].TabVoeu[y]->ddep==1) printf("Admis\n"); + if(tcandidat[i]->TabVoeu[y]->ddep==1) printf("Admis\n"); else { - if (tcandidat[i].TabVoeu[y]->ddep==2) printf("Liste d'attente\n"); + if (tcandidat[i]->TabVoeu[y]->ddep==2) printf("Liste d'attente\n"); else printf("Refusé\n"); } } printf("Décision du candidat : "); - if(tcandidat[i].TabVoeu[y]->vcand==0) printf("Décision non rendu\n"); + if(tcandidat[i]->TabVoeu[y]->vcand==0) printf("Décision non rendu\n"); else { - if(tcandidat[i].TabVoeu[y]->vcand==1) printf("Accepté\n"); + if(tcandidat[i]->TabVoeu[y]->vcand==1) printf("Accepté\n"); else printf("Refusé"); } } @@ -122,29 +130,29 @@ void ListeCandidat(int nbcandidat,candidat *tcandidat[]) Note d'anglais : %f\n\ Note de spécialité : %f\n\ Nombre de voeu : %d\n\ - Voeu :\n",i,tcandidat[i].numcandid,tcandidat[i].surname,tcandidat[i].name,\ - tcandidat[i].note[0],tcandidat[i].note[1],tcandidat[i].note[2],\ - tcandidat[i].note[3],tcandidat[i].nbchoix); - for(int y=0;ynumcandid,tcandidat[i]->surname,tcandidat[i]->name,\ + tcandidat[i]->note[0],tcandidat[i]->note[1],tcandidat[i]->note[2],\ + tcandidat[i]->note[3],tcandidat[i]->nbchoix); + for(int y=0;ynbchoix;++y) { printf("Ville : %s\n\ Departement : %s\n\ - Décision département : ",tcandidat[i].TabVoeu[y]->ville,tcandidat[i].TabVoeu[y]->dep); - if(tcandidat[i].TabVoeu[y]->ddep==0) printf("Dossier non traité\n"); + Décision département : ",tcandidat[i]->TabVoeu[y]->ville,tcandidat[i]->TabVoeu[y]->dep); + if(tcandidat[i]->TabVoeu[y]->ddep==0) printf("Dossier non traité\n"); else { - if(tcandidat[i].TabVoeu[y]->ddep==1) printf("Admis\n"); + if(tcandidat[i]->TabVoeu[y]->ddep==1) printf("Admis\n"); else { - if (tcandidat[i].TabVoeu[y]->ddep==2) printf("Liste d'attente\n"); + if (tcandidat[i]->TabVoeu[y]->ddep==2) printf("Liste d'attente\n"); else printf("Refusé\n"); } } printf("Décision du candidat : "); - if(tcandidat[i].TabVoeu[y]->vcand==0) printf("Décision non rendu\n"); + if(tcandidat[i]->TabVoeu[y]->vcand==0) printf("Décision non rendu\n"); else { - if(tcandidat[i].TabVoeu[y]->vcand==1) printf("Accepté\n"); + if(tcandidat[i]->TabVoeu[y]->vcand==1) printf("Accepté\n"); else printf("Refusé"); } } @@ -170,14 +178,14 @@ void Candidater(VilleIUT* tiut[],int *tlogi, candidat* tcandidat[], int numcandi else { int i; - for (i=0;tcandidat[i].numcandid!=numcandid;++i); + for (i=0;tcandidat[i]->numcandid!=numcandid;++i); voeu* voeu_ajout = (voeu*) malloc (sizeof(voeu)); strcpy(voeu_ajout->ville,VilleRech); strcpy(voeu_ajout->dep,DepRech); voeu_ajout->ddep=0; voeu_ajout->vcand=0; - tcandidat[i].TabVoeu[tcandidat[i].nbchoix]=voeu_ajout; - tcandidat[i].nbchoix++; + tcandidat[i]->TabVoeu[tcandidat[i]->nbchoix]=voeu_ajout; + tcandidat[i]->nbchoix++; } } @@ -186,7 +194,11 @@ void Candidater(VilleIUT* tiut[],int *tlogi, candidat* tcandidat[], int numcandi void CreateCandidat(candidat** tcandid,int* nbcandidat) { - candidat* Candidat_Ajout + candidat* Candidat_Ajout=(candidat*)malloc(sizeof(candidat)); + if(Candidat_Ajout==NULL){ + perror("malloc"); + exit(errno); + } printf("Merci de rentrez votre nom :"); fgets(Candidat_Ajout->name, 31, stdin); printf("Merci de rentrez votre prénom :");