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.

220 lines
4.5 KiB

#include "sae.h"
int ajoutClient (void)
{
int numeroclient,suspension,verif;
float cagnotte;
FILE *fichierclient;
printf("ajout d'un client au programme de fidélité...\nquel est le numéro de ce client ?\n");
scanf("%d",&numeroclient);
while (numeroclient<0)
{
printf("le numéro du client ne peut être négatif , réessayez\n");
scanf("%d",&numeroclient);
}
fichierclient=fopen("fichierclient.don","r");
if (fichierclient==NULL)
{
printf("Probléme d'ouverture");
return -2;
}
fscanf(fichierclient,"%d%f%d",&verif,&cagnotte,&suspension);
while (feof(fichierclient)==0)
{
if (verif==numeroclient)
{
while(numeroclient==verif)
{
printf("le numéro client existe déja ,veuillez ressaissir\n");
scanf("%d",&numeroclient);
}
}
fscanf(fichierclient,"%d%f%d",&verif,&cagnotte,&suspension);
}
fclose(fichierclient);
fichierclient=fopen("fichierclient.don","a");
if (fichierclient==NULL)
{
printf("Probléme d'ouverture");
return -2;
}
fprintf(fichierclient,"%d\t%*.2f\t%d\n",numeroclient,100,0);
fclose(fichierclient);
printf("client ajouté au programme de fidélité ! \n");
return numeroclient;
}
int supensioncarte (void)
{
int tabNC [100]={0};
float tabCAG [100]={0};
int tabSUS [100]={0};
int nc,nouvellecarte,sus,compteur=0,compteurCAG,taillemax=100,recherche,n;
float cagnotte;
FILE *fichierClientmegacool;
n=compteurtaillelogique();
fichierClientmegacool=fopen("fichierclient.don","r");
if (fichierClientmegacool==NULL)
{
printf("Probléme d'ouverture");
return -2;
}
fscanf(fichierClientmegacool,"%d%f%d",&nc,&cagnotte,&sus);
while(feof(fichierClientmegacool)==0)
{
tabNC[compteur]=nc;
tabCAG[compteur]=cagnotte;
tabSUS[compteur]=sus;
compteur=compteur+1;
if (compteur>n)
{
printf("erreur de taille\n");
return 0;
}
fscanf(fichierClientmegacool,"%d%f%d",&nc,&cagnotte,&sus);
}
fclose(fichierClientmegacool);
printf("quel carte souhaitez vous suspendre ou désuspendre (entrez numéro client)\n");
scanf("%d",&recherche);
while(recherche<0)
{
printf("numéro non valide , veuillez réessayez\n");
scanf("%d",&recherche);
}
for (compteur=0;compteur<taillemax;compteur++)
{
if (tabNC[compteur]==recherche)
{
compteurCAG=compteur;
printf("l'état de la carte de ce client est %d\n",tabSUS[compteur]);
printf("modifiez l'état (0 pour non suspendu) (1 pour suspendu)\n");
scanf("%d",&sus);
while (sus!=1 && sus !=0)
{
printf("état de suspension non valide , retapez.\n");
scanf("%d",&sus);
}
if (tabSUS[compteur]==sus)
{
printf("état de suspension est déja de %d\n",sus);
return -4;
}
tabSUS[compteur]=sus;
}
compteur=compteur+1;
if (compteur>taillemax)
{
printf("le client n'existe pas\n");
return -2;
}
}
if (tabSUS[compteurCAG]==1)
{
printf("création d'une nouvelle carte pour le client %d\n",tabNC[compteurCAG]);
printf("numéro de la nouvelle carte ?\n");
scanf("%d",&nouvellecarte);
for (compteur=0;compteur<n;compteur++)
while (tabNC[n+1]==tabNC[compteur])
{
printf("le client existe déja, ressaisissez\n");
scanf("%d",&nouvellecarte);
}
while(nouvellecarte<0);
{
printf("ne peut étre négatif\n");
scanf("%d",&nouvellecarte);
}
tabNC[n+1]=nouvellecarte;
tabCAG[n+1]=tabCAG[compteurCAG];
tabSUS[n+1]=sus;
for (compteur=0;compteur<n;compteur++)
fprintf(fichierClientmegacool, "%d\t%*.2f\t%d\n",tabNC[compteur],tabCAG[compteur],tabSUS[compteur]);
fclose(fichierClientmegacool);
printf("état de suspension modifié !\n");
}
else
{
for (compteur=0;compteur<n;compteur++)
fprintf(fichierClientmegacool, "%d\t%*.2f\t%d\n",tabNC[compteur],tabCAG[compteur],tabSUS[compteur]);
fclose(fichierClientmegacool);
if (compteur=0)
{
printf("fichier vide");
return -2;
}
printf("état de suspension modifié !\n");
}
return 0;
}
int compteurtaillelogique (void)
{
int i=0,placeholder1,placeholder2;
float placeholder3;
FILE *flot;
flot=fopen("fichierclient.don","r");
fscanf(flot,"%d%f%d",&placeholder1,&placeholder3,&placeholder2);
while(feof(flot)==0)
{
i=i+1;
fscanf(flot,"%d%f%d",&placeholder1,&placeholder3,&placeholder2);
}
fclose(flot);
return i;
}
//fix les probléme de négativités