Consiglio sulla struttura da utilizzare

di il
25 risposte

25 Risposte - Pagina 2

  • Re: Consiglio sulla struttura da utilizzare

    Concordo pienamente però il C è un triciclo un motore V12 tri-turbo benzina da 12000 CV che con adeguate conoscenze vince tutti i premi esistenti al mondo... D'altro canto la programmazione ad oggetti rende tutto più semplice e facilmente utilizzabile/riciclabile. Per il mio modo di vedere le cose preferisco assegnare la memoria e scrivere ogni singola istruzione piuttosto che usare un `semplice` new() o xxxx.add() o xxxx.getXXXX().

    Ho un dubbio su una nuova cosa...
    Io per svolgere il suddetto programma:
    (1) avrei caricato i database magazzini e prodotti
    (2) scansionando il file giacenze avrei assegnato mediante la mappa i magazzini e i prodotti.

    Adesso il problema quindi è:
    Queste metodo di procedere va bene? oppure devo assegnare direttamente magazzino/prodotto scansionando il file giacenze e poi scansionando il file prodotti per assegnarli al `magazzino`corrente?

    Se è la prima opzione dove carico i dati (arrayList / lista)?
    Prevedo che però la scelta migliore sia la seconda...
    In tal caso leggo il file delle giacenze,
    trovo un magazzino a cui corrisponde un prodotto...
    ENG07KKF722
    SMN9005
    126
    FXXK9976RPQ
    SM935F
    4
    
    associo direttamente mediante il metodo
    map.put(X, Y);
    tale magazzino e tale prodotto in questo modo:
    scansiono il file dei magazzini, trovo il magazzino, lo carico in una variabile di tipo magazzino
    scansiono il file dei prodotti, trovo il prodotto, lo carico in una variabile di tipo prodotto
    associo mediante il metodo suddetto i due oggetti?

    Progetto in corso al link:
    https://github.com/myblacksloth/javaPrograms/tree/master/WarehouseManagement
  • Re: Consiglio sulla struttura da utilizzare

    migliorabile ha scritto:


    ....
    Esiste anche un linguaggio di programmazione basato TOTALMENTE sulle liste: il LISP (per gli amici: L)ista I)nfinita di S)tupide P)arentesi - non preoccuparti, chi sa, ha capito )
    Lo ricordo benissimo, uno degli incubi in ingegneria della conoscenza...
    a questo si affiancava il Prolog nel corso di Intelligenza artificiale, altro incubo di noi laureandi che essendo abituati ai linguaggi ad oggetti, ci ritrovavamo 'ste strutture amorfe che non si capiva un accidenti...
  • Re: Consiglio sulla struttura da utilizzare

    antomau96 ha scritto:


    Concordo pienamente però il C è un triciclo un motore V12 tri-turbo benzina da 12000 CV che con adeguate conoscenze vince tutti i premi esistenti al mondo...
    Tutti NO. Ti sei mai chiesto perché le web application NON le sviluppano in C/C++ ??
  • Re: Consiglio sulla struttura da utilizzare

    Ovvio non tutto..... altrimenti non si sarebbero sviluppati altri linguaggi ma solo evoluzioni di C....

    Ritornando al problema originario ho usato questo codice per scansionare i tre file a caccia di dati ma temo solo di aver fatto una grande fesseria
    in = new Scanner(filec3.getSelectedFile()); //viene caricato il file delle giacenze nello scanner
    
    
    
    
    
    
                        Scanner inMagazzini = new Scanner(filec1.getSelectedFile()); //scanner per il file dei magazzini
    
    
    
                        Scanner inProdotti = new Scanner(filec2.getSelectedFile());
    
    
                        while (in.hasNextLine())
                        {
    
                            Warehousing currentWarehousing = new Warehousing(in.nextLine(), in.nextLine(), Integer.parseInt(in.nextLine()));
    
    
    
                            while (inMagazzini.hasNextLine())
                            {
    
                                Warehouse warehouse = new Warehouse(in.nextLine(), in.nextLine(), in.nextLine(), in.nextLine(), in.nextLine(), in.nextLine());
    
                                if (currentWarehousing.getWarehouseSerial().equals(warehouse.getSerial()))
                                {
    
    
                                    while (inProdotti.hasNextLine())
                                    {
    
                                        Product currentProduct = new Product(in.nextLine(), in.nextLine(), Integer.parseInt(in.nextLine()));
    
                                        if (currentWarehousing.getProductSerial().equals(currentProduct.getSerial()))
                                        {
    
                                            myManager.put(warehouse, currentProduct);
    
                                        } //end of if
    
                                    } //end of while
    
                                } //end of if
    
                            } //end of while
                            }
                            
    filec sta per file chooser....
    la 1 prende il file dei magazzini
    la 2 il file dei prodotti
    e la 3 quello delle giacenze...

    { tutto il file: https://github.com/myblacksloth/javaPrograms/blob/master/WarehouseManagement/com_antomau_WarehouseManagement/UserInterface/UserWarehouseManagement.java }

    se non erro non viene però considerato il numero di prodotti presenti nel magazzino... è possibile implementare una mappa a 3 oggetti dove il terzo sarebbe il numero di quel prodotto presente in quel magazzino...??
  • Re: Consiglio sulla struttura da utilizzare

    antomau96 ha scritto:


    è possibile implementare una mappa a 3 oggetti dove il terzo sarebbe il numero di quel prodotto presente in quel magazzino...??
    Non ho purtroppo tempo ora di analizzare meglio il contesto della tua applicazione ma .... questa frase è sicuramente posta nel modo "sbagliato".
    Nel senso che nelle mappe hai solo chiave E valore. Ma chiave e valore possono essere qualunque cosa che è permessa secondo il linguaggio/framework usato.
    In Java, nel Collections Framework standard, chiave e valore delle mappe possono essere di qualunque tipo reference (non primitivi). Sulle chiavi ci sono delle imposizioni/restrizioni. Quindi ad esempio il valore associato ad una chiave potrebbe essere un'altra collezione es. lista o mappa.
  • Re: Consiglio sulla struttura da utilizzare

    antomau96 ha scritto:


    Concordo pienamente però il C è un triciclo un motore V12 tri-turbo benzina da 12000 CV che con adeguate conoscenze vince tutti i premi esistenti al mondo... D'altro canto la programmazione ad oggetti rende tutto più semplice e facilmente utilizzabile/riciclabile. Per il mio modo di vedere le cose preferisco assegnare la memoria e scrivere ogni singola istruzione piuttosto che usare un `semplice` new() o xxxx.add() o xxxx.getXXXX().
    Il tuo modo di vedere e frutto di una limitata conoscenza della materia.

    Ti mancano troppe informazioni per poter fare una valutazione del genere.

    Ad esempio, C e C++ hanno esattamente le stesse performance: alcuni compilatori possono fare anche meglio di quanto potrebbe fare il programmatore a mano.

    Mentre Java e solo leggermente piu' lento del C++, ma elimina un'infinita' di problemi che affliggono C e C++.

    Per certe applicazioni, in particolare per quelle che allocano e deallocano grandi quantita di memoria in unita' minuscole, Java puo' risultare pure piu' veloce di C e C++, a meno di non mettere in campo accorgimenti estremamente sofisticati nella gestione della memoria, che sono ben al di la' delle competenze del programmatore quadratico medio (come dice M.A.W.).
  • Re: Consiglio sulla struttura da utilizzare

    antomau96 ha scritto:


    è possibile implementare una mappa a 3 oggetti dove il terzo sarebbe il numero di quel prodotto presente in quel magazzino...??
    NON TI SERVE una mappa a 3 oggetti!: c'e' una soluzione infinitamente piu' semplice e che puoi implementare tranquillamente con quello che hai.
  • Re: Consiglio sulla struttura da utilizzare

    Sarebbe una mappa che associa prodotto e numero
    e una mappa che ha come argomento magazzino e mappa che associa prodotto/numero?
  • Re: Consiglio sulla struttura da utilizzare

    Credo di essere almeno risucito a prendere i dati in maniera incrociata dai diversi file
    ma con il debugger riesco ad arrivare fino a questo punto senza alcun minimo errore, tutto funziona perfettamente ma eccolo, il bug dietro l'angolo, nel momento in cui intendo stampare nella console i dati degli oggetti appena acquisiti

    https://s24.postimg.org/ujpuuu5bp/Schermata_2017_01_30_alle_18_35_24.png

    Progetto completo:
    https://github.com/myblacksloth/javaPrograms/tree/master/WarehouseManagement
  • Re: Consiglio sulla struttura da utilizzare

    Ho risolto l'ultimo problema che era derivato dalla dichiarazione della mappa in quanto avevo usato TreeMap invece di HashMap
    visto che sui libri
    * deitel & deitel
    * horstmann
    * de sio
    sono trattati come l'ultimo argomento della terra e ci sono solo i metodi put() e pochi altri..........

    Presumo che nella TreeMap si possono mettere solo oggetti di tipo `Comparable`come le stringhe.... non essendo quelli da me trattati oggetti comparabili devo usare per forza la HashMap...

    Resta comunque sospeso il fatto su come devo associare il numero al prodotto...
  • Re: Consiglio sulla struttura da utilizzare

    migliorabile ha scritto:


    Questo NON E' un problema legato al linguaggio di programmazione.

    Questo e' un problema legato al concetto di STRUTTURE DATI.

    Tra l'altro, sarebbe piu' un esercizio relativa alla progettazione di un DATABSE RELAZIONALE, ma ci puo' stare.

    NO: non sei sulla buona strada. Anzi, come ho scritto precedentemente, ti stai per suicidare

    Sia chiaro, con le liste CI PUOI FARE ASSOLUTAMENTE TUTTO.
    Esiste anche un linguaggio di programmazione basato TOTALMENTE sulle liste: il LISP (per gli amici: L)ista I)nfinita di S)tupide P)arentesi - non preoccuparti, chi sa, ha capito )

    Ma nel tuo caso, per come e' impostato l'esercizio, NON VA BENE.

    Nota: non ci crede nessuno che sia un problema di insegnamento. Qui' e' un banale problema di aprire il libro al giusto capitolo E STUDIARE

    Carissimo @Migliorabile,
    nella tua Nota finale mi dicesti che non ci crede nessuno che sia un problema di insegnamento ebbene ti dirò che oggi, in università, presentandosi un problema simile a quello in questione ho affermato che per risolverlo ci vogliono le mappe... Una tale persone precedentemente menzionata nel corso di questo argomento ha esordito rispondendomi che in tal caso le mappe sono inutili perché il problema è risolvibile con qualsiasi tipologia di struttura...

    Io so che la struttura migliore per risolvere il problema siano le mappe proprio perché permettono di relazionare due oggetti ma volevo rispondere alla tua affermazione dalla quale emerge che la colpa sia mia se non conosco le mappe...

    a tal proposito ti ripropongo in quesito: in che modo un novellino di Java dovrebbe imparare ad utilizzare il suddetto linguaggio se chi dovrebbe spiegartelo ti da risposte come quella scritta sopra?
Devi accedere o registrarti per scrivere nel forum
25 risposte