Programma Inventario C++

di il
46 risposte

46 Risposte - Pagina 2

  • Re: Programma Inventario C++

    Perche dovrei essere contento? Se sei qui per imparare significa che sei disposto anche a leggere e provare. Io personalmente (per scelta personale) non faccio mai i lavori dei altri specialmente se il listato lo dovrà presentare a scuola/università perché così non ti dò l'oppurtunità di imparare ma di copiare.
    e non ti sto faccendo la predica ma se vedi non posto mai del codice prima che l'interessato abbia postato cosa è riuscito a fare.
  • Re: Programma Inventario C++

    Innanzi tutto, vorrei chiarirere un paio di cose:
    1 ) NON E' UN COMPITO: come puoi leggere sul mio profilo, io frequento il 1°anno di liceo classico, non studio in nessun modoinformatica, elettronica, programmazione; per me è soltanto UN HOBBY.
    2 )Quel poco che so è appena sufficiente a produrre una calcolatrice, soltanto una Consol-application.
    3 )Sono un autodidatta che ha sognato tutta la vita (seppure breve) di saper programmare... Ho letto le guide gratis di HTML.it, non ho libri nè altro materiale.
    4 )Conosco davvero poco il linguggio specifico.
    5 )Se vai su HTML.it, noterai da te che le cose di cui hai parlato, non sono nemmeno lontanamente trattate.


    6)Per dettagliato intendevo:
    a)Più facile: Qualche riga di codice, da ampliare, modificare o riadattare: uno spunto, una traccia sulla quale lavorare e produrre
    b) Più difficile: Istruzioni (niente codice) passo a passo.

    7 ) Magari non te ne sei accorto, ma a me non interessa riuscirci sa solo, dal momento che non possiedo le conoscenze indispensabili
  • Re: Programma Inventario C++

    Vabbè se la metti così allora sono felice di aiutarti.
    prima cosa bisogna leggere cosa sono gli struct e come crearli.
    http://programmazione.html.it/guide/lezione/1103/struct-typedef-e-union/

    Quando mi dirai che li hai capito prosseguiamo col resto.
  • Re: Programma Inventario C++

    Penso di aver capito... Possiamo procedere con il resto
  • Re: Programma Inventario C++

    Un ultima cosa: vuoi che sto programma lo facciamo in C oppure in C++. La differenza è che il C++ ha molte nozioni diverse dal C ma è anche + flessibile.
  • Re: Programma Inventario C++

    In C++ mi risulterebbe più facile, ma poi mi fido dei tuoi consigli !
  • Re: Programma Inventario C++

    OK. Allora a te serve una struttura che abbia questi campi:
    
    prezzo (direi un double va bene)
    nome prodotto (un std::string in C++ e non un char[] perche quello è il C)
    codice prodotto (un std::string per lo stesso motivo di cui sopra)
    quantità (un intero va + che bene)
    
    Quindi per scrivere la tua struct possiamo fare
    
    typedef struct _prodotto
    {
    	std::string nome;
    	double prezzo;
    	int quantita;
    }prodotto;
    
    Adesso dobbiamo decidere come creare la struttura che conterrà i dati. Il codice prodotto sarà univoco (singolo x ogni prodotto e non ripettibile) quindi una cosa che mi viene in mente è la std::map di cui parlavamo prima. Questa ha l'abilità di tenere la struttura sempre ordinata in ordine crescente (per default) e una ricerca O(logn) il che significa che se tu hai 100000 prodotti diversi la ricerca di un singolo prodotto ci mette quasi 12 comparazioni per trovare il prodotto richiesto. Una mappa può essere scritta in questo modo
    
    std::map<std::string,prodotto> magazzino;
    
    dove con std::string viene identificato il codice prodotto e con prodotto viene identificata la struttura associata al codice prodotto.

    Forse mi sono allungato un pò troppo. Se c'è qualcosa che non capisci chiedi pure.
    In fine il programma che siamo riusciti a fare fino ad adesso (non fa ancora niente ma tranquillo, ci arriviamo)
    
    #include <iostream>
    #include <string>
    #include <map>
    
    typedef struct _prodotto
    {
    	std::string nome;
    	double prezzo;
    	int quantita;
    }prodotto;
    
    std::map<std::string,prodotto> magazzino;
    //questo sarà il nostro magazzino
    
    int main()
    {
    	return 0;
    }
    
  • Re: Programma Inventario C++

    Graziee!!! Ora ci lavoro un pochino... Sei un mago della programmazione!
    P.s.
    come si inserisco le emoticons???
  • Re: Programma Inventario C++

    Ho copiato il codice, ma non mi viene in mente nulla per farlo modificare dall'utente... e non capisco cosa intendi per comparazioni
  • Re: Programma Inventario C++

    Un'altra cosa, non capisco a cosa serva la riga:
    std::map<std::string,prodotto> magazzino;
  • Re: Programma Inventario C++

    
    std::map<std::string,prodotto> magazzino;
    
    evidentemente non hai letto cosa è una std::map. Eppure il link te l'avevo postato .
    Cmq una mappa è una associazione tra due tipi di dati,
    std::map<tipoDato 1, tipoDato2> nomeMappa.

    tipoDato1 nel nostro caso è una std::string che useremo per il codice prodotto
    tipoDato2 nel nostro caso è una struct di tipo prodotto che abbiamo definito prima.

    Una std::map ha molte funzioni utili a localizzare, inserire, eliminare i dati. Inizia a leggere un pò su come potresti usare questa mappa e posta le tue idee. Ti anticipo che una mappa vuole il tipoDato1 univoco (non ripettibile) e il codice prodotto è una variabile che fa al nostro caso.
  • Re: Programma Inventario C++

    Intanto io mi sono portato avanti e ho scritto un piccolo menu per il programmino. Più avanti lo estenderemo con altre funzioni. Questo è solo il menù (solo la presentazione) non lo svolgimento delle voci che essa contiene.
    Anche quì chiedi cos'è che non ti è chiaro. E' evidente che non prosseguirò oltre se non vedo un certo impegno da parte tua nel studiare e approfondire su ciò che non ti è chiaro.
    
    #include <iostream>
    #include <limits>
    #include <string>
    #include <map>
    
    typedef struct _prodotto
    {
    	std::string nome;
    	double prezzo;
    	int quantita;
    }prodotto;
    
    std::map<std::string,prodotto> magazzino;
    //questo sarà il nostro magazzino
    
    int menu(void);
    
    int main()
    {
    	int scelta = 0;
    	do 
    	{
    		scelta = menu();
    	} while (scelta != 3);
    	return 0;
    }
    
    int menu(void)
    {
    	
    	std::cout << std::string(25,'\n');
    	std::cout << "\tMAGAZZINO 1.0" << std::endl << std::endl;
    	std::cout << "1.\tInserisci articolo" << std::endl;
    	std::cout << "2.\tCerca articolo" << std::endl;
    	std::cout << "3.\tEsci" << std::endl << std::endl;
    	std::cout << "Scelta:\t";
    	int scelta = 0;
    	if(!(std::cin >> scelta))
    	{
    		std::cin.clear();
    		std::cin.ignore(std::numeric_limits<std::streamsize>::max(),'\n');
    	}
    	return scelta;
    }
    
  • Re: Programma Inventario C++

    Sono riuscito a produrre solo questo fallimento :'( Ora mi riguardo quelle std::map e riprovo
    
        #include <iostream>
        #include <limits>
        #include <string>
        #include <map>
    
        typedef struct _prodotto
        {
           std::string nome;
           double prezzo;
           int quantita;
        }prodotto;
    
        std::map<std::string,prodotto> magazzino;
        //questo sarà il nostro magazzino
    
        int main()
        {
           int scelta;
           std::cout << std::string(25,'\n');
           std::cout << "\tMAGAZZINO 1.0" << std::endl << std::endl;
           std::cout << "1.\tInserisci articolo" << std::endl;
           std::cout << "2.\tCerca articolo" << std::endl;
           std::cout << "3.\tEsci" << std::endl << std::endl;
           std::cout << "Scelta:\t";
           std::cin >> scelta;
           switch (scelta);
           {
            case 1:  //ERRORE: case label '1' not within a switch statement
            std::cout << "inserisci il prezzo:";
            std::cin >> prezzo;  //PREZZO WAS NOT DECLARED IN THIS SCOPE
            std::cout <<"inserisci la quantità:";
            std::cin >> quantita; //NOT DECLARED IN THIS SCOPE
            std::cout <<"ora il nome:";
            std::cin >> nome;  //NOT DECLARED IN THIS SCOPE
            break; //NOT WITHIN LOOP OR SWITCH
            case 2: //ERRORE UGUALE A SOPRA "CASE LABEL '2' ...
            std::cout <<"inserisci il codice:";
            break; //ERRORE BREAK STATEMENT NOT WITHIN LOOP OR SWITCH
            case 3://SOLITO ERRORE..
            exit; //NOT DECLARED IN THIS SCOPE
            break; // NOT WITHIN LOOP OR SWITCH
            default: //NOT WITHIN A SWITCH STATEMENT
            std::cout <<"scelta non valida!";
            break; //NOT WITHIN LOOP OR SWITCH
           }
    
         return 0;
        }
    
  • Re: Programma Inventario C++

    Ma perche cambi il codice? Non ti piaceva la funzione menu fuori dal main? Vuoi imparare a programmare o vuoi fare un miscuglio di codice che non si capisce niente.
    
     switch (scelta);
    
    che ci fa il punto virgola in questa riga. Per forza che tutto il tuo codice è sbagliato. Ti ho detto di chiedere cosa non capisci con ciò che ho fatto fino ad adesso non di stravolgere il codice.
  • Re: Programma Inventario C++

    TU mi fai le cose complicate e io non ci capisco un c*zzo, stessa cosa per quelle fottutissim* std::map, non è chiaro. Non c'è un maledetto esempio comprensibile!
Devi accedere o registrarti per scrivere nel forum
46 risposte