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.

133 lines
4.7 KiB

#include "SAE.h"
void modificationNbPDept(VilleIUT *tiut[], int nb)
{
char iutModif[30], deptModif[30];
int posIUT, posDept, nbPlaces;
bool trouve;
printf("Dans quel IUT se situe le département que vous voulez modifier ?\n> ");
scanf("%s", iutModif);
posIUT = rechercheVille(tiut, nb, iutModif, &trouve);
if (trouve == false)
{
printf("Cet IUT n'existe pas. Veuillez réessayer.\n");
return;
}
printf("Quel est le département dont vous voulez modifier le nombre de places ?\n> ");
scanf("%s", deptModif);
posDept = rechercheDept(tiut[posIUT]->ldept, deptModif, &trouve);
if (trouve == false)
{
printf("Ce département n'existe pas dans cet IUT. Veuillez réessayer.\n");
return;
}
printf("Il y a actuellement %d places dans ce département. Entrez le nouveau nombre de places :\n> ", getNbP(tiut[posIUT]->ldept, posDept));
scanf("%d", &nbPlaces);
setNbP(tiut[posIUT]->ldept, posDept, nbPlaces);
printf("Le nombre de places est bien passé à %d.\n", getNbP(tiut[posIUT]->ldept, posDept));
}
void creationDept(VilleIUT *tiut[], int nb)
{
char iut[30], nomDept[30], nomResp[30];
int posIUT, nbP;
bool trouve;
printf("Dans quel IUT voulez-vous créer un département ?\n> ");
scanf("%s", iut);
posIUT = rechercheVille(tiut, nb, iut, &trouve);
if (trouve == false)
{
printf("Cet IUT n'existe pas. Veuillez réessayer.\n");
return;
}
printf("Entrez le nom du département que vous voulez créer :\n> ");
scanf("%s", nomDept);
rechercheDept(tiut[posIUT]->ldept, nomDept, &trouve);
if (trouve == true)
{
printf("Ce département existe déjà.\n");
return;
}
printf("Entrez le nombre de places dans le département :\n> ");
scanf("%d%*c", &nbP);
printf("Entrez le nom du responsable :\n> ");
fgets(nomResp, 30, stdin);
nomResp[strlen(nomResp) - 1] = '\0';
tiut[posIUT]->ldept = inserer(tiut[posIUT]->ldept, nomDept, nbP, nomResp);
printf("Vous avez créé le département \"%s\", avec %d places. Son responsable est %s.\n", nomDept, nbP, nomResp);
}
int suppressionDept(VilleIUT *tiut[], int nb)
{
char nomDept[30], iut[30], choix;
int posIUT, posDept;
bool trouve;
printf("Dans quel IUT voulez-vous supprimer un département ?\n> ");
scanf("%s", iut);
posIUT = rechercheVille(tiut, nb, iut, &trouve);
if (trouve == false)
{
printf("Cet IUT n'existe pas. Veuillez réessayer.\n");
return nb;
}
printf("Quel département voulez-vous supprimer ?\n> ");
scanf("%s", nomDept);
posDept = rechercheDept(tiut[posIUT]->ldept, nomDept, &trouve);
if (trouve == false)
{
printf("Ce département n'existe pas dans cet IUT. Veuillez réessayer.\n");
return nb;
}
printf("Voulez-vous vraiment supprimer le département %s de l'IUT %s ? (o/N)\n> ", nomDept, iut);
scanf(" %c%*c", &choix);
if (choix == 'o' || choix == 'O')
{
tiut[posIUT]->ldept = supprimer(tiut[posIUT]->ldept, nomDept);
printf("Vous avez bien supprimé le département %s de l'IUT %s.\n", nomDept, iut);
if (vide(tiut[posIUT]->ldept))
{
for (int i = posIUT; i < nb; i++)
{
tiut[i] = tiut[i + 1];
}
free(tiut[nb]);
printf("L'IUT %s a été supprimé car il n'avait plus de départements.\n", iut);
return nb - 1;
}
}
else
{
printf("Vous avez annulé la suppression du département.\n");
}
return nb;
}
void modificationRespDept(VilleIUT *tiut[], int nb)
{
char iutModif[30], deptModif[30], nouvResp[30];
int posIUT, posDept;
bool trouve;
printf("Dans quel IUT se situe le département que vous voulez modifier ?\n> ");
scanf("%s", iutModif);
posIUT = rechercheVille(tiut, nb, iutModif, &trouve);
if (trouve == false)
{
printf("Cet IUT n'existe pas. Veuillez réessayer.\n");
return;
}
printf("Quel est le département dont vous voulez modifier le responsable ?\n> ");
scanf("%s%*c", deptModif);
posDept = rechercheDept(tiut[posIUT]->ldept, deptModif, &trouve);
if (trouve == false)
{
printf("Ce département n'existe pas dans cet IUT. Veuillez réessayer.\n");
return;
}
printf("Le responsable de ce département est actuellement %s. Entrez le nouveau responsable :\n> ", getResp(tiut[posIUT]->ldept, posDept));
fgets(nouvResp, 30, stdin);
nouvResp[strlen(nouvResp) - 1] = '\0';
setResp(tiut[posIUT]->ldept, posDept, nouvResp);
printf("Le nouveau responsable est %s.\n", getResp(tiut[posIUT]->ldept, posDept));
}