diff --git a/Jsae.c b/Jsae.c index d4c21d4..a5e598e 100644 --- a/Jsae.c +++ b/Jsae.c @@ -3,11 +3,75 @@ int chargement(VilleIUT *tiut[],int *tMax) { FILE *flot; - VilleIUT v; + VilleIUT *v; + MaillonDept *m; + int nb = 0, pos; + char trouve; + flot = fopen("IUT.don", "r"); + if(flot == NULL) + { + printf("Problème d'ouverture du fichier\n"); + return -1; + } + while(!feof(flot)) + { + v = (VilleIUT *)malloc(sizeof(VilleIUT)); + if(v == NULL) + { + printf("Problème allocation ville lors de la lecture du fichier\n"); + return -2; + } + fscanf(flot, "%s", v->nom); + pos = recherche(tiut, nb, v->nom, &trouve); + m = (MaillonDept *)malloc(sizeof(MaillonDept)); + if(m == NULL) + { + printf("Problème allocation département lors de la lecture du fichier\n"); + return -3; + } + *m = lireDep(flot); + if(trouve == 'O') + { + insererDep(tiut[pos],*m); + } + else + { + m->suiv = NULL; + v->lDept = m; + tiut[nb] = v; + } + free(v); + free(m); + nb++; + } + return nb; +} + +MaillonDept lireDep(FILE *flot) +{ MaillonDept m; - flot = fopen("") + fscanf(flot,"%s%d", m.dept, &m.nbP); + fgets(m.respAd,31,flot); + m.respAd[strlen(m.respAd) - 1] = '\0'; + return m; +} + +void afficherDep(MaillonDept m) +{ + printf("%s\t%d\t%s\n", m.dept, m.nbP, m.respAd); +} + +void afficherVille(VilleIUT v) +{ + printf("%s\t", v.nom); + while(v.lDept != NULL) + { + afficherDep(*v.lDept); + v.lDept = v.lDept->suiv; + } } + void globale(void) { int tLog, tMax = 10; @@ -19,7 +83,7 @@ void globale(void) exit(1); } tLog = chargement(tiut,&tMax); - if(tLog == -1) + if(tLog < 0) { printf("Le programme ne peut pas fonctionner\n"); exit(1); diff --git a/Jsae.h b/Jsae.h index 0f8310d..2de6796 100644 --- a/Jsae.h +++ b/Jsae.h @@ -1,4 +1,25 @@ #include #include #include -#include \ No newline at end of file +#include + +typedef struct maillonDept +{ + char dept[31]; + int nbP; + char respAd[31]; + struct mailllonDept *suiv; + +}MaillonDept,*ListeDept; + +typedef struct +{ + char nom[31]; + ListeDept *lDept; + +}VilleIUT; + +int chargement(VilleIUT *tiut[],int *tMax); +MaillonDept lireDep(FILE *flot); +void afficherDep(MaillonDept m); +void globale(void); \ No newline at end of file diff --git a/Msae.c b/Msae.c index 2d959ac..236b52e 100644 --- a/Msae.c +++ b/Msae.c @@ -1,17 +1,52 @@ #include "Msae.h" +void clearpage(void) +{ + char entre; + printf("\nappuyé sur la touche [ENTREE] pour continuer"); + scanf("%*c%c", &entre); + system("clear"); +} + int login(void) { - char id,mdp[31]="mettez20svp"; + int i=3; + char id,mdp[31]="mettez20svp",mdpatrouve[31]; + system("clear"); + printf("################################################################\n\tBienvenue!\n\n\n\tSouhaitez-vous vous connecter en tant qu'utilisateur ou administeur? (U/A)\t"); + scanf("%c%*c",&id); + if(id=='q') + return -1; while(id!='A' && id!='a' && id!='U' && id!='u') { - printf("################################################################\n\tBienvenue!\n\n\n\tSouhaitez-vous vous connecter en tant qu'utilisateur ou administeur? (U/A)\t"); + system("clear"); + printf("################################################################\n\tMauvaise saisie (q pour quitter)\n\n\n\tSouhaitez-vous vous connecter en tant qu'utilisateur ou administeur? (U/A)\t"); scanf("%c%*c",&id); if(id=='q') return -1; } if(id=='A' || id=='a') - return 1; + { + while(i!=0) + { + printf("\n\n\n\tMot de passe :\t"); + system("stty -echo"); + fgets(mdpatrouve,31,stdin); + mdpatrouve[strlen(mdpatrouve)-1] = '\0'; + if( strcmp(mdpatrouve,mdp) == 0 ) + { + system("stty echo"); + return 1; + } + else + { + i--; + printf("Mot de passe incorrect, il vous reste %d chances\n",i); + } + system("stty echo"); + } + return -1; + } else return 0; system("clear"); } diff --git a/Msae.h b/Msae.h index a1553c5..15eb7c5 100644 --- a/Msae.h +++ b/Msae.h @@ -23,4 +23,5 @@ typedef struct //########## fonction commune ############### int login(void); -void globale(void); \ No newline at end of file +void globale(void); +void clearpage(void); diff --git a/Mtest.c b/Mtest.c index e5e437b..d52874d 100644 --- a/Mtest.c +++ b/Mtest.c @@ -2,6 +2,8 @@ int main(void) { - login(); + int a; + a=login(); + printf("%d\n",a); return 0; } \ No newline at end of file