nouvelle fonction tableau et ajout doc doxygen prog cyriauqe le goat trés beau trés musclé trés intelligent etc etc

master
Cyriaque SEGERIE 1 year ago
parent 8a190f3d5f
commit c100f4fe5f

@ -224,17 +224,24 @@ void EcrireFichier(int Tref[], float Tpoid[],float Tvolume[],float Tprix[],int n
void modifclientglobal (void)
{
int n,coderreur,choix;
int n,choix,tmax=100,coderreur;
int tabNC [100]={0}, tabsuspension [100]={0};
float tabCAG [100]={0};
coderreur=creationfichier();
//coderreur=creationfichier();
n=tableaucharge(tabNC,tabCAG,tabsuspension,tmax);
if (n==-1 || n==-2)
{
printf("tableau non chargée, erreur\n");
return;
}
printf("Bienvenue dans l'application de modulation client .\nque souhaitez vous faire aujourd'hui ?\n");
while(choix!=9)
{
n=compteurtaillelogique();
printf("\n");
printf("Appuyez sur '1' pour ajouter un client,\nsur '2' pour changer l'état de suspension d'une carte client,\nsur '3' pour supprimer un client ,\nsur '4' pour afficher le fichier client,\nsur '5' pour chercher un seul client dans le fichier,\nOu sur '9' pour sortir du programme !\n");
printf("Appuyez sur '1' pour ajouter un client,\nsur '2' pour changer l'état de suspension d'une carte client,\nsur '3' pour supprimer un client ,\nsur '4' pour afficher le fichier client,\nsur '5' pour chercher un seul client dans le fichier,\nOu sur '9' pour enregistrer et sortir du programme !\n");
scanf("%d",&choix);
while (choix!=1 && choix!=2 && choix!=3 && choix!=4 && choix!=5 && choix!=9)
{
@ -243,138 +250,152 @@ void modifclientglobal (void)
}
if (choix==1)
{
coderreur=ajoutClient();
coderreur=ajoutClient(tabNC,tabCAG,tabsuspension,&n,tmax);
}
if (choix==2)
{
coderreur=suspensioncarte(&n);
coderreur=suspensioncarte(tabNC,tabCAG,tabsuspension,&n,tmax);
}
if (choix==3)
{
coderreur=supressionclient(&n);
coderreur=supressionclient(tabNC,tabCAG,tabsuspension,&n,tmax);
}
if (choix==4)
{
coderreur=affichageall();
coderreur=affichageall(tabNC,tabCAG,tabsuspension,&n);
}
if (choix==5)
{
coderreur=affichagesolo();
coderreur=affichagesolo(tabNC,tabCAG,tabsuspension,&n);
}
}
coderreur=enregistrement(tabNC,tabCAG,tabsuspension,&n);
printf("Au revoir !\n");
return;
}
int ajoutClient (void)
int tableaucharge(int tabNC[],float tabCAG[],int tabsuspension[],int tmax)
{
int numeroclient,suspension,verif;
int compteur=0,nc,suspension;
float cagnotte;
FILE *fichierclient;
printf("\n");
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("\n");
printf("Probléme d'ouverture");
return -2;
}
fscanf(fichierclient,"%d%f%d",&verif,&cagnotte,&suspension);
fscanf(fichierclient,"%d%f%d",&nc,&cagnotte,&suspension);
while (feof(fichierclient)==0)
{
if (verif==numeroclient)
if (compteur>tmax)
{
printf("erreur de taille\n");
return -1;
}
tabNC[compteur]=nc;
tabCAG[compteur]=cagnotte;
tabsuspension[compteur]=suspension;
compteur=compteur+1;
fscanf(fichierclient,"%d%f%d",&nc,&cagnotte,&suspension);
}
fclose (fichierclient);
return compteur-1;
}
int ajoutClient (int tabNC[],float tabCAG[],int tabsuspension[],int *tlogique,int tmax)
{
int numeroclient,suspension,compteur=0;
float cagnotte;
if (*tlogique+1>tmax)
{
printf("tableau trop petit\n");
return -1;
}
printf("ajout d'un client au programme de fidélité...\nquel est le numéro de ce client ?\n'999' pour quitter.\n");
scanf("%d",&numeroclient);
if (numeroclient==999)
{
printf("retour au menu global\n");
return 0;
}
while (numeroclient<0)
{
printf("le numéro du client ne peut être négatif , réessayez\n'999' pour quitter.");
scanf("%d",&numeroclient);
if (numeroclient==999)
{
printf("retour au menu global\n");
return 0;
}
}
while (compteur<=*tlogique)
{
if (tabNC[compteur]==numeroclient)
{
while(numeroclient==verif)
while(tabNC[compteur]==numeroclient)
{
printf("le numéro client existe déja ,veuillez ressaissir\n");
scanf("%d",&numeroclient);
}
}
fscanf(fichierclient,"%d%f%d",&verif,&cagnotte,&suspension);
compteur=compteur+1;
}
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,0.00,0);
fclose(fichierclient);
printf("client ajouté au programme de fidélité ! \n");
return numeroclient;
*tlogique=*tlogique+1;
tabNC[*tlogique]=numeroclient;
tabCAG[*tlogique]=0.00;
tabsuspension[*tlogique]=0;
}
int suspensioncarte (int *n)
{
int tabNC [100];
float tabCAG [100];
int tabsuspension [100];
printf("client ajouté au programme de fidélité !\n");
return 0;
int nc,nouvellecarte,suspension,compteur=0,compteurCAG,taillemax=100,recherche;
float cagnotte;
}
FILE *fichierclients;
int suspensioncarte (int tabNC[],float tabCAG[],int tabsuspension[],int *tlogique,int tmax)
fichierclients=fopen("fichierclient.don","r");
if (fichierclients==NULL)
{
printf("\n");
printf("Probléme d'ouverture");
return -2;
}
{
fscanf(fichierclients,"%d%f%d",&nc,&cagnotte,&suspension);
while (feof(fichierclients)==0)
{
if (compteur>*n)
{
printf("erreur de taille\n");
return 0;
}
tabNC[compteur]=nc;
tabCAG[compteur]=cagnotte;
tabsuspension[compteur]=suspension;
compteur=compteur+1;
fscanf(fichierclients,"%d%f%d",&nc,&cagnotte,&suspension);
}
fclose (fichierclients);
printf("\n");
printf("quel carte souhaitez vous suspendre ou désuspendre (entrez numéro client)\n");
int nouvellecarte,suspension=2,compteur=0,compteurCAG,recherche;
printf("quel carte souhaitez vous suspendre ou désuspendre (entrez numéro client)\n'999' pour quitter.\n");
scanf("%d",&recherche);
if (recherche==999)
{
printf("retour au menu global\n");
return 0;
}
while (recherche<0)
{
printf("numéro non valide , veuillez réessayez\n");
scanf("%d",&recherche);
if (recherche==999)
{
printf("retour au menu global\n");
return 0;
}
}
suspension=2;
for (compteur=0;compteur<*n;compteur++)
for (compteur=0;compteur<=*tlogique;compteur++)
{
if (tabNC[compteur]==recherche)
{
compteurCAG=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");
scanf("%d",&suspension);
@ -390,7 +411,6 @@ int suspensioncarte (int *n)
}
tabsuspension[compteur]=suspension;
}
}
if (suspension!=0 && suspension!=1)
@ -401,138 +421,81 @@ int suspensioncarte (int *n)
if (tabsuspension[compteurCAG]==1)
{
*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");
scanf("%d",&nouvellecarte);
while (nouvellecarte<0)
{
printf("ne peut étre négatif\n");
scanf("%d",&nouvellecarte);
}
for (compteur=0;compteur<*n;compteur++)
while (nouvellecarte==tabNC[compteur])
{
printf("le client existe déja, ressaisissez\n");
scanf("%d",&nouvellecarte);
while(nouvellecarte<0){
printf("le numéro ne peut étre négatif , rééssayez.\n");
scanf("%d",&nouvellecarte);
}
}
}
else
if (*tlogique+1>tmax)
{
printf("quantité maximum de client atteint, le fichier est trop petit");
return -5;
printf("tableau trop petit\n");
return -1;
}
fichierclients=fopen("fichierclient.don","w");
if (fichierclients==NULL)
{
printf("Probléme d'ouverture");
return -2;
}
*tlogique=*tlogique+1;
for (compteur=0;compteur<(*n-1);compteur++)
fprintf(fichierclients, "%d\t%.2f\t%d\n",tabNC[compteur],tabCAG[compteur],tabsuspension[compteur]);
fclose(fichierclients);
fichierclients=fopen("fichierclient.don","a");
if (fichierclients==NULL)
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);
while (nouvellecarte<0)
{
printf("Probléme d'ouverture");
return -2;
printf("ne peut étre négatif\n");
scanf("%d",&nouvellecarte);
}
fprintf(fichierclients, "%d\t%.2f\t%d\n",nouvellecarte,tabCAG[compteurCAG],0);
fclose(fichierclients);
printf("état de suspension modifié !\n");
}
else
{
fichierclients=fopen("fichierclient.don","w");
if (fichierclients==NULL)
for (compteur=0;compteur<=*tlogique;compteur++)
{
printf("Probléme d'ouverture");
return -2;
while (nouvellecarte==tabNC[compteur])
{
printf("le client existe déja, ressaisissez\n");
scanf("%d",&nouvellecarte);
while(nouvellecarte<0){
{
printf("le numéro ne peut étre négatif , rééssayez.\n");
scanf("%d",&nouvellecarte);
}
}
}
for (compteur=0;compteur<*n;compteur++)
fprintf(fichierclients, "%d\t%.2f\t%d\n",tabNC[compteur],tabCAG[compteur],tabsuspension[compteur]);
fclose(fichierclients);
if (compteur=0)
{
printf("fichier vide");
return -2;
}
tabNC[*tlogique]=nouvellecarte;
tabCAG[*tlogique]=tabCAG[compteurCAG];
tabsuspension[*tlogique]=0;
printf("état de suspension modifié et nouvelle carte crée !\n");
return 0;
}
printf("état de suspension modifié !\n");
if (tabsuspension[compteurCAG]==0)
{
printf("état de suspension modifié !\n");
return 0;
}
return 0;
}
}
int supressionclient (int *n)
int supressionclient (int tabNC[],float tabCAG[],int tabsuspension[],int *tlogique,int tmax)
{
int tabNC [100];
float tabCAG [100];
int tabsuspension [100];
int nc,suspension,compteur=0,taillemax=100,recherche2,nt=1;
float cagnotte;
FILE *fichierclients;
int compteur,recherche,nt=1;
printf("\n");
printf("quel est le numéro du client que vous souhaitez supprimer ?\n");
scanf("%d",&recherche2);
while(recherche2<0){
printf("ne peut étre négatif\n");
scanf("%d",&recherche2);
}
fichierclients=fopen("fichierclient.don","r");
if (fichierclients==NULL)
printf("quel est le numéro du client que vous souhaitez supprimer ?\n'999' pour quitter.\n");
scanf("%d",&recherche);
if (recherche==999)
{
printf("Probléme d'ouverture");
return -2;
printf("retour au menu global\n");
return 0;
}
fscanf(fichierclients,"%d%f%d",&nc,&cagnotte,&suspension);
while(feof(fichierclients)==0)
while(recherche<0)
{
if (compteur>*n)
{
printf("erreur de taille\n");
return 0;
}
tabNC[compteur]=nc;
tabCAG[compteur]=cagnotte;
tabsuspension[compteur]=suspension;
compteur=compteur+1;
fscanf(fichierclients,"%d%f%d",&nc,&cagnotte,&suspension);
printf("ne peut étre négatif\n'999' pour quitter.");
scanf("%d",&recherche);
if (recherche==999)
{
printf("retour au menu global\n");
return 0;
}
}
fclose(fichierclients);
for (compteur=0;compteur<*n;compteur++)
if (tabNC[compteur]==recherche2)
for (compteur=0;compteur<=*tlogique;compteur++)
if (tabNC[compteur]==recherche)
{
while (compteur<=*n)
while (compteur<=*tlogique)
{
tabNC[compteur]=tabNC[compteur+1];
tabCAG[compteur]=tabCAG[compteur+1];
@ -541,94 +504,63 @@ int supressionclient (int *n)
nt=0;
}
*n=*n-1;
*tlogique=*tlogique-1;
}
if (nt!=0)
{
printf("le numéro client n'existe pas\n");
return -6;
return -4;
}
fichierclients=fopen("fichierclient.don","w");
if (fichierclients==NULL)
{
printf("Probléme d'ouverture");
return -2;
}
for (compteur=0;compteur<*n;compteur++)
fprintf(fichierclients, "%d\t%.2f\t%d\n",tabNC[compteur],tabCAG[compteur],tabsuspension[compteur]);
fclose(fichierclients);
printf("client supprimé.\n");
return 0;
}
int affichageall (void)
int affichageall (int tabNC[],float tabCAG[],int tabsuspension[],int *tlogique)
{
int nc,suspension;
float cagnotte;
FILE *flot;
int compteur;
printf("\n");
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);
}
fclose(flot);
for (compteur=0;compteur<=*tlogique;compteur++)
printf("%d\t%.2f\t%d\n",tabNC[compteur],tabCAG[compteur],tabsuspension[compteur]);
return 0;
}
int affichagesolo (void)
int affichagesolo (int tabNC[],float tabCAG[],int tabsuspension[],int *tlogique)
{
int rechercher,nc,suspension,validateur=0;
int rechercher,compteur=0;
float cagnotte;
FILE *flot;
flot=fopen("fichierclient.don","r");
if (flot==NULL)
{
printf("erreur d'ouverture du fichier\n");
return -1;
}
printf("\n");
printf("quel client recherchez vous ?\n");
printf("quel client recherchez vous ?\n'999' pour quitter.\n");
scanf("%d",&rechercher);
while(rechercher<0){
printf("ne peut étre négatif\n");
scanf("%d",&rechercher);
if (rechercher==999)
{
printf("retour au menu global\n");
return 0;
}
printf("\n");
fscanf(flot,"%d%f%d",&nc,&cagnotte,&suspension);
while (feof(flot)==0)
while(rechercher<0)
{
if (nc==rechercher)
printf("ne peut étre négatif\n'999' pour quitter.");
scanf("%d",&rechercher);
if (rechercher==999)
{
printf("%d\t%.2f\t%d\n",nc,cagnotte,suspension);
validateur=12;
printf("retour au menu global\n");
return 0;
}
fscanf(flot,"%d%f%d",&nc,&cagnotte,&suspension);
}
fclose(flot);
if (validateur!=12)
printf("\n");
while (compteur<*tlogique)
{
printf("ce client n'existe pas\n");
return 1;
if (tabNC[compteur]==rechercher)
{
printf("%d\t%.2f\t%d\n",tabNC[compteur],tabCAG[compteur],tabsuspension[compteur]);
return 0;
}
}
printf("ce client n'existe pas\n");
return 0;
}
@ -640,21 +572,19 @@ int creationfichier(void)
return 0;
}
int compteurtaillelogique (void)
int enregistrement (int tabNC[],float tabCAG[],int tabsuspension[],int *tlogique)
{
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;
int compteur;
FILE *flot;
flot=fopen("fichierclient.don","w");
if (flot==NULL)
{
printf("probléme d'ouverture fichier.");
return -1;
}
for (compteur=0;compteur<=*tlogique;compteur++)
fprintf(flot,"%d\t%.2f\t%d\n",tabNC[compteur],tabCAG[compteur],tabsuspension[compteur]);
return 0;
}

@ -88,52 +88,86 @@ int posRef(int Tref[],int refR, int n);
*/
void EcrireFichier(int Tref[], float Tpoid[],float Tvolume[],float Tprix[],int n);
/**
*\brief Permet d'accéder à toutes les autres fonctions de cette partie.
*\brief lance le menu global de la partie gestion fichier client.
*\param void rien
*\return rien
*/
void modifclientglobal (void);
/**
*\brief Permet d'ajouter un client au fichier.
*\return Code d'erreur != 0 si un probléme se passe.
*\brief charge les tableaux avec "fichierclient.don".
*\param[in,out] tabNC tableau d'entier, contient les identifiant des cartes clients.
*\param[in,out] tabCAG tableau de flottant, contient les cagnottes des clients.
*\param[in,out] tabsuspension tableau d'entier, contient informations sur la suspension des cartes.
*\param[in] tmax entier, taille physique des tableaux.
*\return la taille logique.
*/
int ajoutClient (void);
int tableaucharge(int tabNC[],float tabCAG[],int tabsuspension[],int tmax);
/**
*\brief Permet de suspendre la carte d'un client ou de la désuspendre (Et de créer un utilisateur si la carte se fais suspendre).
*\return Code d'erreur != 0 si un probléme se passe.
*\param[in] n Taille logique des tableaux.
*\brief permet d'ajouter un client dans les tableaux.
*\param[in,out] tabNC tableau d'entier, contient les identifiant des cartes clients.
*\param[in,out] tabCAG tableau de flottant, contient les cagnottes des clients.
*\param[in,out] tabsuspension tableau d'entier, contient informations sur la suspension des cartes.
*\param[in] tmax entier, taille physique des tableaux.
*\param[in,out] tlogique pointeur de la taille logique , modifier lors de l'ajout.
*\return code d'erreur si une erreur apparaît.
*/
int suspensioncarte (int *n);
int ajoutClient (int tabNC[],float tabCAG[],int tabsuspension[],int *tlogique,int tmax);
/**
*\brief Permet de compter le nombre de ligne d'un fichier et donc la taille logique des tableaux.
*\return Taille logique des tableaux.
*\brief permet de suspendre OU désuspendre un client.
*\param[in,out] tabNC tableau d'entier, contient les identifiant des cartes clients.
*\param[in,out] tabCAG tableau de flottant, contient les cagnottes des clients.
*\param[in,out] tabsuspension tableau d'entier, contient informations sur la suspension des cartes.
*\param[in] tmax entier, taille physique des tableaux.
*\param[in,out] tlogique pointeur de la taille logique , modifier lors d'un l'ajout.
*\return code d'erreur si une erreur apparaît.
*/
int compteurtaillelogique (void);
int suspensioncarte (int tabNC[],float tabCAG[],int tabsuspension[],int *tlogique,int tmax);
/**
*\brief Permet de supprimer la carte d'un client.
*\return Code d'erreur != 0 si un probléme se passe.
*\param[in] n Taille logique des tableaux.
*\brief permet de supprimer un client.
*\param[in,out] tabNC tableau d'entier, contient les identifiant des cartes clients.
*\param[in,out] tabCAG tableau de flottant, contient les cagnottes des clients.
*\param[in,out] tabsuspension tableau d'entier, contient informations sur la suspension des cartes.
*\param[in] tmax entier, taille physique des tableaux.
*\param[in,out] tlogique pointeur de la taille logique.
*\return code d'erreur si une erreur apparaît.
*/
int supressionclient (int *n);
int supressionclient (int tabNC[],float tabCAG[],int tabsuspension[],int *tlogique,int tmax);
/**
*\brief Permet d'afficher les informations d'un client précis.
*\return Code d'erreur != 0 si un probléme se passe.
*\brief permet d'afficher le contenu des tableaux.
*\param[in] tabNC tableau d'entier, contient les identifiant des cartes clients.
*\param[in] tabCAG tableau de flottant, contient les cagnottes des clients.
*\param[in] tabsuspension tableau d'entier, contient informations sur la suspension des cartes.
*\param[in] tlogique pointeur de la taille logique.
*\return code d'erreur si une erreur apparaît.
*/
int affichagesolo (void);
int affichageall (int tabNC[],float tabCAG[],int tabsuspension[],int *tlogique);
/**
*\brief Permet d'afficher tout le fichire client.
*\return Code d'erreur != 0 si un probléme se passe.
*\brief permet d'afficher le contenu d'un tableau spécifique.
*\param[in] tabNC tableau d'entier, contient les identifiant des cartes clients.
*\param[in] tabCAG tableau de flottant, contient les cagnottes des clients.
*\param[in] tabsuspension tableau d'entier, contient informations sur la suspension des cartes.
*\param[in] tlogique pointeur de la taille logique.
*\return code d'erreur si une erreur apparaît.
*/
int affichageall (void);
int affichagesolo (int tabNC[],float tabCAG[],int tabsuspension[],int *tlogique);
/**
*\brief Permet de vérifier la présence du fichier donnés , le crée si inexistant.
*\return Code d'erreur != 0 si un probléme se passe.
*\brief vérifie la présence d'un fichier , et si non le crée.
*\param void rien
*\return rien
*/
int creationfichier(void);
/**
*\brief lorsque l'utilisateur quitte le global , écrit les tableaux dans le fichier en écrasant le contenue précédent.
*\param void rien
*\return rien
*/
int enregistrement (int tabNC[],float tabCAG[],int tabsuspension[],int *tlogique);
Loading…
Cancel
Save