Exercice fichier

Fermé
zoey - 9 déc. 2017 à 19:45
yg_be Messages postés 22719 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 23 avril 2024 - 10 déc. 2017 à 09:42
Bonjour,
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. 2. Afficher les informations concernant chaque produit (nombre , Marque, Prix unitaire à l’achat, etc.) 3. Ajouter, modifier et supprimer un produit. 4. Ajouter, modifier et supprimer une catégorie. 5. Afficher la capacité globale de stockage encore disponible.


A voir également:

1 réponse

mushu14 Messages postés 8085 Date d'inscription lundi 23 novembre 2009 Statut Contributeur Dernière intervention 16 février 2023 1 087
9 déc. 2017 à 19:46
salut,
tu veux pas faire tes devoirs tout seul ?
0
Whismeril Messages postés 19026 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 20 avril 2024 931
9 déc. 2017 à 19:50
0
mushu14 Messages postés 8085 Date d'inscription lundi 23 novembre 2009 Statut Contributeur Dernière intervention 16 février 2023 1 087
Modifié le 9 déc. 2017 à 20:04
résolu donc ....
edit: finalement non, y'a effort de la personne en essayant de comprendre
0
zoeymatt Messages postés 2 Date d'inscription samedi 9 décembre 2017 Statut Membre Dernière intervention 9 décembre 2017
9 déc. 2017 à 19:59
salut mushu,
non, j'essaie mais j'avais des problémes au nivau de compilation et aussi l'exercice est compliqué j'ai pas bien compris
0
zoeymatt Messages postés 2 Date d'inscription samedi 9 décembre 2017 Statut Membre Dernière intervention 9 décembre 2017
Modifié le 9 déc. 2017 à 20:50
#include <stdio.h>
#include <stdlib.h>

   typedef struct
    {
    char mq[50]; /*marque d'un produit*/
    char taille[50]; /*taille*/
    int prix,nbr; /*nombre de produit de stockage reservees*/

    } pr ; /*produit */
   typedef struct
    {
    pr nom[100];
    char ad [100]; /* adresse de chaque catégorie*/
    int nbsv; /*le nombre d'unités de stockage reservees*/
    int nbst; /*le nombre maximum d'unités de stockage*/

    }stock;
  /*---dédinir un stock de produit---*/
void def (stock st[] ,int *N)
{
    FILE * f=fopen("stock.txt","a");
    int i;
    if(f!=NULL)
      {printf("donner nombre de categories ");
       scanf("%d",N);
       do {
          for (i=0;i<*N;i++)
            {
            printf("donner le nom du %d eme categorie \n",i);
            scanf("%s",st[i].nom);
            fprintf(f,"%s",st[i].nom);
            printf("donner l'adresse du %d eme categorie \n",i);
            scanf("%s",st[i].ad);
            fprintf(f,"%s",st[i].ad);
            printf(" donner le nombre d'unités de stockage reservees \n",i);
            scanf("%d",st[i].nbsv);
            fprintf(f,"%d",st[i].nbsv);
            printf("donner le nombre maximum d'unités de stockage \n ");
            scanf("%d",st[i].nbst);
            fprintf(f,"%d",st[i].nbst);
            }
          }
            while(st[i].nbsv<st[i].nbst);
        }
       fclose(f);
}
  /*---fonction modifier---*/
void modife (stock st[])
  { char nm [20];
    int i=0;
    FILE*f=fopen("stock.txt","r+");
    rewind(f);
   if(f==NULL)
     printf("fichier null");
   else
      { while(feof(f)!=0)
          { printf("donner le categorie a modifie : \n");
            scanf(f,"%s",nm);
            if(strcmp(nm,st[i].nom)==0)
               {st[i].nom=nm;
                printf("le catégorie a été modifier %s",st[i].nom);
               }
          i+=1;
        fclose(f);
          }
       }

  }
/*---fonction supprime---*/
void supprime(stock st[])
{

}
  /*---affichage des informations de chaque produit---*/
void affiche ( pr t[],stock st [],int *N)

{ FILE * f=open("produit.txt","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,"%s",t[j].mq);
         printf("taille:\n");
         scanf("%s",t[j].taille);
         fscanf(f,"%s",t[j].taille);
         printf("prix:\n");
         scanf("%d",t[j].prix);
         fscanf(f,"%d",t[j].prix);
         printf("nombre:\n");
         scanf("%d",st[j].nbsv);
         fscanf(f,"%d",st[j].nbsv);
         }
         fclose(f);
    FILE * f=open("produit.txt","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];
    pr   t[100];
    int n;
    ajouter(st,&n);
    affiche(t,st,&n);

    return 0;
}


EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici : ICI

Merci d'y penser dans tes prochains messages.
0
yg_be Messages postés 22719 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 23 avril 2024 1 476 > zoeymatt Messages postés 2 Date d'inscription samedi 9 décembre 2017 Statut Membre Dernière intervention 9 décembre 2017
10 déc. 2017 à 09:42
bonjour, tout cela fonctionne bien?
0