parent
5f3759f0c0
commit
af59684e99
@ -0,0 +1,2 @@
|
||||
final:
|
||||
gcc *.c -o sae-S1.01
|
@ -0,0 +1,195 @@
|
||||
#include "ange.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;
|
||||
}
|
||||
}
|
@ -0,0 +1,9 @@
|
||||
#include <stdio.h>
|
||||
|
||||
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);
|
||||
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);
|
@ -0,0 +1,4 @@
|
||||
101 2.25 2.500 15.75
|
||||
233 10.00 15.000 32.00
|
||||
272 6.50 10.000 29.99
|
||||
66 33.00 11.000 22.00
|
@ -0,0 +1,56 @@
|
||||
#include "ange.h"
|
||||
|
||||
void testF(void)
|
||||
{
|
||||
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);
|
||||
|
||||
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();
|
||||
return 0;
|
||||
}
|
Loading…
Reference in new issue