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.
228 lines
6.3 KiB
228 lines
6.3 KiB
#include "SAE.h"
|
|
/*
|
|
Departement lireDpt(FILE *flot, Admission ListeDepartement)
|
|
{
|
|
Departement dpt;
|
|
fscanf(flot, "%s\n%d\n%d\n", dpt.departement, &dpt.decisionAdmission, &dpt.decisionCandidat);
|
|
return dpt;
|
|
}
|
|
|
|
void afficherDpt(Departement dpt)
|
|
{
|
|
printf("\t%s\t%d\t%d", dpt.departement, dpt.decisionAdmission, dpt.decisionCandidat);
|
|
}
|
|
|
|
Admission lireCandidat(FILE *flot, ListeAdmission la)
|
|
{
|
|
int i = 0;
|
|
fscanf(flot, "%d\n", &la->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.tabMatiere[0], &candidat.tabMatiere[1], &candidat.tabMatiere[2], &candidat.tabMatiere[3], &candidat.nbChoix, candidat.ville);
|
|
if(candidat.nbChoix == 0)
|
|
{
|
|
listenouv();
|
|
return candidat;
|
|
}
|
|
dpt = lireDpt(flot);
|
|
while(!feof(flot) && i < candidat.nbChoix)
|
|
{
|
|
if(strcmp(dpt.departement, dptResAdmi) == 0)
|
|
{
|
|
candidat.ldept = inserer(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->v);
|
|
ldept = ldept->suiv;
|
|
}
|
|
printf("\n");
|
|
}
|
|
|
|
// Regarder si le nombre de choix est = à 0 Que se passe-t-il ?
|
|
|
|
ListeAdmission chargerCandidats(char *ficAdmission, char dptResAdmi[30], ListeAdmission la)
|
|
{
|
|
FILE *flot;
|
|
listenouv();
|
|
flot=fopen(ficAdmission, "r");
|
|
if(flot == NULL)
|
|
{
|
|
printf("Erreur d'ouverture du fichier !\n");
|
|
exit(1);
|
|
}
|
|
la->v = lireCandidat(flot);
|
|
while(!feof(flot))
|
|
{
|
|
listeCandidats = insererCand(listeCandidats, candidat);
|
|
candidat = lireCandidat(flot);
|
|
}
|
|
fclose(flot);
|
|
return listeCandidats;
|
|
}
|
|
|
|
void sauvegarderCandidats(ListeAdmission listeCandidats, char dptResAdmi[30])
|
|
{
|
|
FILE *flot;
|
|
flot=fopen("admissionInfo.txt", "w");
|
|
if(flot == NULL)
|
|
{
|
|
printf("Erreur d'ouverture du fichier !\n");
|
|
exit(1);
|
|
}
|
|
while(! videCand(listeCandidats))
|
|
{
|
|
fprintf(flot, "%d\n%s\n%s\n%d\t%d\t%d\t%d\n%d\n%s\n", listeCandidats->v.num, listeCandidats->v.nom, listeCandidats->v.prenom, listeCandidats->v.tabMatiere[0], listeCandidats->v.tabMatiere[1], listeCandidats->v.tabMatiere[2], listeCandidats->v.tabMatiere[3], listeCandidats->v.nbChoix, listeCandidats->v.ville);
|
|
while(! videDpt(listeCandidats->v.ldept))
|
|
{
|
|
fprintf(flot, "%s\n%d\n%d\n", listeCandidats->v.ldept->v.departement, listeCandidats->v.ldept->v.decisionAdmission, listeCandidats->v.ldept->v.decisionCandidat);
|
|
listeCandidats->v.ldept = listeCandidats->v.ldept->suiv;
|
|
}
|
|
listeCandidats = listeCandidats->suiv;
|
|
}
|
|
fclose(flot);
|
|
}
|
|
|
|
void afficherCandidatsAdmis(ListeAdmission listeCandidats)
|
|
{
|
|
while(! videCand(listeCandidats))
|
|
{
|
|
if(listeCandidats->v.admis == 1)
|
|
{
|
|
afficherCandidats(listeCandidats->v);
|
|
}
|
|
listeCandidats = listeCandidats->suiv;
|
|
}
|
|
}
|
|
|
|
void afficherCandidatsNonAdmis(ListeAdmission listeCandidats)
|
|
{
|
|
while(! videCand(listeCandidats))
|
|
{
|
|
if(listeCandidats->v.admis == 0)
|
|
{
|
|
afficherCandidats(listeCandidats->v);
|
|
}
|
|
listeCandidats = listeCandidats->suiv;
|
|
}
|
|
}
|
|
|
|
void afficherCandidatsAttente(ListeAdmission listeCandidats)
|
|
{
|
|
while(! videCand(listeCandidats))
|
|
{
|
|
if(listeCandidats->v.admis == 2)
|
|
{
|
|
afficherCandidats(listeCandidats->v);
|
|
}
|
|
listeCandidats = listeCandidats->suiv;
|
|
}
|
|
}
|
|
|
|
void afficherCandidatsDpt(ListeAdmission listeCandidats)
|
|
{
|
|
while(! videCand(listeCandidats))
|
|
{
|
|
afficherCandidats(listeCandidats->v);
|
|
listeCandidats = listeCandidats->suiv;
|
|
}
|
|
}
|
|
|
|
ListeAdmission MoyenneCandidats(ListeAdmission listeCandidats)
|
|
{
|
|
ListeAdmission listeMoyenne = listeNouvCand();
|
|
while(! videCand(listeCandidats))
|
|
{
|
|
listeCandidats->v.moyenne = (listeCandidats->v.noteMaths + listeCandidats->v.noteFrançais + listeCandidats->v.noteAnglais + listeCandidats->v.noteSpe) / 4;
|
|
listeMoyenne = insererCand(listeMoyenne, listeCandidats->v);
|
|
listeCandidats = listeCandidats->suiv;
|
|
}
|
|
return listeMoyenne;
|
|
}
|
|
|
|
// Comment definir la note sur 20 mise lors de l'etude du dossier ?
|
|
// Ajouter une variable dans la structure Admission ?
|
|
// Ou mettre la liste et la note dans un tableau ?
|
|
// Après examen de chaque dossier de candidature,
|
|
// le jury doit regarder ou la note peut etre calculée automatiquement ?
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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", ¬eMaths);
|
|
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", ¬eFranç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", ¬eAnglais);
|
|
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", ¬eSpe);
|
|
if(noteSpe == -1)
|
|
{
|
|
break;
|
|
}
|
|
printf("La note doit être comprise entre 0 et 20 !\n");
|
|
}
|
|
}
|
|
|
|
int modifNbAdmisMax()
|
|
{
|
|
int nbAdmisMax;
|
|
printf("Entrez le nouveau nombre d'admis maximum : ");
|
|
scanf("%d", &nbAdmisMax);
|
|
return nbAdmisMax;
|
|
}
|
|
*/ |