#include "fonctionsArticle.h" #include #include 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 AffichArticle(int Tref[], float Tpoid[],float Tvolume[],float Tprix[],int n) { int refR,pos; printf("Afficher quel article ? "); scanf("%d",&refR); pos = posRef(Tref,refR,n); if (pos == -1) { printf("L'article n'existe pas dans la base de donnée."); } else { printf("%d\t\t%.2f\t\t%.3f\t\t%.2f\n",Tref[pos],Tpoid[pos],Tvolume[pos],Tprix[pos]); } } 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; } }