diff --git a/fRox.c b/fRox.c index 4491df7..c114172 100644 --- a/fRox.c +++ b/fRox.c @@ -1,73 +1,273 @@ #include #include "fRox.h" +#include +int Fillvar(int *tAd, char tnom[][15], char tpnom[][15], int *tage, int *tstate, int *tacti, int *tpasseoupas, int *tptsbought, int *tptsbonus, char *tcateg, int tmax)//lis le fichier et met les valeurs dans les tableaux +{ + FILE *f; + f = fopen("donneeClient.don", "r"); + if (f == NULL) + { + printf("Problème d'ouverture du fichier Clients..."); + return -1; + } + int i = 0; + int numAd, age, state, acti, passeoupas, ptsbought, ptsbonus; + char categ, fnom[15], fprenom[15]; + + fscanf(f, "%6d", &numAd); + fscanf(f, "%s", fnom); + fscanf(f, "%s", fprenom); + fscanf(f, "%2d", &age); + fscanf(f, "%d", &state); + fscanf(f, "%d", &acti); + fscanf(f, "%d", &passeoupas); + fscanf(f, "%2d", &ptsbought); + fscanf(f, "%2d%*c", &ptsbonus); + fscanf(f, "%c", &categ); + + while (!feof(f)) + { + if (i == tmax) + { + printf("Problème de gestion: trop de clients enregistrés à ce jour"); + return -1; + } + + + tAd[i] = numAd; + strcpy(tnom[i], fnom); + strcpy(tpnom[i], fprenom); + tage[i] = age; + tstate[i] = state; + tacti[i] = acti; + tpasseoupas[i] = passeoupas; + tptsbought[i] = ptsbought; + tptsbonus[i] = ptsbonus; + tcateg[i] = categ; + + i++; + + fscanf(f, "%6d", &numAd); + fscanf(f, "%s", fnom); + fscanf(f, "%s", fprenom); + fscanf(f, "%2d", &age); + fscanf(f, "%d", &state); + fscanf(f, "%d", &acti); + fscanf(f, "%d", &passeoupas); + fscanf(f, "%2d", &ptsbought); + fscanf(f, "%2d%*c", &ptsbonus); + fscanf(f, "%c", &categ); + + } + fclose(f); + return i; +} + + + //Fonction recherche, (*coderet = 1 si trouvé, = 0 si pas trouvé.) (*rang = rang a laquel se trouve ou doit se trouver la valeur) -void fRecherche(int *tNoClient, int n, int noClient, int *coderet, int *rang) +void fRecherche(int *tAd, int n, int noClient, int *coderet, int *rang) { - int i; - - for(i = 0; i < n; i++) - { - if(tNoClient[i] == noClient) - { - *coderet = 1; - *rang = i; - return; - } - if(tNoClient[i] > noClient) - - *rang = i; - return; - } + int i; + + for(i = 0; i < n; i++) + { + if(tAd[i] == noClient) + { + *coderet = 1; + *rang = i; + return; + } + if(tAd[i] > noClient) + + *rang = i; + return; + } } //Affichage D'UN client avec toutes ses données. -void fAffichage1Client(int *tNoClient, char *tNomClient, char *tPreClient, int *tAge, char *tStatut, int n, int noClient ) +void fAffichage1Client(int *tAd, char tnom[][15], char tpnom[][15], int *tage, int *tstate, int n, int noClient ) { - int i, coderet, rang, trouve, NonTrouve; - - - fRecherche(tNoClient, n, noClient, &coderet, &rang); - - trouve = coderet; - - while (trouve == 0) - { - if(coderet == 0) - { - printf("Le numero client n'a pas été trouvé \n"); - printf("Veuillez entrer a nouveau le N° Client ou taper -1 pour annuler\n"); - scanf("%d", &NonTrouve); - } - if(NonTrouve==-1) - return; - else - fRecherche(tNoClient, n, noClient, &coderet, &rang); - trouve=coderet; - } - printf(" N° Client\t Nom\t Prénom\t Age\t Tarif\n"); - printf("%d\t %c%*c \t %c%*c\t %d\t %c\n", tNoClient[rang], tNomClient[rang], tPreClient[rang], tAge[rang], tStatut[rang]); + int i, coderet, rang, trouve, NonTrouve; + + fRecherche(tAd, n, noClient, &coderet, &rang); + + trouve = coderet; + + while (trouve == 0) + { + if(coderet == 0) + { + printf("Le numero client n'a pas été trouvé \n"); + printf("Veuillez entrer a nouveau le N° Client ou taper -1 pour annuler\n"); + scanf("%d", &NonTrouve); + } + if(NonTrouve==-1) + return; + else + fRecherche(tAd, n, noClient, &coderet, &rang); + trouve=coderet; + } + printf(" N° Client\t Nom\t Prénom\t Age\t Tarif\n"); + printf("%d\t %s \t %S\t %d\t %S\n", tAd[rang], tnom[rang], tpnom[rang], tage[rang], tstate[rang]); } //Affichage plusieurs client avec toutes les données -int afficheTous(int *tNoClient, char *tNomClient, char *tPreClient, int *tAge, char *tStatut, int n, int noClient ) +int afficheTous(int *tAd, char tnom[][15], char tpnom[][15], int *tage, int *tstate, int n, int noClient ) +{ + int i; + printf(" N° Client\t Nom\t Prénom\t Age\t Tarif\n"); + for (int i = 0; i < n; ++i) + { + printf("%d\t %s\t %s\t %d\t %s\n", tAd, tnom, tpnom, tage, tstate); + } + return i; +} + +// calcul du nombre d'entree par jour et l'affiche +int affNbmEntree( int *tpasseoupas, int tlog) { - int i; - printf(" N° Client\t Nom\t Prénom\t Age\t Tarif\n"); - for (int i = 0; i < n; ++i) - { - printf("%d\t %c%*c\t %c%*c\t %d\t %c%*c\n", tNoClient, tNomClient, tPreClient, tAge, tStatut); - } + int i, nbentre; + for( i=0 ; i -#define TAILLE 500 +#include + + +int Fillvar(int *tAd, char tnom[][15], char tpnom[][15], int *tage, int *tstate, int *tacti, int *tpasseoupas, int *tptsbought, int *tptsbonus, char *tcateg, int tmax);//lis le fichier et met les valeurs dans les tableaux +void fRecherche(int *tAd, int n, int noClient, int *coderet, int *rang); +void fAffichage1Client(int *tAd, char tnom[][15], char tpnom[][15], int *tage, int *tstate, int n, int noClient ); +int afficheTous(int *tAd, char tnom[][15], char tpnom[][15], int *tage, int *tstate, int n, int noClient ); +int affNbmEntree( int *tpasseoupas, int tlog); +void cptAct(int *bad, int *muscu, int *foot, int *squa, int * zumba, int chx); +void affNbParAct(int *tacti, int tlog); +void suppr1Client(int *tAd, char tnom[][15], char tpnom[][15], int *tage, int *tstate, int *tacti, int *tpasseoupas, int *tptsbought, int *tptsbonus, char *tcateg, int *n, int tmax); + + -int fchargement(int *tNoClient, char *tNomClient, char *tPreClient, int *tAge, int *tCActiv, int *tActivite, int *tPasseouPas,int *tPtsBought, int *tPtsBonus, char *tCat, int tmax); -void fRecherche(int *tNoClient, int n, int noClient, int *coderet, int *rang); -void fAffichage1Client(int *tNoClient, char *tNomClient, char *tPreClient, int *tAge, char *tStatut, int n, int noClient ); -int afficheTous(int *tNoClient, char *tNomClient, char *tPreClient, int *tAge, char *tStatut, int n, int noClient ) diff --git a/testrox b/testrox deleted file mode 100755 index 79f9a05..0000000 Binary files a/testrox and /dev/null differ diff --git a/testrox.c b/testrox.c old mode 100644 new mode 100755 index 13c2926..4c0795d --- a/testrox.c +++ b/testrox.c @@ -1,13 +1,20 @@ #include +#include #include "fRox.h" -void main(void) -{ int *tNoClient, *tAge, toto, *tCActiv, *tActivite, *tPtsBought, *tPtsBonus; - char *tNomClient, *tPreClient, *tCat; - - toto =fchargement(tNoClient, tNomClient, tPreClient, tAge, tCActiv, tActivite, tActivite, tPtsBought, tPtsBonus, tCat, 500); - printf("%d\n", toto); +int main(void) +{ char nom[15], prenom[15], fnom[15], fprenom[15], bCard, member, categ, recharge, acti1[15], acti2[15], acti3[15]; + int erreur, numAd, age, state, acti, passeoupas, ptsbought,ptsbonus, numCard, avoiravecevann, testnom, testpnom, found = 0, ptrecharge, nbacti, numacti, s1, s2, s3, m1, m2, m3, f1, f2, f3, b1, b2, b3, z1, z2, z3; + FILE *f; + f = fopen("donneeClient.don","r"); + if (f==NULL){printf("Erreur ouverture fichier clients"); fclose(f); return -1;} + erreur = Fillvar(numAd, fnom, prenom, age, state, acti, passeoupas, ptsbought, ptsbonus, categ, 500)//lis le fichier et met les valeurs dans les tableaux +; + + suppr1Client(numAd, fnom, prenom, age, state, acti, passeoupas, ptsbought, ptsbonus, categ, erreur, 500); + + return 0; }