Visualizzazione dei risultati da 1 a 7 su 7

Visualizzazione discussione

  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2015
    Messaggi
    3

    [C] programma per magazzino

    Ciao ragazzi sono nuovo prima discussione, qualcuno può aiutarmi.. Ho un problema nel case due non riesco ad aggiornare le voci presenti nel file di testo. Grazie in anticipo

    Ecco il codice

    codice:
    #include <stdio.h>
    #include <string.h>
    #include<stdlib.h>
    
    typedef struct Articolo {
        int codice;
        char nome[300];
        int quantita;
    } ARTICOLO;
    int g=0;
    int j=0;
    int i=0;
    int var=0;
    int qprovv=0;
    int ID = 0, quantit =0;
    char NomeArticolo [50];
    
    int main (void)
    {
        ARTICOLO Articolo[100];
        FILE *fd;
        char c;
        char NomeArticolo[50];
        int q, ID;
        float p, prezzo1, prezzo2;
    
        do
        {
            printf("1-Inserisci Articolo\n");
            printf("2-Modifica Quantita'\n");
            printf("3- Visualizza magazzino\n");
            printf("4- Visualizza riga per riga\n");
            printf("0-Fine\n");
            g=0;
            c=getchar();
            getchar();
    
    
            switch (c)
            {
            case '1':
                printf("Inserisci codice Articolo: ");
                scanf("%d", &ID);
                i=0;
                /* apre il file */
                if ((fd = fopen("magazzino.txt", "r+")) != NULL)
    
    
                {   while(EOF!=fscanf(fd, "%d %s %d\n", &Articolo[i].codice, &Articolo[i].nome, &Articolo[i].quantita))
                        i++;
                }
    
    
                else (printf("ERRORE NELL'APERTURA DEL FILE"));
    
    
                /* verifica se l'oggetto è presente  */
    
    
                for (j=0; j<i; j++)
                {
                    if(ID == Articolo[j].codice)
    
    
                    {
                        printf( "Prodotto gia' presente.\n\n");
                        g = 1;
                    }
                }
                /* inserisce un nuovo oggetto */
                if(g== 0)
                {
                    printf("\nInserisci nome Articolo: ");
                    scanf("%s", &NomeArticolo);
                    printf("\nInserisci quantita: ");
                    scanf("%d", &quantit);
                    fprintf(fd, "\n%d %s  %d ",ID, NomeArticolo, quantit );
                    printf("Il prodotto e' stato inserito nel database.\n");
                }
                fclose(fd);
                g=0;
                j=0;
                break;
            case '2':
                i=0;
                printf("Inserisci codice Articolo: ");
                scanf("%d", &ID);
                /* apre il file */
                if ((fd = fopen("magazzino.txt", "r+")) != NULL)
                {
                    while(EOF!=fscanf(fd, "%d %s %d\n", &Articolo[i].codice, &Articolo[i].nome, &Articolo[i].quantita))
                        /* verifica se l'oggetto è presente  */
                    {
                        if(ID == Articolo[i].codice)
                        {
                            printf("%d",i);
                            printf( "Prodotto presente inserisci la quantita da variare preceduta da +o-:.\n");
                            scanf("%d", &var);
                            qprovv = Articolo[i].quantita + var;
                            printf("%d", Articolo[i].quantita);
                            fprintf(fd, "%d  %s  %d", Articolo[i].codice, Articolo[i].nome, qprovv);
                            printf( "La quantita' presente in magazzino dell'oggetto %d e' stata variata.\n\n", ID);
                            g = 1;
                            break;
                        }
                        i++;
                    }
                    if(g== 0)
                    {
                        printf("Oggetto non presente.\n\n");
                        break;
                    }
                }
                else (printf("ERRORE NELL'APERTURA DEL FILE"));
    
                fclose(fd);
                g=0;
                j=0;
                break;
            case '3':
                /* apre il file */
                i=0;
                if ((fd = fopen("magazzino.txt", "r+")) != NULL)
                {
                    while(EOF!=fscanf(fd, "%d %s %d\n", &Articolo[i].codice, &Articolo[i].nome, &Articolo[i].quantita))
                        i++;
                }
                else (printf("ERRORE NELL'APERTURA DEL FILE\n"));
    
                /* visualizza l'intero magazzino */
                for (j=0; j< i; j++)
                {
                    printf("%d %s %d\n", Articolo[j].codice, Articolo[j].nome, Articolo[j].quantita);
                    exit;
                }
    
                fclose(fd);
    
                j=0;
                i=0;
    
                break;
            case '0':
                return 0;
            }
            while(!getchar());
        }
        while(c);
    }
    Ultima modifica di MItaly; 12-12-2015 a 00:25 Motivo: Formattazione, tag CODE

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.