#include #include #include #include "iut.h" void MenuAdministrateur(VilleIUT *tiut[],int n){ char departement[30], respon[30], Vmodif[31],tVille[31], tdepartemnt[30], AouD; int choix, nbp, i, j, comp, Mnbp,good=0; VilleIUT V; printf("\n0-Revenir au menu\n1-Modifier place\n2-Creer un departement\n3-supprimer un département\n4-Lancer et Arreter la phase de canditature\n5-modifier nom responsable :"); scanf("\n%d",&choix); while(choix>0 && choix<6){ if(choix==1){ printf("\nVille où se situe le departement à modifier :"); scanf("%s",Vmodif); printf("\ndepartement à modifier:"); scanf("%s",departement); for(i=0;iville, Vmodif); if(comp==0){ for(j=0;jnbDep;j++){ if(strcmp(tiut[i]->ldept->departement, departement) == 0 && tiut[i]->ldept->AouD == 'D'){ printf("%c",tiut[i]->ldept->AouD ); printf("pb departement arret phase de candidature\n"); good=1; } } if(good==0){ printf("\nnombre de place apres modification :"); scanf("%d",&Mnbp); tiut[i]->ldept=ModifinbP(tiut[i]->ldept,departement,Mnbp,n); } } } } if(choix==2){ //creer departemement printf("\nVille où se situe le departement :"); scanf("%s",Vmodif); printf("\ndepartement a creer :"); scanf("%s",departement); printf("\nnombre de place :"); scanf("%d",&nbp); printf("\nnom du responsable :"); scanf("%s",respon); for(i=0;iville, Vmodif); if(comp==0){ tiut[i]->ldept=Enfiler(tiut[i]->ldept,departement,nbp,respon); tiut[i]->nbDep=tiut[i]->nbDep+1; } } } if(choix==3){ //supprimer departement et pauser condition pour choisir qui suppr printf("\nVille où se situe le departement :"); scanf("%s",Vmodif); printf("\ndepartement :"); scanf("%s",departement); for(i=0;iville, Vmodif); if(comp==0){ tiut[i]->ldept=suppression(tiut[i]->ldept,departement); tiut[i]->nbDep=tiut[i]->nbDep-1; } } } if(choix==4){ //Lancer et arreter phase de canditature printf("\nVille où se situe le departement :"); scanf("%s",Vmodif); printf("\ndepartement :"); scanf("%s",departement); printf("\nPour Activer taper A pour desactiver taper D :"); scanf("%c",&AouD); for(i=0;iville, Vmodif); if(comp==0){ tiut[i]->ldept=ModifiAouD(tiut[i]->ldept,departement,AouD,n); } } } if(choix==5){ //modification responsable printf("\nVille où se situe le departement à modifier :"); scanf("%s",Vmodif); printf("\ndepartement à modifier:"); scanf("%s",departement); printf("\nnom du responsable :"); scanf("%s",respon); for(i=0;iville, Vmodif); if(comp==0){ tiut[i]->ldept=ModifiRespon(tiut[i]->ldept,departement,respon,n); } } } affichage(tiut, n); printf("\nVoulez-vous choisir une autre fonction ? Sinon taper 0 pour valider : "); scanf("%d%*c",&choix); } } ListeD suppressionTete(ListeD ld){ ListeD ldsvt; ldsvt=ld->suivant; free(ld); return ldsvt; } ListeD suppression(ListeD ld,char *departement){ if(ld==NULL) return ld; if(strcmp(ld->departement,departement) ==0 ) return suppressionTete(ld); ld->suivant=suppression(ld->suivant,departement); return ld; } ListeD ModifinbP(ListeD ld, char departement[30], int MnbP, int n){ int comp,trouv,i; for(i=0;i<=n;i++){ comp=strcmp(ld->departement,departement); if(comp==0) trouv=i; } if(trouv==0){ printf("departement non existant"); exit(1); } else{ ld->nbP=MnbP; } return ld; } ListeD ModifiRespon(ListeD ld, char departement[30], char respon[30], int n){ int comp,trouv,i; for(i=0;i<=n;i++){ comp=strcmp(ld->departement,departement); if(comp==0) trouv=i; } if(trouv==0){ printf("departement non existant"); exit(1); } else{ strcpy(ld->resp, respon); } return ld; } ListeD ModifiAouD(ListeD ld, char departement[30], char AouD,int n){ int comp,trouv,i; for(i=0;i<=n;i++){ comp=strcmp(ld->departement,departement); if(comp==0) trouv=i; } if(trouv==0){ printf("departement non existant"); exit(1); } else{ ld->AouD = AouD; } return ld; } ListeD Enfiler(ListeD ld, char departement[30], int nbP, char resp[30]) { MaillonDept *mN; mN = (MaillonDept*)malloc(sizeof(MaillonDept)); if(mN==NULL){printf("pb ouv malloc");exit(1);} strcpy(mN->departement, departement); mN->nbP = nbP; strcpy(mN->resp, resp); mN->AouD = 'A'; mN->suivant = NULL; printf("\naa"); if (ld == NULL) { ld = mN; } else { MaillonDept *mD; mD = ld; while (mD->suivant != NULL) { mD = mD->suivant; } mD->suivant = mN; } return ld; } int fsauvegarde(VilleIUT *tiut[], Candidat *tcandidat[], int n, int nc, int choix, int tmax){ int i, k, j; //Sauvegarde du fichier d'adhérents FILE *fe; fe=fopen("ville.don","w"); if(fe==NULL){ printf("\tPb overture fichier"); return-1; } for(i=0;iville, tiut[i]->nbDep); while(tiut[i]->ldept!=NULL){ fprintf(fe,"%s ",tiut[i]->ldept->departement); fprintf(fe,"%d ",tiut[i]->ldept->nbP); fprintf(fe,"%s ",tiut[i]->ldept->resp); fprintf(fe,"%c\n",tiut[i]->ldept->AouD); tiut[i]->ldept = tiut[i]->ldept->suivant; } } } fclose(fe); //Sauvegarde du fichier d'activités FILE *fe2; fe2=fopen("Candidat.don","w"); //Ici, le a permet d'écrire à la suite des informations précédentes dans le fichier sans les supprimer if(fe==NULL){ printf("\tpb overture fichier"); return-1; } for(j=0;jnumero, tcandidat[i]->nom, tcandidat[i]->prenom, tcandidat[i]->note.Francais, tcandidat[i]->note.Maths, tcandidat[i]->note.Anglais, tcandidat[i]->nb_choix); while(tiut[i]->ldept!=NULL){ fprintf(fe,"%s ",tcandidat[i]->lchoix->ville); fprintf(fe,"%s ",tcandidat[i]->lchoix->departement); fprintf(fe,"%d ",tcandidat[i]->lchoix->decision); fprintf(fe,"%d\n",tcandidat[i]->lchoix->validation); tcandidat[i]->lchoix = tcandidat[i]->lchoix->suivant; } } fclose(fe2); } return 0; }