#include #include #include #include #include "../partie1/saeP1.h" #include "../annexe/saeAnnexe.h" #include "saeP3.h" //Partie Responsable. void menuResponsable(VilleIUT* tiut[],int *tlogi,candidat* tcandidat[]){ int quit=0, act; while(!quit){ printf("#--------------------------------------------------------------------#\n"); printf("| |\n"); printf("| SAE S1.02 |\n"); printf("| |\n"); printf("#--------------------------------------------------------------------#\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("2 : Procéder aux admissions\n\n"); printf("9 : Quitter\n"); printf("#--------------------------------------------------------------------#\n\n"); int ck=0; while(!ck) { printf("Choisissez l'action que vous voulez exécuter : "); if(scanf("%d",&act)) ck=1; } switch(act){ case 1: ShowCandid(tcandidat,*tlogi); reset(); break; case 2: Admissions(tcandidat,*tlogi); reset(); break; case 9: quit=1; } } } int RechercheVoeuIDInformatique(candidat candid) { int ID_found=0; for(int i=0;idep,"Informatique")) ID_found=i; } return ID_found; } void ShowCandid(candidat* tcandidat[],int tlogi) { for(int i=0;isurname,tcandidat[i]->name,\ tcandidat[i]->note[0],tcandidat[i]->note[1],tcandidat[i]->note[2],\ tcandidat[i]->note[3]); printf("Décision département : %d\n\ Décision candidat : %d\n\n\n\n",tcandidat[i]->TabVoeu[voeuID]->ddep,tcandidat[i]->TabVoeu[voeuID]->vcand); } } } void Admissions(candidat* tcandidat[],int tlogi) { int ck=0; //Coef Note float coefMath, coefFr, coefEng, coefSpe; while (!ck) { 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); } //Note min ck=0; float minNote; while (!ck) { printf("Merci de renseignez maintenant la note minimum des candidats acceptés.\n\n"); scanf("%f",&minNote); } //Nb admissions max int nbAdmisMax; ck=0; while (!ck) { printf("Veuillez maintenant rentrer le nombre d'admis maximum"); scanf("%d",&nbAdmisMax); } //Calcul float tabNoteAdmissions[tlogi]; for(int i=0;inote[0]*coefMath; NoteAdmissions+=tcandidat[i]->note[1]*coefMath; NoteAdmissions+=tcandidat[i]->note[2]*coefMath; NoteAdmissions+=tcandidat[i]->note[3]*coefMath; tabNoteAdmissions[i]=NoteAdmissions; } //Admissions int admis=0; int attente=0; int tabIDCandidatAdmis[tlogi]; int tabIDCandidatAttente[tlogi]; int tabNoteCandidatAttente[tlogi]; for(int i=0;i=minNote){ //Admis if(admisnumcandid; admis++; voeuID=RechercheVoeuIDInformatique(*tcandidat[i]); tcandidat[i]->TabVoeu[voeuID]->ddep=1; } //Attente else { tabIDCandidatAttente[i-admis]=tcandidat[i]->numcandid; tabNoteCandidatAttente[i-admis]=tabNoteAdmissions[i]; attente++; voeuID=RechercheVoeuIDInformatique(*tcandidat[i]); tcandidat[i]->TabVoeu[voeuID]->ddep=2; } } //Refus else { voeuID=RechercheVoeuIDInformatique(*tcandidat[i]); tcandidat[i]->TabVoeu[voeuID]->ddep=-1; } } //Tri alphabétique //trie_??(tabIDCandidatAdmis);------------------------------------------------------ //Tri sur la note trie_fusion(tabNoteCandidatAttente,attente); //Save Admis liste FILE *fadmis; if((fadmis=fopen("src/Database/ListeAdmisInfo.bin","wb"))==NULL) { perror("Erreur :"); exit(errno); } else { fwrite(&admis,sizeof(int),1,fadmis); fwrite(tabIDCandidatAdmis,sizeof(int),admis,fadmis); } //Save Attente liste FILE *fattente; if((fattente=fopen("src/Database/ListeAttenteInfo.bin","wb"))==NULL) { perror("Erreur :"); exit(errno); } else { fwrite(&attente,sizeof(int),1,fadmis); fwrite(tabIDCandidatAttente,sizeof(int),attente,fattente); } } int fusion(int* tabfusion1,int tlogi1, int* tabfusion2, int tlogi2) { int retTab[tlogi1+tlogi2]; int i1=0, i2=0; while (i1