0% ont trouvé ce document utile (0 vote)
46 vues7 pages

Programme de gestion de stock et carrés

Transféré par

omaimazaiate
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
46 vues7 pages

Programme de gestion de stock et carrés

Transféré par

omaimazaiate
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

TD 6: Algorithmique et programmation 2 S3 18/12/2023

S. QASSIMI MIPC

Exercice 1 :

Ecrire un programme permettant de créer un fichier sur le disque dur et dans lequel on peut
stocker 10 entiers avec leur carré.

#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#include<math.h>
#define n 10

main()
{
/* Déclarations : */
/* Nom du fichier et pointeur de référence */
char NOM_FICH[] = "C:\\[Link]";

FILE *FICHIER;

/* Autres variables */

int i,j;
//clrscr();

/* Ouverture du nouveau fichier en écriture */


FICHIER = fopen(NOM_FICH, "w");
if (!FICHIER)
{
printf("\aERREUR: Impossible d'ouvrir "
"le fichier: %s.\n", NOM_FICH);
exit(-1);
}
/* Saisie des données et création du fichier */
printf("*** Création du fichier %s ***\n", NOM_FICH);

for (i=1,j=1; i<=n; i++,j++)


{
j=pow(i,2);
fprintf(FICHIER, "le carre de %d\t est %d\n", i,j);
}
/* Fermeture du fichier */
fclose(FICHIER);

/* Ouverture du fichier en lecture */

FICHIER = fopen(NOM_FICH, "r");


if (!FICHIER)
{
printf("\aERREUR: Impossible d'ouvrir "
"le fichier: %s.\n", NOM_FICH);
exit(-1);
}
/* Affichage du fichier */
printf("*** Contenu du fichier %s ***\n", NOM_FICH);
while (!feof(FICHIER))
{
fscanf(FICHIER, "le carre de %d\t est %d\n", &i,&j);
printf("le carre de %d\t est %d\n", i,j);

}
/* Fermeture du fichier */
fclose(FICHIER);

/*FICHIER = fopen(NOM_FICH, "a");

// ajoute des données et création du fichier


printf("*** Creation du fichier %s ***\n", NOM_FICH);

for (i=1,j=1; i<=n; i++,j++)


{
j=pow(i,2);
fprintf(FICHIER, "le carre de %d\t est %d\n", i,j);

}
// Fermeture du fichier
fclose(FICHIER);
*/
return 0;
}

Exercice 2 :

1.Définir un stock de produits. Un stock se caractérise par son nom, adresse, le nombre
d’unités de stockage réservées pour chaque catégorie.

[Link] les informations concernant chaque produit (nombre, Marque, Prix unitaire à
l’achat, etc.)

[Link], modifier et supprimer un produit.


[Link], modifier et supprimer une catégorie.

[Link] la capacité globale de stockage encore disponible.

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct
{
char mq[50]; /*marque d'un produit*/
char taille[50]; /*taille*/
int prix,nbr; /*nombre de produit de stockage reservees*/

} produit ; /*produit */

typedef struct
{
char nom[20];/* nom du produit */
char ad [20]; /* adresse de chaque catégorie*/
int nbsv; /*le nombre d'unités de stockage reservees*/
}stock;
/*---ajouter un stock de produit---*/
void ajouter_stock (stock st[] ,int *N) //void ajouter (stock *st
,int *N)
{
FILE * f=NULL;
f=fopen("C:[Link]","a"); // ouverture d'un fichier texte
en écriture à la fin
int i;
if(f!=NULL)
{printf("donner nombre de categories ");
scanf("%d",N);

for (i=0;i<*N;i++)
{
printf("donner le nom du %d eme categorie \n",i);
scanf("%s",st[i].nom);
printf("donner l'adresse du %d eme categorie \n",i);
scanf("%s",st[i].ad);
printf("donner le nombre d'unités de stockage reservees
\n");
scanf("%d",&st[i].nbsv);
fprintf(f,"%s\t%s\t%d\n",st[i].nom,st[i].ad,st[i].nbsv);
}
}
else{
printf("ERREUR: Impossible d'ouvrir le fichier: %s.\n",f);
}
fclose(f);
}

/*---fonction afficher---*/
void affiche_stock (stock st[]) // void modife (stock *st)
{ int i;
FILE* f=fopen("[Link]","r"); //ouverture d'un fichier texte
en lecture
rewind(f); // ramène le pointeur de fichier au début de ce
fichier.
if(f==NULL)//if(!f)
{
printf("ERREUR: Impossible d'ouvrir le fichier: %s.\n",f);
}

else
{ while(!feof(f)) // une valeur non nulle est retournée si
l'on est à la fin du fichier, sinon, une valeur nulle est renvoyée.
{

fscanf(f,"%s\t%s\t%d\n",st[i].nom,st[i].ad,&st[i].nbsv);
printf("lecture du nom: %s -adresse: %s - nbre unite
stock: %d \n",st[i].nom,st[i].ad,st[i].nbsv);
i++;
}

fclose(f);
}
}
/*---fonction modifier---*/
void modife_stock (stock st[]) // void modife (stock *st)
{ char nm [20], modification[20];
int i=0;
FILE*f=fopen("[Link]","r+"); //ouverture d'un fichier texte
en lecture/écriture
FILE* fnew=fopen("stock_Modifier.txt","w+"); //ouverture d'un
fichier texte en lecture/écriture
rewind(f); // ramène le pointeur de fichier au début de ce
fichier.
if(f==NULL)//if(!f)
{
printf("ERREUR: Impossible d'ouvrir le fichier: %s.\n",f);
}
printf("donner le categorie a modifie : \n");
scanf("%s",nm);
{ while(!feof(f)) // une valeur non nulle est retournée si
l'on est à la fin du fichier, sinon, une valeur nulle est renvoyée.
{
// fscanf(f, "%s\n", st[i].nom);
// printf("Lecture de le categorie avant modification
%s \n",st[i].nom);

fscanf(f,"%s\t%s\t%d\n",st[i].nom,st[i].ad,&st[i].nbsv);
printf("lecture du nom: %s -adresse: %s - nbre unite
stock: %d \n",st[i].nom,st[i].ad,st[i].nbsv);
if(strcmp(nm,st[i].nom)==0)
{
printf("Entrer le nouvelle nom de categorie :
\n");
scanf("%s",modification);
strcpy(st[i].nom, modification);
// fprintf(f, "%s\t", st[i].nom); // ecriture ( A
tester)
/* Traitement */
/* Copie de tous les enregistrements en */
/* remplaçant l'enregistrement à modifier */
/* par sa nouvelle valeur. */

fprintf(fnew,"%s\t%s\t%d\n",st[i].nom,st[i].ad,st[i].nbsv);
printf("la categorie a ete modifie par %s
\n",st[i].nom);
}
i++;
}
fclose(f);
}

/*---fonction supprime---*/
void supprime_stock(stock st[])
{
{ char nm [20], supprime[20];
int i=0;
FILE*f=fopen("[Link]","r+"); //ouverture d'un fichier texte
en lecture/écriture
FILE* fnew=fopen("stock_Supprimer.txt","w+"); //ouverture d'un
fichier texte en lecture/écriture
rewind(f); // ramène le pointeur de fichier au début de ce
fichier.
if(f==NULL)//if(!f)
{
printf("ERREUR: Impossible d'ouvrir le fichier: %s.\n",f);
}
printf("Entrer le nom de categorie a supprimer : \n");
scanf("%s",supprime);
{ while(!feof(f)) // une valeur non nulle est retournée si
l'on est à la fin du fichier, sinon, une valeur nulle est renvoyée.
{
// fscanf(f, "%s\n", st[i].nom);
// printf("Lecture de le categorie avant modification
%s \n",st[i].nom);

fscanf(f,"%s\t%s\t%d\n",st[i].nom,st[i].ad,&st[i].nbsv);
printf(" lecture du nom: %s -adresse: %s - nbre unite
stock: %d \n",st[i].nom,st[i].ad,st[i].nbsv);
if(strcmp(supprime,st[i].nom)==0)
{

/* Traitement */
/* Copie de tous les enregistrements en */
/* sauce l'enregistrement à suuprimer */
/* par sa nouvelle valeur. */
if(strcmp(nm,st[i].nom)!=0)

{fprintf(fnew,"%s\t%s\t%d\n",st[i].nom,st[i].ad,st[i].nbsv);
}
printf("la categorie %s a ete supprimer
\n",supprime);
}
i++;
}
fclose(f);
}

}
}
/*--- Informations de chaque produit---*/
void ajout_afficheProduit ( produit t[],stock st [],int *N)
{ FILE * f=fopen("[Link]","a");
int j,i ;
if(f!=NULL)
{ for (j=i ; j<*N ; j++)
{ printf("pour le produit suivant : %s\n", st[j].nom);
printf("marque:\n");
scanf("%s",t[j].mq);
fprintf(f,"marque: %s\t",t[j].mq);
printf("taille:\n");
scanf("%s",t[j].taille);
fprintf(f,"taille: %s\t",t[j].taille);
printf("prix:\n");
scanf("%d",&t[j].prix);
fprintf(f,"prix: %d\n",t[j].prix);
printf("nombre:\n");
scanf("%d",&st[j].nbsv);
fscanf(f,"%d",st[j].nbsv);
}
fclose(f);
FILE * f=fopen("[Link]","r");
int j;
if(f!=NULL)
{ for (j=0 ; j<*N ; j++)
{ fscanf(f,"%s",t[j].mq);
printf("marque %s\n",t[j].mq);
fscanf(f,"%s",t[j].taille);
printf("taille:%s\n",t[j].taille);
fscanf(f,"%d",t[j].prix);
printf("prix:%d\n",t[j].prix);
fscanf(f,"%d",st[j].nbsv);
printf("nombre:%d\n",st[j].nbsv);
}
}
fclose(f);
}
}

int main()
{
stock st[100];
produit t[100];
int n, nbr;
ajouter_stock(st,&n);
affiche_stock(st);
ajout_afficheProduit(t,st,&n);
modife_stock(st);
supprime_stock(st);

return 0;
}

Vous aimerez peut-être aussi