You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

152 lines
3.6 KiB

#include "../SAE.h"
Departement lireDpt(FILE *flot)
{
Departement dpt;
fscanf(flot, "%s\n%d\n%d\n", dpt.departement, &dpt.decisionAdmission, &dpt.decisionCandidat);
}
void afficherDpt(Departement dpt)
{
printf("\t%s\t%d\t%d", dpt.departement, dpt.decisionAdmission, dpt.decisionCandidat);
}
Admission lireCandidat(FILE *flot)
{
Admission candidat;
Departement dpt;
int i = 0;
fscanf(flot, "%d\n", &candidat.num);
fgets(candidat.nom, 22, flot);
candidat.nom[strlen(candidat.nom) - 1] = '\0';
fgets(candidat.prenom, 22, flot);
candidat.prenom[strlen(candidat.prenom) - 1] = '\0';
fscanf(flot, "%d\t%d\t%d\t%d\n%d\n%s\n", &candidat.noteMaths, &candidat.noteFrançais, &candidat.noteAnglais, &candidat.noteSpe, &candidat.nbChoix, candidat.ville);
if(candidat.nbChoix == 0)
{
listeNouvDpt();
return candidat;
}
dpt = lireDpt(flot);
while(!feof(flot) && i < candidat.nbChoix)
{
if(strcmp(dpt.departement, dptResAdmi) == 0)
{
candidat.ldept = insererDpt(candidat, dpt);
}
dpt = lireDpt(flot);
i++;
}
return candidat;
}
void afficherCandidats(Admission candidat)
{
int i;
printf("%d\t%s\t%s\t%d\t%d\t%d\t%d\t%d\t%s\t%s\t%d\t%d", candidat.num, candidat.nom, candidat.prenom, candidat.noteMaths, candidat.noteFrançais, candidat.noteAnglais, candidat.noteSpe, candidat.nbChoix, candidat.ville);
for(i = 0; i < candidat.nbChoix; i++)
{
afficherDpt(candidat.ldept[i]);
}
printf("\n");
}
Admission chargerCandidats(FILE *ficAdmission, char dptResAdmi[30])
{
Admission candidat = listeNouvCandidat();
char departement[30];
int decisionAdmission, decisionCandidat;
int i, nbCandidats = 0;
FILE *flot;
flot=fopen(ficAdmission, "r");
if(flot == NULL)
{
printf("Erreur d'ouverture du fichier !\n");
exit(1);
}
fscanf(flot, "%d\n", &nbCandidats);
candidat = lireCandidat(flot);
while(!feof(flot))
{
candidat = lireCandidat(flot);
}
return candidat;
}
// REGARDER QUE CA TRIE LE BON DEPARTEMENT !!!!
int modifNoteMinAdmis()
{
int noteMaths, noteFrançais, noteAnglais, noteSpe;
printf("Entrez la nouvelle note minimale d'admission en maths (-1 pour quitter) : ");
while(noteMaths < 0 || noteMaths > 20)
{
scanf("%d", &noteMaths);
if(noteMaths == -1)
{
break;
}
printf("La note doit être comprise entre 0 et 20 !\n");
}
printf("Entrez la nouvelle note minimale d'admission en français (-1 pour quitter) : ");
while(noteFrançais < 0 || noteFrançais > 20)
{
scanf("%d", &noteFrançais);
if(noteFrançais == -1)
{
break;
}
printf("La note doit être comprise entre 0 et 20 !\n");
}
printf("Entrez la nouvelle note minimale d'admission en anglais (-1 pour quitter) : ");
while(noteAnglais < 0 || noteAnglais > 20)
{
scanf("%d", &noteAnglais);
if(noteAnglais == -1)
{
break;
}
printf("La note doit être comprise entre 0 et 20 !\n");
}
printf("Entrez la nouvelle note minimale d'admission en spécialité (-1 pour quitter) : ");
while(noteSpe < 0 || noteSpe > 20)
{
scanf("%d", &noteSpe);
if(noteSpe == -1)
{
break;
}
printf("La note doit être comprise entre 0 et 20 !\n");
}
}
modifNbAdmisMax()
{
int nbAdmisMax;
printf("Entrez le nouveau nombre d'admis maximum : ");
scanf("%d", &nbAdmisMax);
return nbAdmisMax;
}