FINAL VERSION avec les commentaires

master
Nicolas BLONDEAU 2 years ago
parent c5a4775321
commit 0e65e5d3a0

@ -18,7 +18,7 @@ void MenuAdministrateur(VilleIUT *tiut[],int n){
printf("\n\t6 - Afficher différents tableaux => FONCTION DE DEV UNIQUEMENT\n");
printf("\n >--------------------------------------------------------<\n");
printf("\n\tVotre choix : ");
scanf("\n%d",&choix);
scanf("\n%d%*c",&choix);
system("cls");
system("clear");
if(choix==1){
@ -58,73 +58,129 @@ void MenuAdministrateur(VilleIUT *tiut[],int n){
}
if(choix==2){
//creer departemement
int quit = 0;
ListeD ld;
printf("\nVille où se situe le département : ");
scanf("%s",Vmodif);
printf("\nNom du département à créer : ");
scanf("%s",departement);
printf("\nNombre de place : ");
scanf("%d",&nbp);
printf("\nNom du responsable : ");
scanf("%s",respon);
for(i=0;i<n;i++){
if(strcmp(tiut[i]->ville, Vmodif)==0){//si la ville existe
tiut[i]->ldept=Enfiler(tiut[i]->ldept,departement,nbp,respon);//ajouter un departement avec ses caractéristiques
tiut[i]->nbDep=tiut[i]->nbDep+1;// ajouter 1 au nombre de departement de la ville
reussi=1;
}
for(i=0;i<n && quit==0;i++){
ld = tiut[i]->ldept;
if(strcmp(tiut[i]->ville, Vmodif)==0){//Si la ville existe
printf("\nNom du département à créer : ");
scanf("%s",departement);
while(ld!=NULL){
if(strcmp(ld->departement, departement)==0 && quit==0){
printf("\nProblème, ce département existe déjà.\n");
quit = 1;
}
ld = ld->suivant;
}
if(quit==0){
printf("\nNombre de place : ");
scanf("%d",&nbp);
printf("\nNom du responsable : ");
scanf("%s",respon);
tiut[i]->ldept=Enfiler(tiut[i]->ldept,departement,nbp,respon);//ajouter un departement avec ses caractéristiques
tiut[i]->nbDep=tiut[i]->nbDep+1;// ajouter 1 au nombre de departement de la ville
reussi=1;
}
}
}
if(reussi==0)
printf("Problème erreur syntaxe\n");// si Ville non trouver ou probleme de syntaxe
if(reussi==0 && quit==0)
printf("Problème, cette ville ne possède pas déjà un IUT.\n");// si Ville non trouver ou probleme de syntaxe
}
if(choix==3){
//supprimer departement et pauser condition pour choisir qui suppr
int exist = 0;
ListeD ld;
printf("\nVille où se situe le département : ");
scanf("%s",Vmodif);
printf("\nNom du département : ");
scanf("%s",departement);
for(i=0;i<n;i++){
if(strcmp(tiut[i]->ville, Vmodif)==0){//si la ville existe
tiut[i]->ldept=suppression(tiut[i]->ldept,departement);//supprimer un departement avec ses caractéristiques
tiut[i]->nbDep=tiut[i]->nbDep-1;// enlever 1 au nombre de departement de la ville
reussi=1;
}
ld = tiut[i]->ldept;
if(strcmp(tiut[i]->ville, Vmodif)==0){//Si la ville existe
printf("\nNom du département à supprimer : ");
scanf("%s",departement);
while(ld!=NULL){
if(strcmp(ld->departement, departement)==0){
tiut[i]->ldept=suppression(tiut[i]->ldept,departement);//supprimer un departement avec ses caractéristiques
tiut[i]->nbDep=tiut[i]->nbDep-1;// enlever 1 au nombre de departement de la ville
reussi = 1;
exist = 1;
}
if(strcmp(ld->departement, departement)!=0 && exist == 0){
exist = 2;
}
ld = ld->suivant;
}
}
}
if(reussi==0)
printf("Problème de syntaxe\n");// si Ville non trouver ou probleme de syntaxe
if(exist==2)
printf("Ce département n'existe pas.");
if(reussi==0 && exist==0)
printf("Problème, cette ville ne possède pas déjà un IUT.\n");// si probleme de syntaxe
}
if(choix==4){
//Lancer et arreter phase de canditature
int exist = 0, k;
ListeD ld;
printf("\nVille où se situe le département : ");
scanf("%s",Vmodif);
printf("\nNom du département : ");
scanf("%s%*c",departement);
printf("\nPour activer la phase d'admission, taper 'A'\nPour la désactiver, taper 'D' : ");
scanf("%c%*c",&AouD);;
scanf("%s%*c",Vmodif);
for(i=0;i<n;i++){
if(strcmp(tiut[i]->ville, Vmodif)==0){//si la ville existe
tiut[i]->ldept=ModifiAouD(tiut[i]->ldept,departement,AouD,n);//modification de L'etat du departement(fase de candidature activer ou desactiver) d'un departement
reussi=1;
}
ld = tiut[i]->ldept;
if(strcmp(tiut[i]->ville, Vmodif)==0){//Si la ville existe
printf("\nNom du département : ");
scanf("%s%*c",departement);
while(ld!=NULL){
if(strcmp(ld->departement, departement)==0){
printf("\nPour activer la phase d'admission, taper 'A'\nPour la désactiver, taper 'D' : ");
scanf("%c%*c",&AouD);
for(k=0;k<n;k++){
tiut[k]->ldept=ModifiAouD(tiut[k]->ldept,departement,AouD,n);//modification de L'etat du departement(fase de candidature activer ou desactiver) d'un departement
reussi=1;
}
exist = 1;
}
if(strcmp(ld->departement, departement)!=0 && exist == 0){
exist = 2;
}
ld = ld->suivant;
}
}
}
if(reussi==0)
printf("Problème erreur syntaxe\n");// si Ville non trouver ou probleme de syntaxe
if(exist==2)
printf("Ce département n'existe pas.");
if(reussi==0 && exist==0)
printf("Problème, cette ville ne possède pas déjà un IUT.\n");// si probleme de syntaxe
}
if(choix==5){
//modification responsable
printf("\nVille où se situe le département à modifier : ");
scanf("%s",Vmodif);
printf("\nNom du département à modifier : ");
scanf("%s",departement);
printf("\nNom du responsable : ");
scanf("%s",respon);
//Modification responsable
int exist = 0;
ListeD ld;
printf("\nVille où se situe le département : ");
scanf("%s%*c",Vmodif);
for(i=0;i<n;i++){
if(strcmp(tiut[i]->ville, Vmodif)==0){//si la ville existe
tiut[i]->ldept=ModifiRespon(tiut[i]->ldept,departement,respon,n);//modification du nom du responsable
reussi=1;
ld = tiut[i]->ldept;
if(strcmp(tiut[i]->ville, Vmodif)==0){//Si la ville existe
printf("\nNom du département : ");
scanf("%s%*c",departement);
while(ld!=NULL){
if(strcmp(ld->departement, departement)==0){
printf("\nNom du nouveau responsable : ");
scanf("%s",respon);
tiut[i]->ldept=ModifiRespon(tiut[i]->ldept,departement,respon,n);//modification du nom du responsable
reussi=1;
exist = 1;
}
if(strcmp(ld->departement, departement)!=0 && exist == 0){
exist = 2;
}
ld = ld->suivant;
}
}
}
if(reussi==0)
printf("Problème erreur syntaxe\n");// si Ville non trouver ou probleme de syntaxe
if(exist==2)
printf("Ce département n'existe pas.");
if(reussi==0 && exist==0)
printf("Problème, cette ville ne possède pas déjà un IUT.\n");// si probleme de syntaxe
}
if(choix==6){
//Fonction servant au développement du programme, fonction de test uniquement, à supprimer peut-être.
@ -136,76 +192,78 @@ void MenuAdministrateur(VilleIUT *tiut[],int n){
}
ListeD suppressionTete(ListeD ld){//suppression du maillon
ListeD ldsvt;
ldsvt=ld->suivant;
free(ld);
return ldsvt;
}
ListeD suppressionTete(ListeD ld){//suppression du maillon
ListeD ldsvt;
ldsvt=ld->suivant;
free(ld);
return ldsvt;
}
ListeD suppression(ListeD ld,char *departement){//recherche du maillon a supprimer
if(ld==NULL)
return ld;
if(strcmp(ld->departement,departement) ==0 )
return suppressionTete(ld);
ld->suivant=suppression(ld->suivant,departement);
ListeD suppression(ListeD ld,char *departement){//recherche du maillon a supprimer
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[31], int MnbP, int n){//modification du nombre de place
int i;
for(i=0;i<=n;i++){
if(strcmp(ld->departement, departement)==0){
ld->nbP=MnbP;
return ld;
}
ld->suivant=ModifinbP(ld->suivant, departement, MnbP, n);//fonction recursive pour chercherdans le maillon suivant
ListeD ModifinbP(ListeD ld, char departement[31], int MnbP, int n){//modification du nombre de place
int i;
for(i=0;i<=n;i++){
if(strcmp(ld->departement, departement)==0){
ld->nbP=MnbP;
return ld;
}
return ld;
ld->suivant=ModifinbP(ld->suivant, departement, MnbP, n);//fonction recursive pour chercherdans le maillon suivant
}
ListeD ModifiRespon(ListeD ld, char departement[30], char respon[30], int n){//modification de nom de responsable
int i;
for(i=0;i<=n;i++){
if(strcmp(ld->departement,departement)==0){
strcpy(ld->resp, respon);
return ld;
}
ld->suivant=ModifiRespon(ld->suivant, departement, respon, n);//fonction recursive pour chercherdans le maillon suivant
return ld;
}
ListeD ModifiRespon(ListeD ld, char departement[30], char respon[30], int n){//modification de nom de responsable
int i;
for(i=0;i<=n;i++){
if(strcmp(ld->departement,departement)==0){
strcpy(ld->resp, respon);
return ld;
}
return ld;
ld->suivant=ModifiRespon(ld->suivant, departement, respon, n);//fonction recursive pour chercherdans le maillon suivant
}
ListeD ModifiAouD(ListeD ld, char departement[30], char AouD,int n){//modification de l'etat du departement(A ou D)
int i;
for(i=0;i<=n;i++){
if(strcmp(ld->departement,departement)==0){
ld->AouD=AouD;
return ld;
}
ld->suivant=ModifiAouD(ld->suivant, departement, AouD, n);//fonction recursive pour chercherdans le maillon suivant
return ld;
}
ListeD ModifiAouD(ListeD ld, char departement[30], char AouD,int n){//modification de l'etat du departement(A ou D)
int i;
for(i=0;i<=n;i++){
if(strcmp(ld->departement,departement)==0){
ld->AouD=AouD;
return ld;
}
return ld;
ld->suivant=ModifiAouD(ld->suivant, departement, AouD, n);//fonction recursive pour chercherdans le maillon suivant
}
return ld;
}
ListeD Enfiler(ListeD ld, char departement[30], int nbP, char resp[30]){//ajouter un maillon avec tout ses carachteristique
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;
if(ld == NULL)
ld = mN;
else {
MaillonDept *mD;
mD = ld;
while(mD->suivant != NULL)
mD = mD->suivant;
mD->suivant = mN;
}
return ld;
ListeD Enfiler(ListeD ld, char departement[30], int nbP, char resp[30]){//ajouter un maillon avec tout ses carachteristique
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;
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){//sauvegarde des deux fichier
int i, k, j;
@ -251,7 +309,7 @@ int i, k, j;
if(choix==5){
fprintf(fe2,"%d %s %s %.2f %.2f %.2f %d\n", tcandidat[j]->numero, tcandidat[j]->nom, tcandidat[j]->prenom, tcandidat[j]->note.Francais, tcandidat[j]->note.Maths, tcandidat[j]->note.Anglais, tcandidat[j]->nb_choix);
while(tcandidat[j]->lchoix!=NULL){//ecrire les candidat
fprintf(fe2,"%s ",tcandidat[j]->lchoix->ville);//ecrir leur choix
fprintf(fe2,"%s ",tcandidat[j]->lchoix->ville);//ecrire leur choix
fprintf(fe2,"%s ",tcandidat[j]->lchoix->departement);
fprintf(fe2,"%d ",tcandidat[j]->lchoix->decision);
fprintf(fe2,"%d\n",tcandidat[j]->lchoix->validation);

@ -3,6 +3,7 @@
#include <string.h>
#include "iut.h"
//Cette fonction permet à l'utilisateur d'avoir un menu avec 5 choix différent (voir ci-dessous)
void MenuUtilisateur(VilleIUT *tiut[], int n){
int choix, succes;
while(choix!=5){
@ -13,7 +14,7 @@ void MenuUtilisateur(VilleIUT *tiut[], int n){
printf("\n\t4 - Recherche d'un département");
printf("\n\t5 - Quitter\n");
printf("\n >--------------------------------------------------<\n");
printf("\n\tVotre choix : ");
printf("\n\tVotre choix : ");//Demande à l'utilisateur d'entrer un nombre correspond à ce qu'il désire faire
scanf("%d%*c",&choix);
system("cls");
system("clear");
@ -22,24 +23,26 @@ void MenuUtilisateur(VilleIUT *tiut[], int n){
succes = rechercheIUT(tiut, n);
}
if(choix==2){
//Recherche d'un département dans un IUT
succes = rechercheDept(tiut, n);
}
if(choix==3){
//Recherche du nombre de places dans un IUT
succes = recherchePlaces(tiut, n);
}
if(choix==4){
//Recherche des infos complètes sur tel département dans tel ville
succes = rechercheMixed(tiut, n);
}
if(choix==5){
//Ici, l'utilisateur retourne au menu précédent, c'est à dire le menu principal (dans le main)
return;
}
/*
if(succes != 0){
//something
}*/
}
}
//Cette fonction de recherche permet simplement de trouver si il y a un IUT dans une ville.
//Retourne 0 si trouvé, sinon 1.
int rechercheIUT(VilleIUT *tiut[], int n){
char rech[31];
int i, trouve = 0;
@ -57,6 +60,8 @@ int rechercheIUT(VilleIUT *tiut[], int n){
return 1;
}
//Cette fonction de recherche permet de trouver une liste des départements d'un IUT.
//Retourne 0 si réussite, sinon 1.
int rechercheDept(VilleIUT *tiut[], int n){
char rech[31];
int i, trouve = 0, j = 0;
@ -77,9 +82,13 @@ int rechercheDept(VilleIUT *tiut[], int n){
else if(i==n-1)
printf("\nAucun département trouvé, il n'y pas d'IUT dans votre ville.\n");
}
return 1;
if(trouve==1)
return 0;
else
return 1;
}
//Cette fonction de recherche permet à l'utilisateur de trouver lme nombre de places dans chaque départment du même nom.
int recherchePlaces(VilleIUT *tiut[], int n){
char rech[31];
int i, trouve = 0, j = 0;
@ -92,17 +101,18 @@ int recherchePlaces(VilleIUT *tiut[], int n){
printf("\nÀ %s :\n", tiut[i]->ville);
printf("%s\t", ld->departement);
printf("Nombre de places : %d\n",ld->nbP);
ld = ld->suivant;
}
else if(i==n-1)
ld = ld->suivant;
if(i==n-1)
printf("\nAucun département trouvé.\n");
}
return 1;
}
//Enfin, cette fonction permet de rechercher les infos complètes d'un département dans une ville précise, c'est à dire le nombre de places, le nom du responsable et le lieu.
int rechercheMixed(VilleIUT *tiut[], int n){
char rech[31], rech2[31];
int i, trouve = 0, j = 0;
int i, trouve = 0, j = 0, quit=0;
ListeD ld;
printf("\nEntrez le nom d'une ville : ");
scanf("%s%*c", &rech);
@ -123,8 +133,9 @@ int rechercheMixed(VilleIUT *tiut[], int n){
}
if(trouve==0)
printf("\nAucun département trouvé.\n");
quit = 1;
}
else if(i==n-1)
else if(i==n-1 && quit==0)
printf("\nAucun département trouvé pour la ville correspondante.\n");
}
printf("\n");

Loading…
Cancel
Save