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.

195 lines
4.0 KiB

#include "fonctionsArticle.h"
#include <stdlib.h>
#include <stdio.h>
void AjoutArticle(void)
{
int ref;
float poid,volume,prix;
FILE *flot;
flot = fopen("articles.txt","a");
if (flot == NULL)
{
printf("Problème avec la création du fichier\n");
exit(1);
}
printf("Saisir la référence de l'article (-1 pour arrêter): ");
scanf("%d",&ref);
while (ref < -1)
{
printf("Erreur ; Le numéro doit être positif (ou -1 pour arrêter); retapez : ");
scanf("%d",&ref);
}
while (ref >= 0)
{
printf("Saisir le poid(kg): ");
scanf("%f",&poid);
while (poid < 0)
{
printf("Erreur ; Le poid doit être positif ; retapez : ");
scanf("%f",&poid);
}
printf("Saisir le volume: ");
scanf("%f",&volume);
while (volume < 0)
{
printf("Erreur ; Le volume doit être positif ; retapez : ");
scanf("%f",&volume);
}
printf("Saisir le prix: ");
scanf("%f",&prix);
while (prix < 0)
{
printf("Erreur ; Le prix doit être positif ; retapez : ");
scanf("%f",&prix);
}
fprintf(flot,"%d\t%.3f\t%.2f\t%.2f\n",ref,poid,volume,prix);
printf("Saisir la référence de l'article (-1 pour arrêter): ");
scanf("%d",&ref);
while (ref < -1)
{
printf("Erreur ; Le numéro doit être positif (ou -1 pour arrêter); retapez : ");
scanf("%d",&ref);
}
}
fclose(flot);
printf("Fin de l'ajout.\n");
}
int TableArticle(int Tref[], float Tpoid[],float Tvolume[],float Tprix[])
{
int ref,i=0;
float poid,volume,prix;
FILE *flot;
flot = fopen("articles.txt","r");
if (flot == NULL)
{
printf("Problème avec la lecture du fichier\n");
exit(1);
}
fscanf(flot,"%d %f %f %f",&ref,&poid,&volume,&prix);
while(feof(flot) == 0)
{
Tref[i] = ref;
Tpoid[i] = poid;
Tvolume[i] = volume;
Tprix[i] = prix;
i++;
fscanf(flot,"%d %f %f %f",&ref,&poid,&volume,&prix);
}
fclose(flot);
return i;
}
void AffichTable(int Tref[], float Tpoid[],float Tvolume[],float Tprix[],int n)
{
int i;
printf("référence\tpoids(kg)\tvolume(l)\tprix Unitaire\n");
for (i=0;i < n;i++)
{
printf("%d\t\t%.2f\t\t%.3f\t\t%.2f\n",Tref[i],Tpoid[i],Tvolume[i],Tprix[i]);
}
}
void ModifArticle(int Tref[], float Tpoid[],float Tvolume[],float Tprix[],int n)
{
int refR;
printf("Saisir la référence de l'article a modifier: ");
scanf("%d",&refR);
while (refR < -1)
{
printf("Erreur ; Le numéro doit être positif; retapez : ");
scanf("%d",&refR);
}
int i;
for (i=0;i < n;i++)
{
if (Tref[i] == refR)
{
printf("Saisir le nouveau poid(kg): ");
scanf("%f",&Tpoid[i]);
while (Tpoid[i] < 0)
{
printf("Erreur ; Le poid doit être positif ; retapez : ");
scanf("%f",&Tpoid[i]);
}
printf("Saisir le nouveau volume: ");
scanf("%f",&Tvolume[i]);
while (Tvolume[i] < 0)
{
printf("Erreur ; Le volume doit être positif ; retapez : ");
scanf("%f",&Tvolume[i]);
}
printf("Saisir le nouveau prix: ");
scanf("%f",&Tprix[i]);
while (Tprix[i] < 0)
{
printf("Erreur ; Le prix doit être positif ; retapez : ");
scanf("%f",&Tprix[i]);
}
}
}
}
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 refR,pos;
printf("Saisir la référence de l'article a supprimer: ");
scanf("%d",&refR);
while (refR < -1)
{
printf("Erreur ; Le numéro doit être positif; retapez : ");
scanf("%d",&refR);
}
pos = posRef(Tref,refR,n);
if (pos == -1)
{
printf("L'article n'existe pas dans la base de donnée.");
return n;
}
else
{
int i;
for (i=pos;i<=n;i++)
{
Tref[i] = Tref[i+1];
Tpoid[i] = Tpoid[i+1];
Tvolume[i] = Tvolume[i+1];
Tprix[i] = Tprix[i+1];
}
return n-=1;
}
}