|
|
@ -80,21 +80,21 @@ Candidat lireCa(FILE *fe)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Listechx InsertTC(Listechx list, Maillonchx m)//Insert en tête de la liste
|
|
|
|
Listechx InsertTC(Listechx list, Choix m)//Insert en tête de la liste
|
|
|
|
{
|
|
|
|
{
|
|
|
|
Maillonchx *mchx;
|
|
|
|
Maillonchx *mchx;
|
|
|
|
mchx = (Maillonchx*)malloc(sizeof(Maillonchx));
|
|
|
|
mchx = (Maillonchx*)malloc(sizeof(Maillonchx));
|
|
|
|
if (mchx == NULL){printf("pb malloc"); exit(-1);}
|
|
|
|
if (mchx == NULL){printf("pb malloc"); exit(-1);}
|
|
|
|
mchx->chx = m.chx;
|
|
|
|
mchx->chx = m;
|
|
|
|
mchx->suivchx = list;
|
|
|
|
mchx->suivchx = list;
|
|
|
|
return mchx;
|
|
|
|
return mchx;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Listechx InsertC(Listechx list, Maillonchx m)//insert globalement dans liste de choix
|
|
|
|
Listechx InsertC(Listechx list, Choix m)//insert globalement dans liste de choix
|
|
|
|
{
|
|
|
|
{
|
|
|
|
if (list == NULL){return InsertTC(list, m);}
|
|
|
|
if (list == NULL){return InsertTC(list, m);}
|
|
|
|
if (strcmp(list->chx.dptmt, m.chx.dptmt)>0){return InsertTC(list, m);}
|
|
|
|
if (strcmp(list->chx.dptmt, m.dptmt)>0){return InsertTC(list, m);}
|
|
|
|
list->suivchx = InsertC(list->suivchx, m);
|
|
|
|
list->suivchx = InsertC(list->suivchx, m);
|
|
|
|
return list;
|
|
|
|
return list;
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -198,10 +198,11 @@ Listecand Chargementlistecandidat(FILE *fe, Listecand lC, int *nbC)// fonction d
|
|
|
|
Choix c;
|
|
|
|
Choix c;
|
|
|
|
c = lireC(fe);//lire le maillon avec la fonction plus haut
|
|
|
|
c = lireC(fe);//lire le maillon avec la fonction plus haut
|
|
|
|
chx.chx = c;//le choix du maillon est celui lu au dessus
|
|
|
|
chx.chx = c;//le choix du maillon est celui lu au dessus
|
|
|
|
Ca.lchx = InsertC(Ca.lchx, chx);//insert le maillon à sa bonne place
|
|
|
|
Ca.lchx = InsertC(Ca.lchx, c);//insert le maillon à sa bonne place
|
|
|
|
}
|
|
|
|
}
|
|
|
|
lC = Insert(lC, Ca);
|
|
|
|
lC = Insert(lC, Ca);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
fclose(fe);
|
|
|
|
return lC;
|
|
|
|
return lC;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
@ -212,24 +213,70 @@ void testchgt(void)
|
|
|
|
int nbC = 0;
|
|
|
|
int nbC = 0;
|
|
|
|
Listecand lC=NULL;
|
|
|
|
Listecand lC=NULL;
|
|
|
|
FILE *fe;
|
|
|
|
FILE *fe;
|
|
|
|
|
|
|
|
printf("avantouverture\n");
|
|
|
|
fe=fopen("part2.don", "r");
|
|
|
|
fe=fopen("part2.don", "r");
|
|
|
|
if (fe == NULL){printf("pb ouv file"); return;}
|
|
|
|
if (fe == NULL){printf("pb ouv file"); return;}
|
|
|
|
|
|
|
|
printf("apres ouverture\n");
|
|
|
|
|
|
|
|
|
|
|
|
lC = Chargementlistecandidat(fe, lC, &nbC);
|
|
|
|
lC = Chargementlistecandidat(fe, lC, &nbC);
|
|
|
|
|
|
|
|
printf("apres chargement\n");
|
|
|
|
|
|
|
|
|
|
|
|
AffListeCandidat(lC);
|
|
|
|
AffListeCandidat(lC);
|
|
|
|
|
|
|
|
printf("apres affichage\n");
|
|
|
|
|
|
|
|
|
|
|
|
Save(lC, nbC);
|
|
|
|
Save(lC, nbC);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void Save(Listecand lC, int nbC)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
FILE *fs;
|
|
|
|
|
|
|
|
fs=fopen("part2.don", "w");
|
|
|
|
|
|
|
|
if (fs == NULL){printf("pb ouv fichier part2.don\n");exit(-1);}
|
|
|
|
|
|
|
|
int cpt;
|
|
|
|
|
|
|
|
fprintf(fs, "%d\n", nbC);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
saveC(lC, fs);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void saveC(Listecand lC, FILE *fs)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
if (lC == NULL)return;
|
|
|
|
|
|
|
|
fprintf(fs, "%d\n", lC->cand.nEtu);
|
|
|
|
|
|
|
|
fprintf(fs, "%s\n", lC->cand.nom);
|
|
|
|
|
|
|
|
fprintf(fs, "%s\n", lC->cand.prenom);
|
|
|
|
|
|
|
|
fprintf(fs, "%.2f\t %.2f\t %.2f\t %.2f\n", lC->cand.moymat, lC->cand.moyfr, lC->cand.moyen, lC->cand.moyspe);
|
|
|
|
|
|
|
|
fprintf(fs, "%d\n", lC->cand.nbchx);
|
|
|
|
|
|
|
|
saveChx(lC->cand.lchx, fs);
|
|
|
|
|
|
|
|
saveC(lC->suivcand, fs);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void saveChx(Listechx lCh, FILE *fs)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
if (lCh == NULL)return;
|
|
|
|
|
|
|
|
fprintf(fs, "%s\n", lCh->chx.ville);
|
|
|
|
|
|
|
|
fprintf(fs, "%s\n", lCh->chx.dptmt);
|
|
|
|
|
|
|
|
fprintf(fs, "%d\n", lCh->chx.dec);
|
|
|
|
|
|
|
|
fprintf(fs, "%d\n", lCh->chx.valid);
|
|
|
|
|
|
|
|
saveChx(lCh->suivchx, fs);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void test (void){
|
|
|
|
void test (void){
|
|
|
|
|
|
|
|
|
|
|
|
int menu1, menugest1, numet;
|
|
|
|
int menu1, menugest1, numet,modifcand;
|
|
|
|
|
|
|
|
char nomet[20];
|
|
|
|
Candidat cand1;
|
|
|
|
Candidat cand1;
|
|
|
|
|
|
|
|
Choix choix1;
|
|
|
|
Listecand lcand, l2cand;
|
|
|
|
Listecand lcand, l2cand;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
printf("Menu :\n");//Premier affichage menu pour choisir si on veut afficher le menu d'un candidat ou toutes les candidatures
|
|
|
|
printf("Menu :\n");//Premier affichage menu pour choisir si on veut afficher le menu d'un candidat ou toutes les candidatures
|
|
|
|
printf("(1) Gestion Candidature\n(2) Affichage Candidature\n");
|
|
|
|
printf("(1) Gestion Candidature\n(2) Affichage Candidature\n");
|
|
|
|
scanf("%d", &menu1);
|
|
|
|
scanf("%d", &menu1);
|
|
|
@ -248,21 +295,24 @@ void test (void){
|
|
|
|
printf("(1) Ajouter une Candidature\n (2) Modifier une Candidature\n (3) Supprimer une Candidature");
|
|
|
|
printf("(1) Ajouter une Candidature\n (2) Modifier une Candidature\n (3) Supprimer une Candidature");
|
|
|
|
scanf("%d", &menugest1);
|
|
|
|
scanf("%d", &menugest1);
|
|
|
|
|
|
|
|
|
|
|
|
if (menugest1 == 1){
|
|
|
|
if (menugest1 == 1){// Ajout d'une candidature (choix) a un candidat deja existant
|
|
|
|
printf("Veuillez renseigner votre numéro d'étudiant\n");
|
|
|
|
printf("Veuillez renseigner votre nom d'étudiant\n");
|
|
|
|
scanf("%d", &numet);
|
|
|
|
scanf("%s", nomet);
|
|
|
|
l2cand = recherchenum( lcand, numet);
|
|
|
|
l2cand = recherchenom ( lcand, nomet );
|
|
|
|
AffListeCandidat(l2cand);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
cand1 = lireCandidat();
|
|
|
|
choix1 = lirechx();
|
|
|
|
lcand = Insert(lcand , cand1);
|
|
|
|
lcand->cand.lchx = InsertTC (l2cand->cand.lchx,choix1);
|
|
|
|
AffListeCandidat(lcand);
|
|
|
|
AffListeCandidat(lcand);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//else if (menugest1 == 2)
|
|
|
|
else if (menugest1 == 2){//
|
|
|
|
|
|
|
|
printf("Entrer le numéro de candidat\n");
|
|
|
|
|
|
|
|
scanf("%d",&modifcand );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//FONCTION MISE A JOUR LISTE AVEC AFFICHAGE NOUVELLE LISTE
|
|
|
|
//FONCTION MISE A JOUR LISTE AVEC AFFICHAGE NOUVELLE LISTE
|
|
|
|
|
|
|
|
}
|
|
|
|
//else if (menugest1 == 3)
|
|
|
|
//else if (menugest1 == 3)
|
|
|
|
//FONCTION SUPPRESSION LISTE AVEC AFFICHAGE NOUVELLE LISTE
|
|
|
|
//FONCTION SUPPRESSION LISTE AVEC AFFICHAGE NOUVELLE LISTE
|
|
|
|
|
|
|
|
|
|
|
@ -275,40 +325,6 @@ void test (void){
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void Save(Listecand lC, int nbC)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
FILE *fs;
|
|
|
|
|
|
|
|
fs=fopen("part2.don", "w");
|
|
|
|
|
|
|
|
if (fs == NULL){printf("pb ouv fichier part2.don\n");exit(-1);}
|
|
|
|
|
|
|
|
int cpt;
|
|
|
|
|
|
|
|
fprintf(fs, "%nbC\n", nbC);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
saveC(lC, fs);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void saveC(Listecand lC, FILE *fs)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
if (lC == NULL)return;
|
|
|
|
|
|
|
|
fprintf(fs, "%d\n", lC->cand.nEtu);
|
|
|
|
|
|
|
|
fprintf(fs, "%s\n", lC->cand.nom);
|
|
|
|
|
|
|
|
fprintf(fs, "%s\n", lC->cand.prenom);
|
|
|
|
|
|
|
|
fprintf(fs, "%.2f\t %.2f\t %.2f\t %.2f\n", lC->cand.moymat, lC->cand.moyfr, lC->cand.moyen, lC->cand.moyspe);
|
|
|
|
|
|
|
|
fprintf(fs, "%d\n", lC->cand.nbchx);
|
|
|
|
|
|
|
|
saveChx(lC->cand.lchx, fs);
|
|
|
|
|
|
|
|
saveC(lC->suivcand, fs);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void saveChx(Listechx lCh, FILE *fs)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
if (lCh == NULL)return;
|
|
|
|
|
|
|
|
fprintf(fs, "%s\n", lCh->chx.ville);
|
|
|
|
|
|
|
|
fprintf(fs, "%s\n", lCh->chx.dptmt);
|
|
|
|
|
|
|
|
fprintf(fs, "%d\n", lCh->chx.dec);
|
|
|
|
|
|
|
|
fprintf(fs, "%d\n", lCh->chx.valid);
|
|
|
|
|
|
|
|
saveChx(lCh->suivchx, fs);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//####################################### FILES #################################################
|
|
|
|
//####################################### FILES #################################################
|
|
|
|