Vous êtes sur la page 1sur 3

#include <stdio.

h>
#include <stdlib.h>
#include <string.h>
#include <stdbool.h>
typedef struct{
int Num;
char Desig[30];
float Qtts,Seul;}Article;
//------------------------------
//procédure creation du fichier
//-------------------------------
void Creation(FILE *F){
F=fopen("Mag.bin","wb");
if(F==NULL){printf("Erreur de creation\n");}
else{printf("Ficheir cree avec succes\n");}
}
//-------------------------------
// fonction existe
//------------------------------
bool Existe(int N, FILE *F){
bool trouv=false;
Article Val;
F=fopen("Mag.bin","rb");
while(!trouv&&!feof(F)){
fread(&Val,sizeof(Val),1,F);
if(Val.Num==N){trouv=true;}}
fclose(F); return trouv;}
//---------------------------------
// procedure Ajout d'un article
//------------------------------------
void Ajout (FILE *F){
Article Val;
do{printf("Donnez un numero d'article: "); scanf("%d",&Val.Num);}
while (Existe(Val.Num,F));
printf("Donnez la designation: "); fflush(stdin);gets(Val.Desig);
printf("Donner la quatite en stock: "); scanf("%f",&Val.Qtts);
printf("Donnez la seuil : "); scanf("%f",&Val.Seul);
F=fopen("Mag.bin","ab");
fwrite(&Val,sizeof(Val),1,F);
printf("Article ajoute avec succes\n");
fclose(F);
}
//----------------------------------
//suppression d'un article
//-----------------------------------
void Suppression(FILE *F){
FILE *Temp;
int N,nb;
Article Val;
F=fopen("Mag.bin","rb");
Temp=fopen("Sauv.bin","wb");
do {printf("Donnez le numero de l'article a supprimer:" );
scanf("%d",&N);}while (!Existe(N,F));
while(!feof(F)){
nb=fread(&Val,sizeof(Val),1,F);
if (nb==1){
if(Val.Num!=N){fwrite(&Val,sizeof(Val),1,Temp);}}
}
fclose(F);fclose(Temp); remove("Mag.bin");
rename("Sauv.bin","Mag.bin");
printf("Article supprime avec succes\n");
}
//------------------------------
//MAJ de la quatité
//----------------------------
void EntreeSortie(FILE *F)
{Article Val;
int N,nb;
bool trouv=false;
float q;
char typeop;
do {printf("Donnez le numero de l'article a Modifier:" );
scanf("%d",&N);}while (!Existe(N,F));
F=fopen("Mag.bin","r+b");
while(!trouv){nb=fread(&Val,sizeof(Val),1,F);
if(nb==1){
if(Val.Num==N){trouv=true;}
}
}
printf("donnez le type d'operation tapez E/S : ");
fflush(stdin);scanf("%c",&typeop) ;
printf("donnez la quatite mouvementee: ") ;
scanf("%f",&q);
if(typeop=='E'||typeop=='e'){Val.Qtts=Val.Qtts+q;}
else {Val.Qtts=Val.Qtts-q;}
fseek(F,sizeof(Val)*(-1),SEEK_CUR);
fwrite(&Val,sizeof(Val),1,F);
printf("Article mis a jour avec succes\n");
fclose(F);
}
//--------------------------
// Recherche par numero
//---------------------------
void Recherchparnum(FILE *F){
Article Val;
int N,nb;
bool trouv=false;
printf("Donnez un numero : ");scanf("%d",&N);
F=fopen("Mag.bin","rb");
while(!feof(F)&&!trouv){
nb=fread(&Val,sizeof(Val),1,F);
if(nb==1){if(Val.Num==N){trouv=true;}}
}
if(trouv){
printf("%d , %s , %.2f , %.2f \n", Val.Num,Val.Desig,Val.Qtts,Val.Seul);}
else{printf("Article inexistant\n");}
fclose(F);
}
//---------------------------------
//affichage de la liste globale
//------------------------------
void Affichage_glob(FILE *F){
int nb;
Article Val;
F=fopen("Mag.bin","rb");
printf("LISTE GLOBALE DES ARTICLES\n\n");
while(!feof(F)){
nb=fread(&Val,sizeof(Val),1,F);
if(nb==1){
printf("%d , %s , %.2f , %.2f \n", Val.Num,Val.Desig,Val.Qtts,Val.Seul);}
}
fclose(F);
}
//-----------------------------
// affichage de la liste des articles deficitaires
//----------------------------------
void Affichage_deficit(FILE *F){
int nb;
Article Val;
printf("LISTE DES ARTICLES DEFICITAIRES \n\n");
F=fopen("Mag.bin","rb");
while(!feof(F)){
nb=fread(&Val,sizeof(Val),1,F);
if(nb==1){if(Val.Qtts<Val.Seul){
printf("%d , %s , %.2f , %.2f \n", Val.Num,Val.Desig,Val.Qtts,Val.Seul);}}
}
fclose(F);
}
//------------------------------
// Affichage du menu principal
//--------------------------------
void menup(){
system("cls");
printf("MENU PRINCIPAL\n\n");
printf("1: Creation du fichier\n");
printf("2: Ajout d'un article\n");
printf("3: Suppression d'un article\n");
printf("4: MAJ de la quatite\n");
printf("5: Recherche par numero\n");
printf("6: Liste globale des articles\n");
printf("7: Liste des articles deficitaires\n\n");
printf("Donner votre choix: ");
}
//--------------------------------
int main()
{FILE *F=NULL;
char rep='o';
int choix;
while(rep=='o'||rep=='O'){
menup();scanf("%d",&choix);
switch (choix){
case 1: Creation(F);break;
case 2: Ajout(F);break;
case 3: Suppression(F); break;
case 4: EntreeSortie(F); break;
case 5: Recherchparnum(F);break;
case 6: Affichage_glob(F);break;
case 7: Affichage_deficit(F);break;
default : printf("choix incorrect\n");
}
printf("\n voulez-vous continuez O/N : "); fflush(stdin);scanf("%c",&rep); }
return 0;
}

Vous aimerez peut-être aussi