|
|
@ -7,7 +7,7 @@ ListeDept listeDeptNouv(void)
|
|
|
|
return lDept;
|
|
|
|
return lDept;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
ListeDept insérerEntete(ListeDept lDept,Departement d)
|
|
|
|
ListeDept insererEntete(ListeDept lDept,Departement d)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
MaillonDept *m;
|
|
|
|
MaillonDept *m;
|
|
|
|
m = (MaillonDept *)malloc(sizeof(MaillonDept));
|
|
|
|
m = (MaillonDept *)malloc(sizeof(MaillonDept));
|
|
|
@ -21,16 +21,16 @@ ListeDept insérerEntete(ListeDept lDept,Departement d)
|
|
|
|
return m;
|
|
|
|
return m;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
ListeDept insérerDept(ListeDept lDept, Departement d)
|
|
|
|
ListeDept insererDept(ListeDept lDept, Departement d)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
if(lDept == NULL)
|
|
|
|
if(lDept == NULL)
|
|
|
|
return insérerEntete(lDept,d);
|
|
|
|
return insererEntete(lDept,d);
|
|
|
|
if(strcmp(d.dept, lDept->d.dept) < 0)
|
|
|
|
if(strcmp(d.dept, lDept->d.dept) < 0)
|
|
|
|
return insérerEntete(lDept,d);
|
|
|
|
return insererEntete(lDept,d);
|
|
|
|
if(strcmp(d.dept,lDept->d.dept) == 0)
|
|
|
|
if(strcmp(d.dept,lDept->d.dept) == 0)
|
|
|
|
printf("Département déjà présent dans cet IUT\n");
|
|
|
|
printf("Département déjà présent dans cet IUT\n");
|
|
|
|
return lDept;
|
|
|
|
return lDept;
|
|
|
|
lDept->suiv = insérerDept(lDept->suiv,d);
|
|
|
|
lDept->suiv = insererDept(lDept->suiv,d);
|
|
|
|
return lDept;
|
|
|
|
return lDept;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
@ -87,28 +87,6 @@ bool vide(ListeDept lDept)
|
|
|
|
return l->v;
|
|
|
|
return l->v;
|
|
|
|
}*/
|
|
|
|
}*/
|
|
|
|
|
|
|
|
|
|
|
|
int rechercheIUT(VilleIUT *tiut[], int tLog, char ville[], int *trouve)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
int inf,sup,t;
|
|
|
|
|
|
|
|
inf=0;
|
|
|
|
|
|
|
|
sup=tLog-1;
|
|
|
|
|
|
|
|
while(inf<=sup)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
t=(inf+sup)/2;
|
|
|
|
|
|
|
|
if(strcmp(ville,tiut[t]->nom)==0)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
*trouve=1;
|
|
|
|
|
|
|
|
return t;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
if(strcmp(ville,tiut[t]->nom)<0)
|
|
|
|
|
|
|
|
sup=t-1;
|
|
|
|
|
|
|
|
else inf=t+1;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
*trouve=0;
|
|
|
|
|
|
|
|
return inf;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ListeDept rechercherDept(ListeDept lDept, char dept[], int *trouve)
|
|
|
|
ListeDept rechercherDept(ListeDept lDept, char dept[], int *trouve)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
if(vide(lDept))
|
|
|
|
if(vide(lDept))
|
|
|
@ -208,11 +186,14 @@ void creerDept(VilleIUT *tiut[],int tLog)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
printf("Combien de place y a-t-il pour dans ce département ?\nSaisie : ");
|
|
|
|
printf("Combien de place y a-t-il pour dans ce département ?\nSaisie : ");
|
|
|
|
scanf("%d%*c", &d.nbP);
|
|
|
|
scanf("%d%*c", &d.nbP);
|
|
|
|
printf("\n\n");
|
|
|
|
printf("\n");
|
|
|
|
printf("Quel est le nom du responsable du département ?\nSaisie : ");
|
|
|
|
printf("Quel est le nom du responsable du département ?\nSaisie : ");
|
|
|
|
fgets(d.respAd, 31, stdin);
|
|
|
|
fgets(d.respAd, 31, stdin);
|
|
|
|
|
|
|
|
d.respAd[strlen(d.respAd) - 1] = '\0';
|
|
|
|
afficherDep(d);
|
|
|
|
afficherDep(d);
|
|
|
|
tiut[pos]->lDept = insérerDept(tiut[pos]->lDept, d);
|
|
|
|
printf("pos : %d\n", pos);
|
|
|
|
|
|
|
|
tiut[pos]->lDept = insererDept(tiut[pos]->lDept, d);
|
|
|
|
|
|
|
|
afficherVilleDep(*tiut[pos]);
|
|
|
|
return;
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
@ -290,7 +271,7 @@ void menuAdmin(VilleIUT *tiut[], int *tLog, int tMax)
|
|
|
|
printf("| 9 Quitter |\n");
|
|
|
|
printf("| 9 Quitter |\n");
|
|
|
|
printf("|-----------------------------------------------------|\n\n");
|
|
|
|
printf("|-----------------------------------------------------|\n\n");
|
|
|
|
printf("Saisie : ");
|
|
|
|
printf("Saisie : ");
|
|
|
|
scanf("%d",&select);
|
|
|
|
scanf("%d%*c",&select);
|
|
|
|
while(select != 9)
|
|
|
|
while(select != 9)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
system("clear");
|
|
|
|
system("clear");
|
|
|
@ -347,37 +328,26 @@ void menuAdmin(VilleIUT *tiut[], int *tLog, int tMax)
|
|
|
|
printf("| 9 Quitter |\n");
|
|
|
|
printf("| 9 Quitter |\n");
|
|
|
|
printf("|-----------------------------------------------------|\n\n");
|
|
|
|
printf("|-----------------------------------------------------|\n\n");
|
|
|
|
printf("Saisie : ");
|
|
|
|
printf("Saisie : ");
|
|
|
|
scanf("%d",&select);
|
|
|
|
scanf("%d%*c",&select);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void menuCandidat(VilleIUT *tiut[], int *tLog, int tMax)
|
|
|
|
void menuCandidat(VilleIUT *tiut[], int *tLog, int tMax)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
int select = 0;
|
|
|
|
int select = 0;
|
|
|
|
system("clear");
|
|
|
|
|
|
|
|
printf("_____________________________________________________\n");
|
|
|
|
|
|
|
|
printf("| AFFICHAGE CANDIDAT |\n\n");
|
|
|
|
|
|
|
|
printf("|---------------------------------------------------|");
|
|
|
|
|
|
|
|
printf("| 1 Afficher les villes où il y a un IUT |\n");
|
|
|
|
|
|
|
|
printf("| 2 Afficher tous les départements dans chaque IUT |\n");
|
|
|
|
|
|
|
|
printf("| 3 Nombres de places en première année |\n");
|
|
|
|
|
|
|
|
printf("| 4 Rechercher un département dans les IUT |\n");
|
|
|
|
|
|
|
|
printf("| 9 Quitter |\n");
|
|
|
|
|
|
|
|
printf("|---------------------------------------------------|");
|
|
|
|
|
|
|
|
scanf("%d",&select);
|
|
|
|
|
|
|
|
while(select != 9)
|
|
|
|
while(select != 9)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
system("clear");
|
|
|
|
system("clear");
|
|
|
|
printf("_____________________________________________________\n");
|
|
|
|
printf("_____________________________________________________\n");
|
|
|
|
printf("| AFFICHAGE CANDIDAT |\n\n");
|
|
|
|
printf("| AFFICHAGE CANDIDAT |\n\n");
|
|
|
|
printf("|---------------------------------------------------|");
|
|
|
|
printf("|---------------------------------------------------|\n");
|
|
|
|
printf("| 1 Afficher les villes où il y a un IUT |\n");
|
|
|
|
printf("| 1 Afficher les villes où il y a un IUT |\n");
|
|
|
|
printf("| 2 Afficher tous les départements dans chaque IUT |\n");
|
|
|
|
printf("| 2 Afficher tous les départements dans chaque IUT |\n");
|
|
|
|
printf("| 3 Nombres de places en première année |\n");
|
|
|
|
printf("| 3 Nombres de places en première année |\n");
|
|
|
|
printf("| 4 Rechercher un département dans les IUT |\n");
|
|
|
|
printf("| 4 Rechercher un département dans les IUT |\n");
|
|
|
|
printf("| 9 Quitter |\n");
|
|
|
|
printf("| 9 Quitter |\n");
|
|
|
|
printf("|---------------------------------------------------|");
|
|
|
|
printf("|---------------------------------------------------|");
|
|
|
|
scanf("%d",&select);
|
|
|
|
scanf("%d%*c",&select);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
@ -390,3 +360,174 @@ void clearpage(void)
|
|
|
|
scanf("%*c%c", &entre);
|
|
|
|
scanf("%*c%c", &entre);
|
|
|
|
system("clear");
|
|
|
|
system("clear");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int chargement(VilleIUT *tiut[],int tMax)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
FILE *flot;
|
|
|
|
|
|
|
|
int tLog = 0, pos, trouve;
|
|
|
|
|
|
|
|
char nomV[31];
|
|
|
|
|
|
|
|
Departement d;
|
|
|
|
|
|
|
|
flot = fopen("IUT.don","r");
|
|
|
|
|
|
|
|
if(flot == NULL)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
printf("Erreur lors de l'ouverture du fichier\n");
|
|
|
|
|
|
|
|
fclose(flot);
|
|
|
|
|
|
|
|
return -1;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
fscanf(flot, "%s", nomV);
|
|
|
|
|
|
|
|
while(!feof(flot))
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
if(tLog == tMax)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
printf("Tableau tiut plein\n");
|
|
|
|
|
|
|
|
fclose(flot);
|
|
|
|
|
|
|
|
return -3;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
d = lireDep(flot);
|
|
|
|
|
|
|
|
pos = rechercheIUT(tiut,tLog,nomV,&trouve);
|
|
|
|
|
|
|
|
if(trouve == 1)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
tiut[pos]->lDept = insererDept(tiut[pos]->lDept, d);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
else
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
insererVille(tiut, nomV, d, &tLog, tMax, pos);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
fscanf(flot, "%s", nomV);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
fclose(flot);
|
|
|
|
|
|
|
|
return tLog;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Departement lireDep(FILE *flot)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
Departement d;
|
|
|
|
|
|
|
|
fscanf(flot,"%s%d", d.dept, &d.nbP);
|
|
|
|
|
|
|
|
fgets(d.respAd,31,flot);
|
|
|
|
|
|
|
|
d.respAd[strlen(d.respAd) - 1] = '\0';
|
|
|
|
|
|
|
|
return d;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int insererVille(VilleIUT *tiut[], char nomV[], Departement d, int *tLog, int tMax, int pos)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
int i;
|
|
|
|
|
|
|
|
if(*tLog == tMax)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
printf("Tableau plein, insertion impossible\n");
|
|
|
|
|
|
|
|
return -1;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
for(i = *tLog - 1; i >= pos; i--)
|
|
|
|
|
|
|
|
tiut[i + 1] = tiut[i];
|
|
|
|
|
|
|
|
tiut[pos] = (VilleIUT *)malloc(sizeof(VilleIUT));
|
|
|
|
|
|
|
|
if(tiut[pos] == NULL)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
printf("problème d'allocation mémoire lors de l'insertion de la ville\n");
|
|
|
|
|
|
|
|
return -1;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
strcpy(tiut[pos]->nom, nomV);
|
|
|
|
|
|
|
|
tiut[pos]->lDept = listeDeptNouv();
|
|
|
|
|
|
|
|
tiut[pos]->lDept = insererDept(tiut[pos]->lDept,d);
|
|
|
|
|
|
|
|
*tLog = *tLog + 1;
|
|
|
|
|
|
|
|
return 0;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void afficherDep(Departement d)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
printf("_____________________________________________________________________________\n");
|
|
|
|
|
|
|
|
printf("| Département |\n");
|
|
|
|
|
|
|
|
printf("|----------------------------------------------------------------------------|\n");
|
|
|
|
|
|
|
|
printf("| %-32s | %3d | %-32s |\n", d.dept, d.nbP, d.respAd);
|
|
|
|
|
|
|
|
printf("|----------------------------------------------------------------------------|\n");
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void afficherVille(VilleIUT v)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
printf("|----------------------------------|\n");
|
|
|
|
|
|
|
|
printf("| %-32s |\n", v.nom);
|
|
|
|
|
|
|
|
printf("|----------------------------------|\n");
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void afficherTIUT(VilleIUT *tiut[], int tLog)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
int i = 0;
|
|
|
|
|
|
|
|
printf("____________________________________\n");
|
|
|
|
|
|
|
|
printf("| Ville |\n");
|
|
|
|
|
|
|
|
for(i = 0; i < tLog; i++)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
afficherVille(*tiut[i]);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
printf("\n");
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void afficherVilleDep(VilleIUT v)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
ListeDept l;
|
|
|
|
|
|
|
|
printf("_________________________________________________________________________________________________________________\n");
|
|
|
|
|
|
|
|
printf("| Ville | Département |\n");
|
|
|
|
|
|
|
|
printf("|----------------------------------|----------------------------------------------------------------------------|\n");
|
|
|
|
|
|
|
|
l = v.lDept;
|
|
|
|
|
|
|
|
while(l != NULL)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
printf("| %-32s | %-32s | %3d | %-32s |\n", v.nom, l->d.dept, l->d.nbP, l->d.respAd);
|
|
|
|
|
|
|
|
printf("|----------------------------------|----------------------------------------------------------------------------|\n");
|
|
|
|
|
|
|
|
l = l->suiv;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int rechercheIUT(VilleIUT *tiut[], int tLog, char ville[], int *trouve)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
int inf,sup,t;
|
|
|
|
|
|
|
|
inf = 0;
|
|
|
|
|
|
|
|
sup = tLog - 1;
|
|
|
|
|
|
|
|
printf("Ville recherchée : %s\n", ville);
|
|
|
|
|
|
|
|
while(inf <= sup)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
t = (inf + sup) / 2;
|
|
|
|
|
|
|
|
if(strcmp(ville, tiut[t]->nom) == 0)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
*trouve = 1;
|
|
|
|
|
|
|
|
return t;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
if(strcmp(ville, tiut[t]->nom) < 0)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
sup = t - 1;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
else
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
inf = t + 1;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
*trouve = 0;
|
|
|
|
|
|
|
|
return inf;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void globale(void)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
int tLog, retour;
|
|
|
|
|
|
|
|
VilleIUT *tiut[100];
|
|
|
|
|
|
|
|
if(tiut == NULL)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
printf("Problème d'allocation mémoire du tableau tiut\n");
|
|
|
|
|
|
|
|
exit(1);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
tLog = chargement(tiut,100);
|
|
|
|
|
|
|
|
if(tLog < 0)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
printf("Le programme ne peut pas fonctionner\n");
|
|
|
|
|
|
|
|
exit(1);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
retour = login();
|
|
|
|
|
|
|
|
while(retour != -1)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
if(retour == 1)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
menuAdmin(tiut, &tLog, 100);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
if(retour == 0)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
menuCandidat(tiut, &tLog, 100);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
retour = login();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|