version final du programme client , finition suspension carte , ajout suppressionclient et affichage dossier client

master
cyriaklinux 1 year ago
parent e6a715538a
commit b746fd985a

@ -1,6 +1,50 @@
#include "sae.h" #include "sae.h"
int modifclientglobal (void)
{
char choix;
int n,coderreur;
printf("Bienvenue dans l'application de modulation client .\nque souhaitez vous faire aujourd'hui ?\n");
while(choix!='X')
{
n=compteurtaillelogique();
printf("Appuyez sur 'A' pour ajouter un client,\nsur 'S' pour changer l'état de suspension d'une carte client,\nsur 'D' pour supprimer un client ,\nsur 'V' pour afficher le dossier client,\nOu sur 'X' pour sortir du programme !\n");
scanf("%c%*c",&choix);
while (choix!='A' && choix!='S' && choix!='D' && choix!='X' && choix!='V')
{
printf("Entrée incorrect, veuillez ressasisir.\n");
scanf("%c%*c",&choix);
}
if (choix=='A')
{
coderreur=ajoutClient();
}
if (choix=='S')
{
coderreur=suspensioncarte(&n);
}
if (choix=='D')
{
coderreur=supressionclient(&n);
}
if (choix=='V')
{
coderreur=affichage();
}
}
printf("au revoir !\n");
return 0;
}
int ajoutClient (void) int ajoutClient (void)
{ {
@ -9,7 +53,7 @@ int ajoutClient (void)
FILE *fichierclient; FILE *fichierclient;
printf("ajout d'un client au programme de fidélité...\nquel est le numéro de ce client ?\n"); printf("ajout d'un client au programme de fidélité...\nquel est le numéro de ce client ?\n");
scanf("%d",&numeroclient); scanf("%d%*c",&numeroclient);
while (numeroclient<0) while (numeroclient<0)
{ {
printf("le numéro du client ne peut être négatif , réessayez\n"); printf("le numéro du client ne peut être négatif , réessayez\n");
@ -39,7 +83,7 @@ int ajoutClient (void)
fscanf(fichierclient,"%d%f%d",&verif,&cagnotte,&suspension); fscanf(fichierclient,"%d%f%d",&verif,&cagnotte,&suspension);
} }
fclose(fichierclient); fclose (fichierclient);
fichierclient=fopen("fichierclient.don","a"); fichierclient=fopen("fichierclient.don","a");
if (fichierclient==NULL) if (fichierclient==NULL)
{ {
@ -47,28 +91,25 @@ int ajoutClient (void)
return -2; return -2;
} }
fprintf(fichierclient,"%d\t%*.2f\t%d\n",numeroclient,100,0); fprintf(fichierclient,"%d\t%.2f\t%d\n",numeroclient,0.00,0);
fclose(fichierclient); fclose(fichierclient);
printf("client ajouté au programme de fidélité ! \n"); printf("client ajouté au programme de fidélité ! \n");
return numeroclient; return numeroclient;
} }
int supensioncarte (void) int suspensioncarte (int *n)
{ {
int tabNC [100]={0}; int tabNC [100];
float tabCAG [100]={0}; float tabCAG [100];
int tabSUS [100]={0}; int tabsuspension [100];
int nc,nouvellecarte,sus,compteur=0,compteurCAG,taillemax=100,recherche,n; int nc,nouvellecarte,suspension,compteur=0,compteurCAG,taillemax=100,recherche;
float cagnotte; float cagnotte;
FILE *fichierClientmegacool; FILE *fichierClientmegacool;
n=compteurtaillelogique();
fichierClientmegacool=fopen("fichierclient.don","r"); fichierClientmegacool=fopen("fichierclient.don","r");
if (fichierClientmegacool==NULL) if (fichierClientmegacool==NULL)
{ {
@ -76,92 +117,111 @@ int supensioncarte (void)
return -2; return -2;
} }
fscanf(fichierClientmegacool,"%d%f%d",&nc,&cagnotte,&sus); fscanf(fichierClientmegacool,"%d%f%d",&nc,&cagnotte,&suspension);
while(feof(fichierClientmegacool)==0) while (feof(fichierClientmegacool)==0)
{ {
tabNC[compteur]=nc; tabNC[compteur]=nc;
tabCAG[compteur]=cagnotte; tabCAG[compteur]=cagnotte;
tabSUS[compteur]=sus; tabsuspension[compteur]=suspension;
compteur=compteur+1; compteur=compteur+1;
if (compteur>n) if (compteur>*n)
{ {
printf("erreur de taille\n"); printf("erreur de taille\n");
return 0; return 0;
} }
fscanf(fichierClientmegacool,"%d%f%d",&nc,&cagnotte,&sus); fscanf(fichierClientmegacool,"%d%f%d",&nc,&cagnotte,&suspension);
} }
fclose(fichierClientmegacool); fclose (fichierClientmegacool);
printf("quel carte souhaitez vous suspendre ou désuspendre (entrez numéro client)\n"); printf("quel carte souhaitez vous suspendre ou désuspendre (entrez numéro client)\n");
scanf("%d",&recherche); scanf("%d%*c",&recherche);
while(recherche<0) while (recherche<0)
{ {
printf("numéro non valide , veuillez réessayez\n"); printf("numéro non valide , veuillez réessayez\n");
scanf("%d",&recherche); scanf("%d",&recherche);
} }
for (compteur=0;compteur<taillemax;compteur++) suspension=2;
for (compteur=0;compteur<*n;compteur++)
{ {
if (tabNC[compteur]==recherche) if (tabNC[compteur]==recherche)
{ {
compteurCAG=compteur; compteurCAG=compteur;
printf("l'état de la carte de ce client est %d\n",tabSUS[compteur]); printf("l'état de la carte de ce client est %d\n",tabsuspension[compteur]);
printf("modifiez l'état (0 pour non suspendu) (1 pour suspendu)\n"); printf("modifiez l'état (0 pour non suspendu) (1 pour suspendu)\n");
scanf("%d",&sus); scanf("%d%*c",&suspension);
while (sus!=1 && sus !=0) while (suspension!=1 && suspension !=0)
{ {
printf("état de suspension non valide , retapez.\n"); printf("état de suspension non valide , retapez.\n");
scanf("%d",&sus); scanf("%d%*c",&suspension);
} }
if (tabSUS[compteur]==sus) if (tabsuspension[compteur]==suspension)
{ {
printf("état de suspension est déja de %d\n",sus); printf("état de suspension est déja de %d\n",suspension);
return -4; return -4;
} }
tabSUS[compteur]=sus; tabsuspension[compteur]=suspension;
} }
compteur=compteur+1; }
if (compteur>taillemax) if (suspension!=0 && suspension!=1)
{ {
printf("le client n'existe pas\n"); printf("le numéro client n'existe pas\n");
return -2; return -7;
}
} }
if (tabSUS[compteurCAG]==1) if (tabsuspension[compteurCAG]==1)
{ {
printf("création d'une nouvelle carte pour le client %d\n",tabNC[compteurCAG]); *n=*n+1;
if (*n<=taillemax)
{
printf("création d'une nouvelle carte pour le client %d\n",tabNC[compteurCAG]);
printf("numéro de la nouvelle carte ?\n"); printf("numéro de la nouvelle carte ?\n");
scanf("%d",&nouvellecarte); scanf("%d%*c",&nouvellecarte);
while (nouvellecarte<0)
for (compteur=0;compteur<n;compteur++)
while (tabNC[n+1]==tabNC[compteur])
{ {
printf("ne peut étre négatif\n");
scanf("%d%*c",&nouvellecarte);
}
for (compteur=0;compteur<*n;compteur++)
while (nouvellecarte==tabNC[compteur])
{
printf("le client existe déja, ressaisissez\n"); printf("le client existe déja, ressaisissez\n");
scanf("%d",&nouvellecarte); scanf("%d%*c",&nouvellecarte);
} }
while(nouvellecarte<0); }
else
{ {
printf("ne peut étre négatif\n"); printf("quantité maximum de client atteint, le fichier est trop petit");
scanf("%d",&nouvellecarte); return -5;
} }
fichierClientmegacool=fopen("fichierclient.don","w");
if (fichierClientmegacool==NULL)
{
printf("Probléme d'ouverture");
return -2;
}
for (compteur=0;compteur<(*n-1);compteur++)
tabNC[n+1]=nouvellecarte; fprintf(fichierClientmegacool, "%d\t%.2f\t%d\n",tabNC[compteur],tabCAG[compteur],tabsuspension[compteur]);
tabCAG[n+1]=tabCAG[compteurCAG];
tabSUS[n+1]=sus;
fclose(fichierClientmegacool);
for (compteur=0;compteur<n;compteur++)
fprintf(fichierClientmegacool, "%d\t%*.2f\t%d\n",tabNC[compteur],tabCAG[compteur],tabSUS[compteur]); fichierClientmegacool=fopen("fichierclient.don","a");
if (fichierClientmegacool==NULL)
{
printf("Probléme d'ouverture");
return -2;
}
fprintf(fichierClientmegacool, "%d\t%.2f\t%d\n",nouvellecarte,tabCAG[compteurCAG],0);
fclose(fichierClientmegacool); fclose(fichierClientmegacool);
@ -171,10 +231,16 @@ int supensioncarte (void)
else else
{ {
fichierClientmegacool=fopen("fichierclient.don","w");
if (fichierClientmegacool==NULL)
{
printf("Probléme d'ouverture");
return -2;
}
for (compteur=0;compteur<n;compteur++) for (compteur=0;compteur<*n;compteur++)
fprintf(fichierClientmegacool, "%d\t%*.2f\t%d\n",tabNC[compteur],tabCAG[compteur],tabSUS[compteur]); fprintf(fichierClientmegacool, "%d\t%.2f\t%d\n",tabNC[compteur],tabCAG[compteur],tabsuspension[compteur]);
fclose(fichierClientmegacool); fclose(fichierClientmegacool);
@ -188,15 +254,107 @@ int supensioncarte (void)
printf("état de suspension modifié !\n"); printf("état de suspension modifié !\n");
} }
return 0;
}
int supressionclient (int *n)
{
int tabNC [100];
float tabCAG [100];
int tabsuspension [100];
int nc,suspension,compteur=0,taillemax=100,recherche2,nt=1;
float cagnotte;
FILE *fichierClientmegacool;
printf("quel est le numéro du client que vous souhaitez supprimer ?\n");
scanf("%d%*c",&recherche2);
fichierClientmegacool=fopen("fichierclient.don","r");
if (fichierClientmegacool==NULL)
{
printf("Probléme d'ouverture");
return -2;
}
fscanf(fichierClientmegacool,"%d%f%d",&nc,&cagnotte,&suspension);
while(feof(fichierClientmegacool)==0)
{
tabNC[compteur]=nc;
tabCAG[compteur]=cagnotte;
tabsuspension[compteur]=suspension;
compteur=compteur+1;
if (compteur>*n)
{
printf("erreur de taille\n");
return 0; return 0;
} }
fscanf(fichierClientmegacool,"%d%f%d",&nc,&cagnotte,&suspension);
}
fclose(fichierClientmegacool);
for (compteur=0;compteur<*n;compteur++)
if (tabNC[compteur]==recherche2)
{
while (compteur<=*n)
{
tabNC[compteur]=tabNC[compteur+1];
tabCAG[compteur]=tabCAG[compteur+1];
tabsuspension[compteur]=tabsuspension[compteur+1];
compteur=compteur+1;
nt=0;
}
*n=*n-1;
}
if (nt!=0)
{
printf("le numéro client n'existe pas\n");
return -6;
}
fichierClientmegacool=fopen("fichierclient.don","w");
if (fichierClientmegacool==NULL)
{
printf("Probléme d'ouverture");
return -2;
}
for (compteur=0;compteur<*n;compteur++)
fprintf(fichierClientmegacool, "%d\t%.2f\t%d\n",tabNC[compteur],tabCAG[compteur],tabsuspension[compteur]);
fclose(fichierClientmegacool);
printf("client supprimé.\n");
return 0;
}
int affichage (void)
{
int compteur,nc,suspension;
float cagnotte;
FILE *flot;
flot=fopen("fichierclient.don","r");
if (flot==NULL)
{
printf("erreur d'ouverture du fichier\n");
return -1;
}
fscanf(flot,"%d%f%d",&nc,&cagnotte,&suspension);
while (feof(flot)==0)
{
printf("%d\t%.2f\t%d\n",nc,cagnotte,suspension);
fscanf(flot,"%d%f%d",&nc,&cagnotte,&suspension);
}
return 0;
}
int compteurtaillelogique (void) int compteurtaillelogique (void)
@ -216,5 +374,3 @@ int compteurtaillelogique (void)
return i; return i;
} }
//fix les probléme de négativités

@ -1,2 +1,2 @@
12 10.00 0 14 0.00 0
18 0.00 0

Binary file not shown.

@ -1,5 +1,8 @@
#include <stdio.h> #include <stdio.h>
int modifclientglobal (void);
int ajoutClient (void); int ajoutClient (void);
int supensioncarte (void); int suspensioncarte (int *n);
int compteurtaillelogique (void); int compteurtaillelogique (void);
int supressionclient (int *n);
int affichage (void);

@ -2,7 +2,6 @@
int main(void) int main(void)
{ {
ajoutClient(); modifclientglobal();
supensioncarte();
return 0; //cette instruction sert a dire au sys que prog termine return 0; //cette instruction sert a dire au sys que prog termine
} }

Loading…
Cancel
Save