diff --git a/ange.c b/ange.c index b38d678..c3f41a8 100644 --- a/ange.c +++ b/ange.c @@ -1,6 +1,6 @@ -#include "sae.h" +#include "ange.h" #include - +#include void AjoutArticle(void) { @@ -94,7 +94,6 @@ void AffichTable(int Tref[], float Tpoid[],float Tvolume[],float Tprix[],int n) { 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) @@ -129,12 +128,68 @@ void ModifArticle(int Tref[], float Tpoid[],float Tvolume[],float Tprix[],int n) } printf("Saisir le nouveau prix: "); - scanf("%f",&Tvolume[i]); - while (Tvolume[i] < 0) + scanf("%f",&Tprix[i]); + while (Tprix[i] < 0) { printf("Erreur ; Le prix doit être positif ; retapez : "); - scanf("%f",&Tvolume[i]); + 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; + } } \ No newline at end of file diff --git a/ange.h b/ange.h index a9eb245..aca2d41 100644 --- a/ange.h +++ b/ange.h @@ -3,4 +3,7 @@ void AjoutArticle(void); void ModifArticle(int Tref[], float Tpoid[],float Tvolume[],float Tprix[],int n); int TableArticle(int Tref[], float Tpoid[],float Tvolume[],float Tprix[]); -void AffichTable(int Tref[], float Tpoid[],float Tvolume[],float Tprix[],int n); \ No newline at end of file +void AffichTable(int Tref[], float Tpoid[],float Tvolume[],float Tprix[],int n); +void EcrireFichier(int Tref[], float Tpoid[],float Tvolume[],float Tprix[],int n); +int SupprArticle(int Tref[], float Tpoid[],float Tvolume[],float Tprix[],int n); +int posRef(int Tref[],int refR, int n); diff --git a/testange.c b/testange.c index fd71e2f..016bf00 100644 --- a/testange.c +++ b/testange.c @@ -1,22 +1,56 @@ -#include "sae.h" +#include "ange.h" void testF(void) { - int n=0; + int n=0,rep; int Tref[100]={0}; float Tpoid[100]={0},Tvolume[100]={0},Tprix[100]={0}; + + printf("Bienvenue Mr. le directeur :)\n"); n = TableArticle(Tref,Tpoid,Tvolume,Tprix); - AffichTable(Tref,Tpoid,Tvolume,Tprix,n); - printf("\n"); - ModifArticle(Tref,Tpoid,Tvolume,Tprix,n); - printf("\n"); - AffichTable(Tref,Tpoid,Tvolume,Tprix,n); + + printf("Que voulez vous faire ? (afficher[0]/ajouter[1]/modifier[2]/supprimer[3]/quitter[-1]) "); + scanf("%d",&rep); + while (rep != -1) + { + while (rep < -1 && rep > 2) + { + printf("Erreur; (afficher[0]/ajouter[1]/modifier[2]/supprimer[3]/quitter[-1]) "); + scanf("%d",&rep); + } + if (rep == 0) + { + AffichTable(Tref,Tpoid,Tvolume,Tprix,n); + printf("\n"); + } + if (rep == 1) + { + AjoutArticle(); + n = TableArticle(Tref,Tpoid,Tvolume,Tprix); + printf("\n"); + } + if (rep == 2) + { + ModifArticle(Tref,Tpoid,Tvolume,Tprix,n); + printf("\n"); + } + if (rep == 3) + { + n = SupprArticle(Tref,Tpoid,Tvolume,Tprix,n); + printf("\n"); + } + printf("Que faire ? (afficher[0]/ajouter[1]/modifier[2]/supprimer[3]/quitter[-1]) "); + scanf("%d",&rep); + if (rep == -1) + { + EcrireFichier(Tref,Tpoid,Tvolume,Tprix,n); + printf("Au revoir !\n"); + } + + } } int main(void) { testF(); - //AjoutArticle(); - //TableArticle(); - //ModifArticle(); - return 0; //cette instruction sert a dire au sys que prog termine + return 0; }