Beaucoup de choses.

master
Jade VAN BRABANDT 3 years ago
commit a8b54e797d

Binary file not shown.

@ -9,8 +9,7 @@
void menuUser(VilleIUT* lvIUT[],int tlogi, int CandidOpen, candidat* tcandidat[]) void menuUser(VilleIUT* lvIUT[],int tlogi, int CandidOpen, candidat* tcandidat[])
{ {
int quit=0; int quit=0, ck=0, act;
int ck=0;
while(!quit) while(!quit)
{ {
printf("#--------------------------------------------------------------------#\n"); printf("#--------------------------------------------------------------------#\n");
@ -32,7 +31,6 @@ void menuUser(VilleIUT* lvIUT[],int tlogi, int CandidOpen, candidat* tcandidat[]
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){
@ -60,7 +58,7 @@ void menuUser(VilleIUT* lvIUT[],int tlogi, int CandidOpen, candidat* tcandidat[]
reset(); reset();
break; break;
case 6: case 6:
fonctionp4?????????(); //fonctionp4?????????();
reset(); reset();
break; break;
case 9: case 9:
@ -154,8 +152,7 @@ void SearchIUTFromDep(VilleIUT* lvIUT[],int tlogi)
//Partie Administrateur. //Partie Administrateur.
void menuAdmin(VilleIUT* tiut[],int *tlogi, int* CandidOpen){ void menuAdmin(VilleIUT* tiut[],int *tlogi, int* CandidOpen){
int quit=0; int quit=0, ck=0, act;
int ck=0;
while(!quit){ while(!quit){
printf("#--------------------------------------------------------------------#\n"); printf("#--------------------------------------------------------------------#\n");
printf("| |\n"); printf("| |\n");
@ -166,7 +163,7 @@ void menuAdmin(VilleIUT* tiut[],int *tlogi, int* CandidOpen){
printf("1 : Modifier le nombre de places dans un département.\n"); printf("1 : Modifier le nombre de places dans un département.\n");
printf("2 : Créer un département dans un IUT.\n"); printf("2 : Créer un département dans un IUT.\n");
printf("3 : Supprimer un département dun IUT.\n"); printf("3 : Supprimer un département dun IUT.\n");
if (*CandidOpen) printf("4 : Arrêter la phase de candidature."); if (*CandidOpen) printf("4 : Arrêter la phase de candidature.\n");
else printf("4 : Lancer la phase de candidature."); else printf("4 : Lancer la phase de candidature.");
printf("5 : Modifier le nom d'un responsable de département.\n"); printf("5 : Modifier le nom d'un responsable de département.\n");
printf("6 : Créer un IUT.\n"); printf("6 : Créer un IUT.\n");
@ -175,7 +172,6 @@ void menuAdmin(VilleIUT* tiut[],int *tlogi, int* CandidOpen){
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){
@ -195,12 +191,12 @@ void menuAdmin(VilleIUT* tiut[],int *tlogi, int* CandidOpen){
if(!*CandidOpen) if(!*CandidOpen)
{ {
printf("Ouverture de la phase de candidature effectué !"); printf("Ouverture de la phase de candidature effectué !");
CandidOpen=0; *CandidOpen=0;
} }
else else
{ {
printf("Fermeture de la phase de candidature effectué !"); printf("Fermeture de la phase de candidature effectué !");
CandidOpen=1; *CandidOpen=1;
} }
reset(); reset();
break; break;
@ -229,7 +225,7 @@ void modifPlaces(VilleIUT* tiut[],int tlogi){
return; return;
} }
VilleIUT* v=tiut[noVille]; VilleIUT* v=tiut[noVille];
printf("\n\nEntrez le département à modifier :"); printf("\n\nEntrez le département à modifier : ");
char dep[31]; char dep[31];
scanf("%s",dep); scanf("%s",dep);
if(!existeDep(v->ldept,dep)){ if(!existeDep(v->ldept,dep)){
@ -237,7 +233,7 @@ void modifPlaces(VilleIUT* tiut[],int tlogi){
return; return;
} }
MaillonDep* m=v->ldept; MaillonDep* m=v->ldept;
while(m->departement!=dep) m=m->suivant; while(m->departement!=dep && m->suivant!=NULL) m=m->suivant;
printf("\n\nIl y a actuellement %d place(s) dans le département. A combien voulez-vous modifier ce nombre ?\n\n",m->nbp); printf("\n\nIl y a actuellement %d place(s) dans le département. A combien voulez-vous modifier ce nombre ?\n\n",m->nbp);
int nPlaces; int nPlaces;
scanf("%d",&nPlaces); scanf("%d",&nPlaces);
@ -268,7 +264,7 @@ void creerDep(VilleIUT* tiut[],int tlogi){
} }
MaillonDep* m=v->ldept; MaillonDep* m=v->ldept;
printf("\n\nEntrez le nom du département à créer : "); printf("\n\nEntrez le nom du département à créer : ");
char nomDep[31] char nomDep[31];
scanf("%*c%s",nomDep); scanf("%*c%s",nomDep);
if(!ck){ if(!ck){
if(m->suivant==NULL){ if(m->suivant==NULL){
@ -276,7 +272,7 @@ void creerDep(VilleIUT* tiut[],int tlogi){
m=m->suivant; m=m->suivant;
} }
} }
while(strcmp(nomDep,m->suivant)>0) m=m->suivant; while(strcmp(nomDep,m->departement)>0) m=m->suivant;
m->suivant=(MaillonDep*)malloc(sizeof(MaillonDep)); m->suivant=(MaillonDep*)malloc(sizeof(MaillonDep));
if(m->suivant==NULL){ if(m->suivant==NULL){
perror("malloc"); perror("malloc");
@ -284,7 +280,7 @@ void creerDep(VilleIUT* tiut[],int tlogi){
} }
m=m->suivant; m=m->suivant;
} }
m->departement=nomDep; strcpy(m->departement,nomDep);
printf("\n\nEntrez le nombre de places disponibles dans le département : "); printf("\n\nEntrez le nombre de places disponibles dans le département : ");
scanf("%d",&m->nbp); scanf("%d",&m->nbp);
printf("\n\nEntrez le nom du responsable de département : \n"); printf("\n\nEntrez le nom du responsable de département : \n");

@ -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);
} }
} }

@ -1,5 +1,4 @@
#include "../partie1/saeP1.h"
void menuResponsable(VilleIUT* tiut[],int *tlogi,candidat* tcandidat[]); void menuResponsable(VilleIUT* tiut[],int *tlogi,candidat* tcandidat[]);
void RechercheVoeuIDInformatique(candidat candid); int RechercheVoeuIDInformatique(candidat candid);
void ShowCandid(candidat* tcandidat[],int tlogi); void ShowCandid(candidat* tcandidat[],int tlogi);
void Admissions(candidat* tcandidat[],int tlogi); void Admissions(candidat* tcandidat[],int tlogi);

@ -60,7 +60,7 @@ void Validation(candidat candid)
{ {
if (i==id_Choix&&candid.TabVoeu[i]->ddep==1) if (i==id_Choix&&candid.TabVoeu[i]->ddep==1)
{ {
candid.TabVoeu[i]->vcand=1 candid.TabVoeu[i]->vcand=1;
} }
} }
} }
@ -71,7 +71,7 @@ void Recherche_Dichotomique()
} }
void AffichageAdmisAlphabetique(candidat tCandidAdmis,int tlogi) void AffichageAdmisAlphabetique(candidat* tCandidAdmis,int tlogi)
{ {
for(int i=0;i<tlogi;++i) for(int i=0;i<tlogi;++i)
{ {
@ -84,6 +84,6 @@ void AffichageAdmisAlphabetique(candidat tCandidAdmis,int tlogi)
Note d'anglais : %f\n\ Note d'anglais : %f\n\
Note de spécialité : %f\n",tCandidAdmis[i].numcandid,tCandidAdmis[i].surname,tCandidAdmis[i].name,\ Note de spécialité : %f\n",tCandidAdmis[i].numcandid,tCandidAdmis[i].surname,tCandidAdmis[i].name,\
tCandidAdmis[i].note[0],tCandidAdmis[i].note[1],tCandidAdmis[i].note[2],\ tCandidAdmis[i].note[0],tCandidAdmis[i].note[1],tCandidAdmis[i].note[2],\
tCandidAdmis[i].note[3]"); tCandidAdmis[i].note[3]);
} }
} }

@ -1,4 +1,4 @@
void ListeVoeuValide(candidat candid); void ListeVoeuValide(candidat candid);
void Validation(candidat candid); void Validation(candidat candid);
void Recherche_Dichotomique(); void Recherche_Dichotomique();
void AffichageAdmisAlphabetique(); void AffichageAdmisAlphabetique(candidat* tCandidAdmis,int tlogi);

Loading…
Cancel
Save