|
|
@ -1,6 +1,7 @@
|
|
|
|
#include <stdio.h>
|
|
|
|
#include <stdio.h>
|
|
|
|
#include <stdlib.h>
|
|
|
|
#include <stdlib.h>
|
|
|
|
#include <errno.h>
|
|
|
|
#include <errno.h>
|
|
|
|
|
|
|
|
#include <string.h>
|
|
|
|
#include "../partie1/saeP1.h"
|
|
|
|
#include "../partie1/saeP1.h"
|
|
|
|
#include "../annexe/saeAnnexe.h"
|
|
|
|
#include "../annexe/saeAnnexe.h"
|
|
|
|
#include "saeP3.h"
|
|
|
|
#include "saeP3.h"
|
|
|
@ -8,7 +9,7 @@
|
|
|
|
//Partie Responsable.
|
|
|
|
//Partie Responsable.
|
|
|
|
|
|
|
|
|
|
|
|
void menuResponsable(VilleIUT* tiut[],int *tlogi,candidat* tcandidat[]){
|
|
|
|
void menuResponsable(VilleIUT* tiut[],int *tlogi,candidat* tcandidat[]){
|
|
|
|
int quit=0;
|
|
|
|
int quit=0, act;
|
|
|
|
while(!quit){
|
|
|
|
while(!quit){
|
|
|
|
printf("#--------------------------------------------------------------------#\n");
|
|
|
|
printf("#--------------------------------------------------------------------#\n");
|
|
|
|
printf("| |\n");
|
|
|
|
printf("| |\n");
|
|
|
@ -18,22 +19,21 @@ void menuResponsable(VilleIUT* tiut[],int *tlogi,candidat* tcandidat[]){
|
|
|
|
printf("Codes correspondant aux différentes actions :\n\n");
|
|
|
|
printf("Codes correspondant aux différentes actions :\n\n");
|
|
|
|
printf("1 : Voir toutes les candidatures du département informatique de Clermont-Ferrand\n");
|
|
|
|
printf("1 : Voir toutes les candidatures du département informatique de Clermont-Ferrand\n");
|
|
|
|
printf("2 : Procéder aux admissions\n\n");
|
|
|
|
printf("2 : Procéder aux admissions\n\n");
|
|
|
|
printf("9 : Quitter\n")
|
|
|
|
printf("9 : Quitter\n");
|
|
|
|
printf("#--------------------------------------------------------------------#\n\n");
|
|
|
|
printf("#--------------------------------------------------------------------#\n\n");
|
|
|
|
int ck=0;
|
|
|
|
int ck=0;
|
|
|
|
while(!ck)
|
|
|
|
while(!ck)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
printf("Choisissez l'action que vous voulez exécuter : ");
|
|
|
|
printf("Choisissez l'action que vous voulez exécuter : ");
|
|
|
|
int act;
|
|
|
|
|
|
|
|
if(scanf("%d",&act)) ck=1;
|
|
|
|
if(scanf("%d",&act)) ck=1;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
switch(act){
|
|
|
|
switch(act){
|
|
|
|
case 1:
|
|
|
|
case 1:
|
|
|
|
ShowCandid(tcandidat,tlogi);
|
|
|
|
ShowCandid(tcandidat,*tlogi);
|
|
|
|
reset();
|
|
|
|
reset();
|
|
|
|
break;
|
|
|
|
break;
|
|
|
|
case 2:
|
|
|
|
case 2:
|
|
|
|
Admissions(tcandidat,tlogi);
|
|
|
|
Admissions(tcandidat,*tlogi);
|
|
|
|
reset();
|
|
|
|
reset();
|
|
|
|
break;
|
|
|
|
break;
|
|
|
|
case 9:
|
|
|
|
case 9:
|
|
|
@ -42,12 +42,12 @@ void menuResponsable(VilleIUT* tiut[],int *tlogi,candidat* tcandidat[]){
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void RechercheVoeuIDInformatique(candidat candid)
|
|
|
|
int RechercheVoeuIDInformatique(candidat candid)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
int ID_found=0;
|
|
|
|
int ID_found=0;
|
|
|
|
for(int i=0;i<candid.nbvoeu||!found;++i)
|
|
|
|
for(int i=0;i<candid.nbchoix||!ID_found;++i)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
if(!strcmp(candidat.TabVoeu[i].dep,"Informatique")) ID_found=i;
|
|
|
|
if(!strcmp(candid.TabVoeu[i]->dep,"Informatique")) ID_found=i;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return ID_found;
|
|
|
|
return ID_found;
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -57,17 +57,17 @@ void ShowCandid(candidat* tcandidat[],int tlogi)
|
|
|
|
for(int i=0;i<tlogi;++i)
|
|
|
|
for(int i=0;i<tlogi;++i)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
int voeuID;
|
|
|
|
int voeuID;
|
|
|
|
if(voeuID=RechercheVoeuIDInformatique(*tcandidat[i]))
|
|
|
|
if((voeuID=RechercheVoeuIDInformatique(*tcandidat[i])))
|
|
|
|
{
|
|
|
|
{
|
|
|
|
printf("Nom - Prenom : %s %s\n\
|
|
|
|
printf("Nom - Prenom : %s %s\n\
|
|
|
|
Note de mathématique : %f\n\
|
|
|
|
Note de mathématique : %f\n\
|
|
|
|
Note de français : %f\n\
|
|
|
|
Note de français : %f\n\
|
|
|
|
Note d'anglais : %f\n\
|
|
|
|
Note d'anglais : %f\n\
|
|
|
|
Note de spécialité : %f\n\n",tcandidat[i].surname,tcandidat[i].name,\
|
|
|
|
Note de spécialité : %f\n\n",tcandidat[i]->surname,tcandidat[i]->name,\
|
|
|
|
tcandidat[i].note[0],tcandidat[i].note[1],tcandidat[i].note[2],\
|
|
|
|
tcandidat[i]->note[0],tcandidat[i]->note[1],tcandidat[i]->note[2],\
|
|
|
|
tcandidat[i].note[3]);
|
|
|
|
tcandidat[i]->note[3]);
|
|
|
|
printf("Décision département : %d\n\
|
|
|
|
printf("Décision département : %d\n\
|
|
|
|
Décision candidat : %d\n\n\n\n",tcandidat[i].ddep,tcandidat[i].vcand);
|
|
|
|
Décision candidat : %d\n\n\n\n",tcandidat[i]->TabVoeu[voeuID]->ddep,tcandidat[i]->TabVoeu[voeuID]->vcand);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -79,8 +79,8 @@ void Admissions(candidat* tcandidat[],int tlogi)
|
|
|
|
float coefMath, coefFr, coefEng, coefSpe;
|
|
|
|
float coefMath, coefFr, coefEng, coefSpe;
|
|
|
|
while (!ck)
|
|
|
|
while (!ck)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
printf("Merci de rentrez dans l'orbre et séparé par une virgule les coefficients suivant : Mathématique Français Anglais Spécialité.\n\n");
|
|
|
|
printf("Merci de rentrer dans l'ordre et séparés par un espace les coefficients suivant : Mathématique Français Anglais Spécialité.\n\n");
|
|
|
|
scanf("%f %f %f %f",coefMath,coefFr,coefEng,coefSpe);
|
|
|
|
scanf("%f %f %f %f",&coefMath,&coefFr,&coefEng,&coefSpe);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
//Note min
|
|
|
|
//Note min
|
|
|
|
ck=0;
|
|
|
|
ck=0;
|
|
|
@ -88,7 +88,7 @@ void Admissions(candidat* tcandidat[],int tlogi)
|
|
|
|
while (!ck)
|
|
|
|
while (!ck)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
printf("Merci de renseignez maintenant la note minimum des candidats acceptés.\n\n");
|
|
|
|
printf("Merci de renseignez maintenant la note minimum des candidats acceptés.\n\n");
|
|
|
|
scanf("%f",minNote);
|
|
|
|
scanf("%f",&minNote);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
//Nb admissions max
|
|
|
|
//Nb admissions max
|
|
|
|
int nbAdmisMax;
|
|
|
|
int nbAdmisMax;
|
|
|
@ -96,36 +96,36 @@ void Admissions(candidat* tcandidat[],int tlogi)
|
|
|
|
while (!ck)
|
|
|
|
while (!ck)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
printf("Veuillez maintenant rentrer le nombre d'admis maximum");
|
|
|
|
printf("Veuillez maintenant rentrer le nombre d'admis maximum");
|
|
|
|
scanf("%d",nbAdmisMax);
|
|
|
|
scanf("%d",&nbAdmisMax);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
//Calcul
|
|
|
|
//Calcul
|
|
|
|
float tabNoteAdmissions;
|
|
|
|
float tabNoteAdmissions[tlogi];
|
|
|
|
for(int i=0;i<tlogi;++i)
|
|
|
|
for(int i=0;i<tlogi;++i)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
float NoteAdmissions=0;
|
|
|
|
float NoteAdmissions=0;
|
|
|
|
NoteAddmissions+=tcandidat[i]->note[0]*coefMath;
|
|
|
|
NoteAdmissions+=tcandidat[i]->note[0]*coefMath;
|
|
|
|
NoteAddmissions+=tcandidat[i]->note[1]*coefMath;
|
|
|
|
NoteAdmissions+=tcandidat[i]->note[1]*coefMath;
|
|
|
|
NoteAddmissions+=tcandidat[i]->note[2]*coefMath;
|
|
|
|
NoteAdmissions+=tcandidat[i]->note[2]*coefMath;
|
|
|
|
NoteAddmissions+=tcandidat[i]->note[3]*coefMath;
|
|
|
|
NoteAdmissions+=tcandidat[i]->note[3]*coefMath;
|
|
|
|
tabNoteAdmissions[i]=NoteAddmissions;
|
|
|
|
tabNoteAdmissions[i]=NoteAdmissions;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
//Admissions
|
|
|
|
//Admissions
|
|
|
|
int admis=0;
|
|
|
|
int admis=0;
|
|
|
|
int attente=0;
|
|
|
|
int attente=0;
|
|
|
|
int tabIDCandidatAdmis;
|
|
|
|
int tabIDCandidatAdmis[tlogi];
|
|
|
|
int tabIDCandidatAttente;
|
|
|
|
int tabIDCandidatAttente[tlogi];
|
|
|
|
int tabNoteCandidatAttente;
|
|
|
|
int tabNoteCandidatAttente[tlogi];
|
|
|
|
for(int i=0;i<tlogi&&admis=<admissionsmax;++i)
|
|
|
|
for(int i=0;i<tlogi && admis<=nbAdmisMax;++i)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
if(tabNoteAdmissions[i]>=minNote)
|
|
|
|
|
|
|
|
int voeuID;
|
|
|
|
int voeuID;
|
|
|
|
|
|
|
|
if(tabNoteAdmissions[i]>=minNote){
|
|
|
|
//Admis
|
|
|
|
//Admis
|
|
|
|
if(admis<admissionsmax)
|
|
|
|
if(admis<nbAdmisMax)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
tabIDCandidatAdmis[admis]=tcandidat[i]->numcandid;
|
|
|
|
tabIDCandidatAdmis[admis]=tcandidat[i]->numcandid;
|
|
|
|
admis++;
|
|
|
|
admis++;
|
|
|
|
voeuID=RechercheVoeuIDInformatique(*tcandidat[i]);
|
|
|
|
voeuID=RechercheVoeuIDInformatique(*tcandidat[i]);
|
|
|
|
tcandidat[i]->TabVoeu[voeuID]=1;
|
|
|
|
tcandidat[i]->TabVoeu[voeuID]->ddep=1;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
//Attente
|
|
|
|
//Attente
|
|
|
|
else
|
|
|
|
else
|
|
|
@ -134,17 +134,18 @@ void Admissions(candidat* tcandidat[],int tlogi)
|
|
|
|
tabNoteCandidatAttente[i-admis]=tabNoteAdmissions[i];
|
|
|
|
tabNoteCandidatAttente[i-admis]=tabNoteAdmissions[i];
|
|
|
|
attente++;
|
|
|
|
attente++;
|
|
|
|
voeuID=RechercheVoeuIDInformatique(*tcandidat[i]);
|
|
|
|
voeuID=RechercheVoeuIDInformatique(*tcandidat[i]);
|
|
|
|
tcandidat[i]->TabVoeu[voeuID]=2;
|
|
|
|
tcandidat[i]->TabVoeu[voeuID]->ddep=2;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
//Refus
|
|
|
|
//Refus
|
|
|
|
else
|
|
|
|
else
|
|
|
|
{
|
|
|
|
{
|
|
|
|
voeuID=RechercheVoeuIDInformatique(*tcandidat[i]);
|
|
|
|
voeuID=RechercheVoeuIDInformatique(*tcandidat[i]);
|
|
|
|
tcandidat[i]->TabVoeu[voeuID]=-1;
|
|
|
|
tcandidat[i]->TabVoeu[voeuID]->ddep=-1;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
//Tri alphabétique
|
|
|
|
//Tri alphabétique
|
|
|
|
trie_??(tabIDCandidatAdmis);
|
|
|
|
//trie_??(tabIDCandidatAdmis);------------------------------------------------------
|
|
|
|
//Tri sur la note
|
|
|
|
//Tri sur la note
|
|
|
|
trie_fusion(tabNoteCandidatAttente,attente);
|
|
|
|
trie_fusion(tabNoteCandidatAttente,attente);
|
|
|
|
//Save Admis liste
|
|
|
|
//Save Admis liste
|
|
|
@ -156,8 +157,8 @@ void Admissions(candidat* tcandidat[],int tlogi)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
else
|
|
|
|
else
|
|
|
|
{
|
|
|
|
{
|
|
|
|
fwrite(fadmis,admis,sizeof(int),1);
|
|
|
|
fwrite(&admis,sizeof(int),1,fadmis);
|
|
|
|
fwrite(fadmis,tabIDCandidatAdmis,sizeof(int),admis);
|
|
|
|
fwrite(tabIDCandidatAdmis,sizeof(int),admis,fadmis);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
//Save Attente liste
|
|
|
|
//Save Attente liste
|
|
|
|
FILE *fattente;
|
|
|
|
FILE *fattente;
|
|
|
@ -168,8 +169,8 @@ void Admissions(candidat* tcandidat[],int tlogi)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
else
|
|
|
|
else
|
|
|
|
{
|
|
|
|
{
|
|
|
|
fwrite(fadmis,attente,sizeof(int),1);
|
|
|
|
fwrite(&attente,sizeof(int),1,fadmis);
|
|
|
|
fwrite(fattente,tabIDCandidatAttente,sizeof(int),attente);
|
|
|
|
fwrite(tabIDCandidatAttente,sizeof(int),attente,fattente);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|