Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Gestione di un Magazzino - Magazzino.cpp

Magazzino.cpp

Caricato da: Mariognai
Scarica il programma completo

  1. # include <stdio.h>
  2. # include <stdlib.h>
  3. # include <string.h>
  4. # include <stdbool.h>
  5. # define DIM 1500
  6.  
  7.  
  8. int main(){
  9.    
  10.     typedef struct{                  // creazione record
  11.                    int codice;
  12.                    char prodotto[20];
  13.                    char tipo;
  14.                    float prezzo;
  15.                    int quantita;
  16.                    int scortaminima;
  17.                    }magazzino;
  18.                    
  19.    magazzino articoli[DIM],articoli2[DIM],prodotto_nuovo;
  20.    int i,i1,c,disuguale,diverso,eliminato,ordini2,scelta,codice,ordine,n,codice1,codice2,j=0;
  21.    char scelta1,prodotto[20],operazioni[60][100];
  22.    bool trovato=false;
  23.    FILE *fpin,*fpout;
  24.    
  25.    
  26.    do{
  27.       printf("\n\tGESTIONE MAGAZZINO");
  28.       printf("\n\n");
  29.       printf("1. Inserisci nuovo prodotto");
  30.       printf("\n");
  31.       printf("2. Sfoglia catalogo");
  32.       printf("\n");
  33.       printf("3. Cercare prodotto in base al codice");
  34.       printf("\n");
  35.       printf("4. Cercare prodotto in base al nome");
  36.       printf("\n");
  37.       printf("5. Modifica dati prodotto");
  38.       printf("\n");
  39.       printf("6. Elimina prodotto");
  40.       printf("\n");
  41.       printf("7. Crea ordini");
  42.       printf("\n");
  43.       printf("0. Esci");
  44.       printf("\n\n");
  45.      
  46.       printf("Digita scelta : ");
  47.       scanf("%d",&scelta);
  48.      
  49.       switch(scelta){
  50.                      
  51.                      case 1:
  52.                              fpin=fopen("Magazzino.txt","r");   //apertura file in lettura
  53.                              if(fpin==NULL)
  54.                                 puts("Errore apertuta file!");
  55.                              else{
  56.                                  i=0;
  57.                                   while(!feof(fpin)){
  58.          /*lettura del file*/             fscanf(fpin,"%d %s %c %f %d %d",&articoli[i].codice,articoli[i].prodotto,&articoli[i].tipo,&articoli[i].prezzo,&articoli[i].quantita,&articoli[i].scortaminima);
  59.                                      i++;
  60.                                   }
  61.                                  
  62.                                   n=i;
  63.          /*chiusura del file*/    fclose(fpin);                              
  64.                                   printf("\nInserisci codice nuovo prodotto ");
  65.                                   scanf("%d",&prodotto_nuovo.codice);
  66.                                   for(i=0;i<n;i++)
  67.                                      if(prodotto_nuovo.codice==articoli[i].codice){
  68.                                             printf("Il codice inserito e' gia' presente nel file\nReinserisci codice nuovo prodotto ");
  69.                                             scanf("%d",&prodotto_nuovo.codice);
  70.                                      }    
  71.                                   printf("Inserisci descrizione nuovo prodotto ");
  72.                                   scanf("%s",prodotto_nuovo.prodotto);
  73.                                   printf("Inserisci tipo del nuovo prodotto ");
  74.                                   printf("Legenda\n\n");
  75.                                   printf("m=meccanica\n\n");
  76.                                   printf("e=elettronica\n\n");
  77.                                   printf("l=lavoro\n\n");
  78.                                   printf("s=scuola\n\n");
  79.                                   printf("c=cucina\n\n");
  80.                                   fflush(stdin);
  81.                                   scanf("%c",&prodotto_nuovo.tipo);
  82.                                   printf("Inserisci il prezzo del nuovo prodotto ");
  83.                                   scanf("%f",&prodotto_nuovo.prezzo);
  84.                                   printf("Inserisci le quantita' del nuovo prodotto ");
  85.                                   scanf("%d",&prodotto_nuovo.quantita);
  86.                                   printf("Inserisci la scorta minima del nuovo prodotto ");
  87.                                   scanf("%d",&prodotto_nuovo.scortaminima);
  88.                                  
  89.                                   fpin=fopen("Magazzino.txt","a");//apertura file in scrittura
  90.                                  
  91.                                   //scrivo nel file le informazioni acquisite dall'utente
  92.                                   fprintf(fpin,"\n%d %s %c %.2f %d %d",prodotto_nuovo.codice,prodotto_nuovo.prodotto,prodotto_nuovo.tipo,prodotto_nuovo.prezzo,prodotto_nuovo.quantita,prodotto_nuovo.scortaminima);                                                                            
  93.                                   fclose(fpin);
  94.                              }
  95.                              fpin=fopen("Operazioni eseguite.txt","a");
  96.                              fprintf(fpin,"Articolo aggiunto\n");
  97.                              fclose(fpin);
  98.                              break;
  99.                              
  100.                              
  101.                      case 2:
  102.                              fpin=fopen("Magazzino.txt","r");
  103.                              if(fpin==NULL)
  104.                                 puts("Errore apertuta file!");
  105.                              else{
  106.                                   printf("\nCODICE\tDESCRIZIONE\tTIPO\tPREZZO\tQUANTIA'   SCORTA MINIMA\n");//impaginazione parte 1
  107.                                       i=0;
  108.                                       c=0;
  109.                                       while(!feof(fpin)){
  110.                                           fscanf(fpin,"%d %s %c %f %d %d",&articoli[i].codice,articoli[i].prodotto,&articoli[i].tipo,&articoli[i].prezzo,&articoli[i].quantita,&articoli[i].scortaminima);            
  111.                                           if(strlen(articoli[i].prodotto)>=8)
  112.                                              printf("%d\t%s\t%c\t%.2f\t%d\t\t%d\n",articoli[i].codice,articoli[i].prodotto,articoli[i].tipo,articoli[i].prezzo,articoli[i].quantita,articoli[i].scortaminima);                    
  113.                                           else
  114.                                              printf("%d\t%s\t\t%c\t%.2f\t%d\t\t%d\n",articoli[i].codice,articoli[i].prodotto,articoli[i].tipo,articoli[i].prezzo,articoli[i].quantita,articoli[i].scortaminima);
  115.                                           i++;
  116.                                           c++;
  117.                                           if(c==10){   //impaginazione
  118.                                                system("pause");
  119.                                                printf("\n\n");
  120.                                                c=0;
  121.                                           }                      
  122.                                       }
  123.                                  
  124.                                   fclose(fpin);
  125.                              }
  126.                              fpin=fopen("Operazioni eseguite.txt","a");
  127.                              fprintf(fpin,"Sfoglio catalogo eseguito");
  128.                              fclose(fpin);
  129.                            
  130.                            
  131.                              break;
  132.                      
  133.                       case 3:
  134.                              
  135.                               fpin=fopen("Magazzino.txt","r");
  136.                               if(fpin==NULL)
  137.                                  puts("Errore apertuta file!");
  138.                               else{
  139.                                    printf("\nDigita il codice del prodotto che vuoi sapere   : ");
  140.                                    scanf("%d",&codice);
  141.                                       i=0;
  142.                                      
  143.                                       while(!feof(fpin)){
  144.                                         fscanf(fpin,"%d %s %c %f %d %d ",&articoli[i].codice,articoli[i].prodotto,&articoli[i].tipo,&articoli[i].prezzo,&articoli[i].quantita,&articoli[i].scortaminima);
  145.                                         i++;
  146.                                         }  
  147.                                         n=i;    
  148.                                        
  149.                                         for(i=0,disuguale=0;i<n;i++)
  150.                                           if(codice==articoli[i].codice){
  151.                                                printf("%s\t%c\t%.2f\t%d\t%d\n",articoli[i].prodotto,articoli[i].tipo,articoli[i].prezzo,articoli[i].quantita,articoli[i].scortaminima);
  152.                                                disuguale=1;
  153.                                            }
  154.                                      
  155.                                        if(disuguale==0)
  156.                                          printf("il codice inserito non esiste nel megazzino\n");                                
  157.                                }  
  158.                                
  159.                               fpin=fopen("Operazioni eseguite.txt","a");
  160.                               fprintf(fpin,"Ricerca del prodotto tramite codice\n");
  161.                               fclose(fpin);
  162.                               break;
  163.                      
  164.                      case 4:
  165.                              
  166.                               fpin=fopen("Magazzino.txt","r");
  167.                               if(fpin==NULL)
  168.                                  puts("Errore apertuta file!");
  169.                               else{
  170.                                    printf("\nDigita il nome (o una porzione di nome) del prodotto che vuoi sapere   : ");
  171.                                    scanf("%s",prodotto);
  172.                                    i=0;
  173.                                    while(!feof(fpin)){
  174.                                         fscanf(fpin,"%d %s %c %f %d %d ",&articoli[i].codice,articoli[i].prodotto,&articoli[i].tipo,&articoli[i].prezzo,&articoli[i].quantita,&articoli[i].scortaminima);
  175.                                         i++;
  176.                                    }  
  177.                                    n=i;
  178.                                    fclose(fpin);
  179.                                    for(i=0,diverso=0;i<n;i++)
  180.                                            if(strstr(articoli[i].prodotto,prodotto)!=NULL){
  181.                                                     diverso=1;
  182.                                                     printf("il prodotto cercato e' :\n");
  183.                                                     printf("%s\t%c\t %.2f\t%d\t%d\n\n",articoli[i].prodotto,articoli[i].tipo,articoli[i].prezzo,articoli[i].quantita,articoli[i].scortaminima);
  184.                                             }
  185.                                    if(diverso==0)
  186.                                       printf("PRODOTTO INESISTENTE");                
  187.                               }
  188.                               fpin=fopen("Operazioni eseguite.txt","a");
  189.                               fprintf(fpin,"Ricerca del prodotto tramite nome\n");
  190.                               fclose(fpin);
  191.                              
  192.                               break;
  193.                       case 5:
  194.                              fpin=fopen("magazzino.txt","r");
  195.                            
  196.                              if(fpin==NULL)
  197.                                   puts("Errore apertuta file!");
  198.                              else{
  199.                                 i=0;
  200.                                 while(!feof(fpin)){
  201.                                    fscanf(fpin,"%d %s %c %f %d %d",&articoli[i].codice,articoli[i].prodotto,&articoli[i].tipo,&articoli[i].prezzo,&articoli[i].quantita,&articoli[i].scortaminima);
  202.                                    i++;
  203.                                 }
  204.                                 n=i;
  205.                                 fclose(fpin);
  206.                            
  207.                                 puts("Dammi il codice del prodotto da modificare :");
  208.                                 scanf("%d",&codice1);
  209.                            
  210.                    
  211.                                 trovato=false;
  212.                            
  213.                                 for(i=0;i<n && trovato==false;i++){
  214.                                        if(articoli[i].codice==codice1){
  215.                                            trovato=true;
  216.                                            printf("descrizione:\n");
  217.                                            printf("%d\t%s\t%c\t%.2f\t%d\t%d\n",articoli[i].codice,articoli[i].prodotto,articoli[i].tipo,articoli[i].prezzo,articoli[i].quantita,articoli[i].scortaminima);
  218.                                            puts("Cosa vuoi  modificare");
  219.                                            puts("Scegli funzione: \n LEGGENDA\n d=descrizione\n t=tipo\n p=prezzo\n q=quantita'\n s=scortaminima\n");
  220.                                            fflush(stdin);
  221.                                            scanf("%c",&scelta1);
  222.                                      
  223.                                            switch(scelta1){
  224.                                  
  225.                                                      case 'd':
  226.                                                              printf("Inserisci la nuova descrizione:");
  227.                                                              scanf("%s",articoli[i].prodotto);
  228.                                      
  229.                                              
  230.                                                              break;
  231.                                  
  232.                                                       case 't':
  233.                                                               printf("Legenda\n\n");
  234.                                                               printf("m=meccanica\n\n");
  235.                                                               printf("e=elettronica\n\n");
  236.                                                               printf("l=lavoro\n\n");
  237.                                                               printf("s=scuola\n\n");
  238.                                                               printf("c=cucina\n\n");
  239.                                                               printf("Inserisci la nuova categoria:\n");
  240.                                                               fflush(stdin);
  241.                                                               scanf("%c",&articoli[i].tipo);
  242.                                                              
  243.                                                               break;
  244.                                  
  245.                                                       case 'p':
  246.                                                              printf("Inserisci il nuovo prezzo:");
  247.                                                              scanf("%f",&articoli[i].prezzo);
  248.                                          
  249.                                                              system("pause");
  250.                                                              system("CLS");
  251.                                                              
  252.                                                              break;
  253.                                  
  254.                                                      case 'q':
  255.                                                              printf("Inserisci la nuova giacenza:");
  256.                                                              scanf("%d",&articoli[i].quantita);
  257.                                                              
  258.                                                              break;
  259.                                  
  260.                                                      case 's':
  261.                                                              printf("Inserisci la nuova scorta_minima:");
  262.                                                              scanf("%d",&articoli[i].scortaminima);
  263.                                                              
  264.                                                              break;
  265.                                                      default: puts("Scelta non valida");
  266.                                                
  267.                                                   }
  268.                                         }
  269.                                  }
  270.                                  fpin=fopen("magazzino.txt","w");
  271.                                  printf("\nCODICE\tDESCRIZIONE\tTIPO\tPREZZO\tQUANTIA'   SCORTA MINIMA\n");
  272.                                  for(i=0;i<n-1;i++){
  273.                                        if(strlen(articoli[i].prodotto)>=8)
  274.                                              printf("%d\t%s\t%c\t%.2f\t%d\t\t%d\n",articoli[i].codice,articoli[i].prodotto,articoli[i].tipo,articoli[i].prezzo,articoli[i].quantita,articoli[i].scortaminima);                    
  275.                                        else
  276.                                              printf("%d\t%s\t\t%c\t%.2f\t%d\t\t%d\n",articoli[i].codice,articoli[i].prodotto,articoli[i].tipo,articoli[i].prezzo,articoli[i].quantita,articoli[i].scortaminima);
  277.                                      
  278.                                        fprintf(fpin,"%d %s %c %.2f %d %d\n",articoli[i].codice,articoli[i].prodotto,articoli[i].tipo,articoli[i].prezzo,articoli[i].quantita,articoli[i].scortaminima);
  279.                                  }
  280.                                  fclose(fpin);
  281.                            
  282.                                  fpin=fopen("Operazioni eseguite.txt","a");
  283.                                  fprintf(fpin,"Modifica di un prodotto\n");
  284.                                  fclose(fpin);
  285.                             }
  286.                                  break;
  287.                    
  288.                                              
  289.                       case 6:
  290.                                
  291.                             fpin=fopen("Magazzino.txt","r");
  292.                             if(fpin==NULL)
  293.                                  puts("Errore apertuta file!");
  294.                             else{
  295.                                 printf("\nQuale prodotto vuoi cancellare? Digita il suo codice :  ");
  296.                                 scanf("%d",&codice2);
  297.                                 i=0;
  298.                                 while(!feof(fpin)){
  299.                                    fscanf(fpin,"%d %s %c %f %d %d",&articoli[i].codice,articoli[i].prodotto,&articoli[i].tipo,&articoli[i].prezzo,&articoli[i].quantita,&articoli[i].scortaminima);            
  300.                                    i++;
  301.                                 }
  302.                                 n=i;
  303.                                fclose(fpin);
  304.                                fpin=fopen("Magazzino.txt","w");
  305.                                for(i=0,j=0;i<n;i++)
  306.                                   if(articoli[i].codice!=codice2){
  307.                                       articoli2[j]=articoli[i];
  308.                                       j++;
  309.                                   }
  310.                                for(i=0;i<j;i++){
  311.                                   if(i!=j-1)
  312.                                       fprintf(fpin,"%d %s %c %.2f %d %d\n",articoli2[i].codice,articoli2[i].prodotto,articoli2[i].tipo,articoli2[i].prezzo,articoli2[i].quantita,articoli2[i].scortaminima);
  313.                                   else
  314.                                      fprintf(fpin,"%d %s %c %.2f %d %d",articoli2[i].codice,articoli2[i].prodotto,articoli2[i].tipo,articoli2[i].prezzo,articoli2[i].quantita,articoli2[i].scortaminima);
  315.                                }
  316.                                printf("Apri il file Magazzino per verificare la modifica\n");    
  317.                                fclose(fpin);
  318.    
  319.                                fpin=fopen("Operazioni eseguite.txt","a");
  320.                                fprintf(fpin,"Eliminazione di un prodotto\n");
  321.                                fclose(fpin);
  322.                          }
  323.                                
  324.                                break;
  325.                       case 7:
  326.                              fpin=fopen("Magazzino.txt","r");
  327.                              
  328.                              if(fpin==NULL)
  329.                                  puts("Errore apertuta file!");
  330.                              else{
  331.                                  i=0;
  332.                                  while(!feof(fpin)){
  333.                                     fscanf(fpin,"%d %s %c %f %d %d",&articoli[i].codice,articoli[i].prodotto,&articoli[i].tipo,&articoli[i].prezzo,&articoli[i].quantita,&articoli[i].scortaminima);
  334.                                     i++;
  335.                                  }
  336.                                  n=i;
  337.                                 fclose(fpin);                            
  338.                              
  339.                                 fpout=fopen("Ordini.txt","w");
  340.                                 for(i=0,ordini2=0;i<n;i++)
  341.                                      if(articoli[i].quantita<articoli[i].scortaminima){
  342.                                          ordine=(articoli[i].scortaminima-articoli[i].quantita)+((articoli[i].scortaminima*30)/100);
  343.                                          ordini2++;
  344.                                         fprintf(fpout,"%d %s %d\n",articoli[i].codice,articoli[i].prodotto,ordine);
  345.                                       }                    
  346.                                 fclose(fpout);
  347.                                 puts("Apri il file Ordini!");  
  348.                              
  349.                               fpin=fopen("Operazioni eseguite.txt","a");
  350.                               fprintf(fpin,"Creazione ordini, ordini creati : %d \n",ordini2);
  351.                               fclose(fpin);
  352.                             }                                                                        
  353.                            break;
  354.                                  
  355.                  case 0:
  356.                              return 0;
  357.  
  358.                              
  359.           }          
  360.          
  361.          
  362.          system("pause");
  363.          system ("CLS");
  364.       }while(scelta!=0);
  365.      
  366.      
  367.          
  368.          
  369.   system("pause");
  370.   return 0;
  371.   }