ajout de tout les putains de commentaires + des trucs que je doit fix plus tard

master
Ange BARDET 1 year ago
parent e68e6f6314
commit 8a190f3d5f

@ -3,6 +3,34 @@
#include <stdlib.h> #include <stdlib.h>
#include <stdio.h> #include <stdio.h>
/**
*\file FonctionsClient.c
*\brief fichier.c qui contient toutes les fonctions concernant le client.
*\author BARDET Ange & Mathis CHIRAT
*\date 20 oct 2023
*/
float initVoiture(float *chargeV)
{
float volV;
printf("Quel est le volume (L) du coffre de votre véhicule : ");
scanf("%f",&volV);
while (volV < 0)
{
printf("Erreur ; Le volume doit être positif ; retapez : ");
scanf("%f",&volV);
}
printf("Quel est la charge totale de votre véhicule (Kg) : ");
scanf("%f",chargeV);
while (*chargeV < 0)
{
printf("Erreur ; La charge doit être positive ; retapez : ");
scanf("%f",chargeV);
}
return volV;
}
int ajoutPanier(int TrefC[],int TquanC[],int nArticle,int Tref[], int n) int ajoutPanier(int TrefC[],int TquanC[],int nArticle,int Tref[], int n)
{ {
int refP,code,quantite,pos; int refP,code,quantite,pos;
@ -38,28 +66,6 @@ int ajoutPanier(int TrefC[],int TquanC[],int nArticle,int Tref[], int n)
return nArticle +=1; return nArticle +=1;
} }
float initVoiture(float *chargeV)
{
float volV;
printf("Quel est le volume (L) du coffre de votre véhicule : ");
scanf("%f",&volV);
while (volV < 0)
{
printf("Erreur ; Le volume doit être positif ; retapez : ");
scanf("%f",&volV);
}
printf("Quel est la charge totale de votre véhicule (Kg) : ");
scanf("%f",chargeV);
while (*chargeV < 0)
{
printf("Erreur ; La charge doit être positive ; retapez : ");
scanf("%f",chargeV);
}
return volV;
}
void affichPanier(int TrefC[],int TquanC[],int nArticle,int Tref[], float Tpoid[],float Tvolume[],float Tprix[],float chargeV, float volV,int n) void affichPanier(int TrefC[],int TquanC[],int nArticle,int Tref[], float Tpoid[],float Tvolume[],float Tprix[],float chargeV, float volV,int n)
{ {
printf("\nRéf\tQté\tPoids\tVol\tPrixU\tPoidsTot\tVolTot\tPrixTot\tCagnotte\n"); printf("\nRéf\tQté\tPoids\tVol\tPrixU\tPoidsTot\tVolTot\tPrixTot\tCagnotte\n");
@ -103,26 +109,15 @@ void affichPanier(int TrefC[],int TquanC[],int nArticle,int Tref[], float Tpoid[
printf("%.0f kg\n",chargeR); printf("%.0f kg\n",chargeR);
} }
int posRefC(int TrefC[], int n, int refR,int nArticle,int Tref[]) void ModifArticlePanier(int TrefC[],int TquanC[],int nArticle,int Tref[],int n)
{
int i,pos;
for (i=0;i <nArticle;i++)
{
pos = posRef(Tref,TrefC[i],n);
if (refR == TrefC[i]) return i;
}
return -1;
}
int SupprArticlePanier(int TrefC[],int TquanC[],int nArticle,int Tref[], float Tpoid[],float Tvolume[],float Tprix[],int n)
{ {
if (nArticle <= 0) if (nArticle <= 0)
{ {
printf("Il n'y a aucun article dans le panier."); printf("Il n'y a aucun article dans le panier.");
return nArticle; return;
} }
int refR,pos; int refR,pos,nQuan;
printf("Saisir la référence de l'article a supprimer: "); printf("Saisir la référence de l'article a modifier: ");
scanf("%d",&refR); scanf("%d",&refR);
pos = posRefC(TrefC,n,refR,nArticle,Tref); pos = posRefC(TrefC,n,refR,nArticle,Tref);
if (pos == -1) if (pos == -1)
@ -131,21 +126,21 @@ int SupprArticlePanier(int TrefC[],int TquanC[],int nArticle,int Tref[], float T
} }
else else
{ {
TrefC[pos] = TrefC[pos+1]; printf("Saisir la nouvelle quantité du produit: ");
TquanC[pos] = TquanC[pos+1]; scanf("%d",&nQuan);
return nArticle - 1; TquanC[pos] = nQuan;
} }
} }
void ModifArticlePanier(int TrefC[],int TquanC[],int nArticle,int Tref[], float Tpoid[],float Tvolume[],float Tprix[],int n) int SupprArticlePanier(int TrefC[],int TquanC[],int nArticle,int Tref[],int n)
{ {
if (nArticle <= 0) if (nArticle <= 0)
{ {
printf("Il n'y a aucun article dans le panier."); printf("Il n'y a aucun article dans le panier.");
return; return nArticle;
} }
int refR,pos,nQuan; int refR,pos;
printf("Saisir la référence de l'article a modifier: "); printf("Saisir la référence de l'article a supprimer: ");
scanf("%d",&refR); scanf("%d",&refR);
pos = posRefC(TrefC,n,refR,nArticle,Tref); pos = posRefC(TrefC,n,refR,nArticle,Tref);
if (pos == -1) if (pos == -1)
@ -154,9 +149,9 @@ void ModifArticlePanier(int TrefC[],int TquanC[],int nArticle,int Tref[], float
} }
else else
{ {
printf("Saisir la nouvelle quantité du produit: "); TrefC[pos] = TrefC[pos+1];
scanf("%d",&nQuan); TquanC[pos] = TquanC[pos+1];
TquanC[pos] = nQuan; return nArticle - 1;
} }
} }
@ -169,4 +164,15 @@ int ResetPanier(int TrefC[],int TquanC[],int nArticle)
TquanC[i]=0; TquanC[i]=0;
} }
return 0; return 0;
}
int posRefC(int TrefC[], int n, int refR,int nArticle,int Tref[])
{
int i,pos;
for (i=0;i <nArticle;i++)
{
pos = posRef(Tref,TrefC[i],n);
if (refR == TrefC[i]) return i;
}
return -1;
} }

@ -1,9 +1,85 @@
#include <stdio.h> #include <stdio.h>
int ajoutPanier(int TrefC[],int TquanC[],int nArticle,int Tref[], int n); /**
void affichPanier(int TrefC[],int TquanC[],int nArticle,int Tref[], float Tpoid[],float Tvolume[],float Tprix[],float chargeV, float volV,int n); *\file FonctionsClient.h
*\brief fichier.h qui contient les déclarations des fonctions concernant le client.
*\author BARDET Ange & Mathis CHIRAT
*\date 20 oct 2023
*/
/**
*\brief Demande a l'utilisateur la charge et le volume de son véhicule et les renvoie.
*\param[in,out] chargeV flottant, la charge totale du véhicule du client (en kg).
*\return flottant, le volume (en L) du coffre du véhicule du client.
*/
float initVoiture(float *chargeV); float initVoiture(float *chargeV);
int SupprArticlePanier(int TrefC[],int TquanC[],int nArticle,int Tref[], float Tpoid[],float Tvolume[],float Tprix[],int n);
int posRefC(int TrefC[], int n, int refR,int nArticle,int Tref[]); /**
void ModifArticlePanier(int TrefC[],int TquanC[],int nArticle,int Tref[], float Tpoid[],float Tvolume[],float Tprix[],int n); *\brief Demande un article a l'utilisateur puis l'ajoute au panier.
int ResetPanier(int TrefC[],int TquanC[], int nArticle); *\param[in,out] TrefC tableau d'entier, articles dans le panier client.
*\param[out] TquanC tableau d'entier, quantités dans le panier client.
*\param[in,out] nArticle entier, taille logique des tableaux concernant le panier.
*\param[in] Tref tableau d'entier, réfèrences des produits.
*\param[in] n entier, taille logique des tableaux concernant les produits.
*\return entier, nombre d'article + 1.
*/
int ajoutPanier(int TrefC[],int TquanC[],int nArticle,int Tref[], int n);
/**
*\brief Affiche le panier actuel du client.
*\param[in] TrefC tableau d'entier, articles dans le panier client.
*\param[in] TquanC tableau d'entier, quantités dans le panier client.
*\param[in] nArticle entier, taille logique des tableaux concernant le panier.
*\param[in] Tref tableau d'entier, réfèrences des produits.
*\param[in] Tpoid tableau d'entier, poids des produits.
*\param[in] Tvolume tableau d'entier, volumes des produits.
*\param[in] Tprix tableau d'entier, prix des produits.
*\param[in] chargeV flottant, la charge totale du véhicule du client (en kg).
*\param[in] volV flottant, le volume (en L) du coffre du véhicule du client.
*\param[in] n entier, taille logique des tableaux concernant les produits.
*\return Rien
*/
void affichPanier(int TrefC[],int TquanC[],int nArticle,int Tref[],float Tpoid[],float Tvolume[],float Tprix[],float chargeV, float volV,int n);
/**
*\brief Demande un article au client puis le modifie sa quantité.
*\param[in] TrefC tableau d'entier, articles dans le panier client.
*\param[out] TquanC tableau d'entier, quantités dans le panier client.
*\param[in] nArticle entier, taille logique des tableaux concernant le panier.
*\param[in] Tref tableau d'entier, réfèrences des produits.
*\param[in] n entier, taille logique des tableaux concernant les produits.
*\return Rien
*/
void ModifArticlePanier(int TrefC[],int TquanC[],int nArticle,int Tref[],int n);
/**
*\brief Demande un article au client puis le supprime du panier.
*\param[in,out] TrefC tableau d'entier, articles dans le panier client.
*\param[out] TquanC tableau d'entier, quantités dans le panier client.
*\param[in] nArticle entier, taille logique des tableaux concernant le panier.
*\param[in] Tref tableau d'entier, réfèrences des produits.
*\param[in] n entier, taille logique des tableaux concernant les produits.
*\return entier, taille logique des tableaux concernant le panier -1.
*/
int SupprArticlePanier(int TrefC[],int TquanC[],int nArticle,int Tref[],int n);
/**
*\brief Réinitialise le panier du client.
*\param[out] TrefC tableau d'entier, articles dans le panier client.
*\param[out] TquanC tableau d'entier, quantités dans le panier client.
*\param[in] nArticle entier, taille logique des tableaux concernant le panier.
*\return entier, taille logique des tableaux concernant le panier.
*/
int ResetPanier(int TrefC[],int TquanC[], int nArticle);
/**
*\brief Recherche la position de nArticle dans le tableau TrefC.
*\param[in] TrefC tableau d'entier, articles dans le panier client.
*\param[in] n entier, taille logique des tableaux concernant les produits.
*\param[in] refR entier, réfèrence recherché dans le tableau référence.
*\param[in] nArticle entier, taille logique des tableaux concernant le panier.
*\param[in] Tref tableau d'entier, réfèrences des produits.
*\return entier, position de la réfèrence recherché.
*/
int posRefC(int TrefC[], int n, int refR,int nArticle,int Tref[]);

@ -2,12 +2,19 @@
#include <stdlib.h> #include <stdlib.h>
#include <stdio.h> #include <stdio.h>
/**
*\file FonctionsResponsable.c
*\brief fichier.c qui contient toutes les fonctions concernant le responsable.
*\author BARDET Ange & Cyriaque SEGERIE
*\date 11 oct 2023
*/
void AjoutArticle(void) void AjoutArticle(void)
{ {
int ref; int ref;
float poid,volume,prix; float poid,volume,prix;
FILE *flot; FILE *flot;
flot = fopen("articles.txt","a"); flot = fopen("articles.don","a");
if (flot == NULL) if (flot == NULL)
{ {
printf("Problème avec la création du fichier\n"); printf("Problème avec la création du fichier\n");
@ -16,6 +23,10 @@ void AjoutArticle(void)
printf("Saisir la référence de l'article (-1 pour arrêter): "); printf("Saisir la référence de l'article (-1 pour arrêter): ");
scanf("%d",&ref); scanf("%d",&ref);
/*Si l'article existe déja, code d'erreur*/ /*Si l'article existe déja, code d'erreur*/
/*Passer par table au lieu de fichier pour ajoutarticle*/
/*demander numéro client et regarder cagnotte*/
while (ref < -1) while (ref < -1)
{ {
printf("Erreur ; Le numéro doit être positif (ou -1 pour arrêter); retapez : "); printf("Erreur ; Le numéro doit être positif (ou -1 pour arrêter); retapez : ");
@ -66,7 +77,7 @@ int TableArticle(int Tref[], float Tpoid[],float Tvolume[],float Tprix[])
float poid,volume,prix; float poid,volume,prix;
FILE *flot; FILE *flot;
flot = fopen("articles.txt","r"); flot = fopen("articles.don","r");
if (flot == NULL) if (flot == NULL)
{ {
printf("Problème avec la lecture du fichier\n"); printf("Problème avec la lecture du fichier\n");
@ -155,32 +166,6 @@ void ModifArticle(int Tref[], float Tpoid[],float Tvolume[],float Tprix[],int n)
} }
} }
void EcrireFichier(int Tref[], float Tpoid[],float Tvolume[],float Tprix[],int n)
{
FILE *flot;
flot = fopen("articles.txt","w");
if (flot == NULL)
{
printf("Problème avec la création du fichier\n");
exit(1);
}
int i;
for (i=0;i < n;i++) fprintf(flot,"%d\t%.2f\t%.3f\t%.2f\n",Tref[i],Tpoid[i],Tvolume[i],Tprix[i]);
fclose(flot);
printf("Fichier écrit.\n");
}
int posRef(int Tref[],int refR, int n)
{
int i;
for (i=0;i < n;i++)
{
if (Tref[i] == refR)
return i;
}
return -1;
}
int SupprArticle(int Tref[], float Tpoid[],float Tvolume[],float Tprix[],int n) int SupprArticle(int Tref[], float Tpoid[],float Tvolume[],float Tprix[],int n)
{ {
int refR,pos; int refR,pos;
@ -207,10 +192,36 @@ int SupprArticle(int Tref[], float Tpoid[],float Tvolume[],float Tprix[],int n)
Tvolume[i] = Tvolume[i+1]; Tvolume[i] = Tvolume[i+1];
Tprix[i] = Tprix[i+1]; Tprix[i] = Tprix[i+1];
} }
return n-=1; return n-1;
} }
} }
int posRef(int Tref[],int refR, int n)
{
int i;
for (i=0;i < n;i++)
{
if (Tref[i] == refR)
return i;
}
return -1;
}
void EcrireFichier(int Tref[], float Tpoid[],float Tvolume[],float Tprix[],int n)
{
FILE *flot;
flot = fopen("articles.don","w");
if (flot == NULL)
{
printf("Problème avec la création du fichier\n");
exit(1);
}
int i;
for (i=0;i < n;i++) fprintf(flot,"%d\t%.2f\t%.3f\t%.2f\n",Tref[i],Tpoid[i],Tvolume[i],Tprix[i]);
fclose(flot);
printf("Fichier écrit.\n");
}
void modifclientglobal (void) void modifclientglobal (void)
{ {
int n,coderreur,choix; int n,coderreur,choix;

@ -1,19 +1,139 @@
#include <stdio.h> #include <stdio.h>
/**
*\file FonctionsResponsable.h
*\brief fichier.h qui contient les déclarations des fonctions concernant le responsable.
*\author BARDET Ange & Cyriaque SEGERIE
*\date 11 oct 2023
*/
/**
*\brief Demande l'article a ajouter ainsi que son poid, son volume et son prix a l'utilisateur et l'ajoute au fichier "articles.don".
*\param void Rien
*\return Rien
*/
void AjoutArticle(void); void AjoutArticle(void);
/**
*\brief Demande un article au responsable puis modifie son poid, son volume et son prix dans les tables.
*\param[in] Tref tableau d'entier, réfèrences des produits.
*\param[in,out] Tpoid tableau d'entier, poids des produits.
*\param[in,out] Tvolume tableau d'entier, volumes des produits.
*\param[in,out] Tprix tableau d'entier, prix des produits.
*\param[in] n entier, taille logique des tableaux concernant les produits.
*\return Rien
*/
void ModifArticle(int Tref[], float Tpoid[],float Tvolume[],float Tprix[],int n); void ModifArticle(int Tref[], float Tpoid[],float Tvolume[],float Tprix[],int n);
/**
*\brief Récupère le contenu du fichier "articles.don" et l'ajoute au tables concernées (Tref,Tpoid,Tvolume,Tprix)
*\param[out] Tref tableau d'entier, réfèrences des produits.
*\param[out] Tpoid tableau d'entier, poids des produits.
*\param[out] Tvolume tableau d'entier, volumes des produits.
*\param[out] Tprix tableau d'entier, prix des produits.
*\return entier, taille logique des tableaux concernant les produits.
*/
int TableArticle(int Tref[], float Tpoid[],float Tvolume[],float Tprix[]); int TableArticle(int Tref[], float Tpoid[],float Tvolume[],float Tprix[]);
/**
*\brief Affiche la référence, le poid, le volume et le prix de chaque produit.
*\param[in] Tref tableau d'entier, réfèrences des produits.
*\param[in] Tpoid tableau d'entier, poids des produits.
*\param[in] Tvolume tableau d'entier, volumes des produits.
*\param[in] Tprix tableau d'entier, prix des produits.
*\param[in] n entier, taille logique des tableaux concernant les produits.
*\return Rien
*/
void AffichTable(int Tref[], float Tpoid[],float Tvolume[],float Tprix[],int n); void AffichTable(int Tref[], float Tpoid[],float Tvolume[],float Tprix[],int n);
/**
*\brief Demande un article au client puis affiche sa référence, son poid, son volume et son prix.
*\param[in] Tref tableau d'entier, réfèrences des produits.
*\param[in] Tpoid tableau d'entier, poids des produits.
*\param[in] Tvolume tableau d'entier, volumes des produits.
*\param[in] Tprix tableau d'entier, prix des produits.
*\param[in] n entier, taille logique des tableaux concernant les produits.
*\return Rien
*/
void AffichArticle(int Tref[], float Tpoid[],float Tvolume[],float Tprix[],int n); void AffichArticle(int Tref[], float Tpoid[],float Tvolume[],float Tprix[],int n);
void EcrireFichier(int Tref[], float Tpoid[],float Tvolume[],float Tprix[],int n);
/**
*\brief Demande un article au client puis le supprime des tables.
*\param[in,out] Tref tableau d'entier, réfèrences des produits.
*\param[out] Tpoid tableau d'entier, poids des produits.
*\param[out] Tvolume tableau d'entier, volumes des produits.
*\param[out] Tprix tableau d'entier, prix des produits.
*\param[in] n entier, taille logique des tableaux concernant les produits.
*\return entier, taille logique des tableaux concernant les produits - 1.
*/
int SupprArticle(int Tref[], float Tpoid[],float Tvolume[],float Tprix[],int n); int SupprArticle(int Tref[], float Tpoid[],float Tvolume[],float Tprix[],int n);
/**
*\brief Recherche la position de refR dans le tableau Tref.
*\param[in] Tref tableau d'entier, réfèrences des produits.
*\param[in] refR entier, réfèrence recherché dans le tableau référence.
*\param[in] n entier, taille logique des tableaux concernant les produits.
*\return entier, position de la réfèrence recherché.
*/
int posRef(int Tref[],int refR, int n); int posRef(int Tref[],int refR, int n);
/**
*\brief Ecrit dans le fichier "articles.don" le contenu des tables.
*\param[in] Tref tableau d'entier, réfèrences des produits.
*\param[in] Tpoid tableau d'entier, poids des produits.
*\param[in] Tvolume tableau d'entier, volumes des produits.
*\param[in] Tprix tableau d'entier, prix des produits.
*\param[in] n entier, taille logique des tableaux concernant les produits.
*\return rien.
*/
void EcrireFichier(int Tref[], float Tpoid[],float Tvolume[],float Tprix[],int n);
/**
*\brief Permet d'accéder à toutes les autres fonctions de cette partie.
*/
void modifclientglobal (void); void modifclientglobal (void);
/**
*\brief Permet d'ajouter un client au fichier.
*\return Code d'erreur != 0 si un probléme se passe.
*/
int ajoutClient (void); int ajoutClient (void);
/**
*\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.
*/
int suspensioncarte (int *n); int suspensioncarte (int *n);
/**
*\brief Permet de compter le nombre de ligne d'un fichier et donc la taille logique des tableaux.
*\return Taille logique des tableaux.
*/
int compteurtaillelogique (void); int compteurtaillelogique (void);
/**
*\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.
*/
int supressionclient (int *n); int supressionclient (int *n);
/**
*\brief Permet d'afficher les informations d'un client précis.
*\return Code d'erreur != 0 si un probléme se passe.
*/
int affichagesolo (void); int affichagesolo (void);
/**
*\brief Permet d'afficher tout le fichire client.
*\return Code d'erreur != 0 si un probléme se passe.
*/
int affichageall (void); int affichageall (void);
int creationfichier(void);
/**
*\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.
*/
int creationfichier(void);

@ -1,6 +1,19 @@
#include "FonctionsClient.h" #include "FonctionsClient.h"
#include "FonctionsResponsable.h" #include "FonctionsResponsable.h"
/**
*\file Globale.c
*\brief le fichier.c qui gère l'affichage global de l'application.
*\author BARDET Ange
*\date 11 oct 2023
*/
/**
*\brief Permet a l'utilisateur de sélectionner la partie responsable ou client de l'application.
*\param void Rien
*\return Rien
*/
void global(void) void global(void)
{ {
int n=0,rep; int n=0,rep;
@ -104,12 +117,12 @@ void global(void)
} }
if (rep == 1) if (rep == 1)
{ {
ModifArticlePanier(TrefC,TquanC,nArticle,Tref,Tpoid,Tvolume,Tprix,n); ModifArticlePanier(TrefC,TquanC,nArticle,Tref,n);
printf("\n"); printf("\n");
} }
if (rep == 2) if (rep == 2)
{ {
nArticle = SupprArticlePanier(TrefC,TquanC,nArticle,Tref,Tpoid,Tvolume,Tprix,n); nArticle = SupprArticlePanier(TrefC,TquanC,nArticle,Tref,n);
printf("\n"); printf("\n");
} }
if (rep == 3) if (rep == 3)

@ -3,3 +3,4 @@
272 6.50 10.000 29.99 272 6.50 10.000 29.99
66 33.00 11.000 22.00 66 33.00 11.000 22.00
345 30.00 29.000 10.00 345 30.00 29.000 10.00
564 38.000 20.00 17.90
Loading…
Cancel
Save