Exercice fichier

zoey -  
yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   -
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.

1 réponse

  1. mushu14 Messages postés 11897 Date d'inscription   Statut Contributeur Dernière intervention   1 123
     
    salut,
    tu veux pas faire tes devoirs tout seul ?
    0
    1. mushu14 Messages postés 11897 Date d'inscription   Statut Contributeur Dernière intervention   1 123
       
      résolu donc ....
      edit: finalement non, y'a effort de la personne en essayant de comprendre
      0
    2. zoeymatt Messages postés 2 Statut Membre
       
      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
    3. zoeymatt Messages postés 2 Statut Membre
       
      #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
      1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588 > zoeymatt Messages postés 2 Statut Membre
         
        bonjour, tout cela fonctionne bien?
        0