#include "SAE.h" void modificationNbPDept(VilleIUT *tiut[], int nbIUT) { 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, nbIUT, 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 nbIUT) { // TODO : Quand on essaie de créer un département dans un IUT inexistant, ça propose de le créer 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, nbIUT, 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 nbIUT) { char nomDept[30], iut[30], choix; int posIUT; bool trouve; printf("Dans quel IUT voulez-vous supprimer un département ?\n> "); scanf("%s", iut); posIUT = rechercheVille(tiut, nbIUT, iut, &trouve); if (trouve == false) { printf("Cet IUT n'existe pas. Veuillez réessayer.\n"); return nbIUT; } printf("Quel département voulez-vous supprimer ?\n> "); scanf("%s", nomDept); rechercheDept(tiut[posIUT]->ldept, nomDept, &trouve); if (trouve == false) { printf("Ce département n'existe pas dans cet IUT. Veuillez réessayer.\n"); return nbIUT; } 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 < nbIUT; i++) { tiut[i] = tiut[i + 1]; } free(tiut[nbIUT]); printf("L'IUT %s a été supprimé car il n'avait plus de départements.\n", iut); return nbIUT - 1; } } else { printf("Vous avez annulé la suppression du département.\n"); } return nbIUT; } void modificationRespDept(VilleIUT *tiut[], int nbIUT) { 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, nbIUT, 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)); }