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.
246 lines
8.2 KiB
246 lines
8.2 KiB
#include <stdio.h>
|
|
#include <stdlib.h>
|
|
#include <string.h>
|
|
#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;i<n;i++){
|
|
comp=strcmp(tiut[i]->ville, Vmodif);
|
|
if(comp==0){
|
|
for(j=0;j<tiut[i]->nbDep;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;i<n;i++){
|
|
comp=strcmp(tiut[i]->ville, 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;i<n;i++){
|
|
comp=strcmp(tiut[i]->ville, 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;i<n;i++){
|
|
comp=strcmp(tiut[i]->ville, 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;i<n;i++){
|
|
comp=strcmp(tiut[i]->ville, 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;i<n;i++){
|
|
if(i==tmax){
|
|
printf("\tPb espace");
|
|
fclose(fe);
|
|
return-2;
|
|
}
|
|
if(choix==4){
|
|
fprintf(fe,"%s %d\n",tiut[i]->ville, 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;j<nc;j++){
|
|
if(j==tmax){
|
|
printf("\tPb espace");
|
|
fclose(fe2);
|
|
return-2;
|
|
}
|
|
if(choix==4){
|
|
fprintf(fe,"\n%d %s %s %.2f %.2f %.2f %d\n", tcandidat[i]->numero, 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;
|
|
} |