Info per un programmino

di il
13 risposte

Info per un programmino

Buongiorno a tutti,
mi sono avvicinato da pochissimo alla programmazione, e avrei il seguente problema; so come leggere le righe di un file di testo ma una volta lette il programma dovrebbe crearmi gli oggetti. So farlo solamente in maniera statica andando a mettere io i valori vi posto un esempio:

public class martello {
public static void main(String[] args) {
// TODO Auto-generated method stub
Prodotto martello = new Prodotto();
martello.reparto = "[F]";
martello.unità = "[U]";
martello.quantità = 20;
martello.costo = 12.00;
martello.codice = 58346721;

Prodotto lampada = new Prodotto();
lampada.reparto = "[E]";
lampada.unità = "[U]";
lampada.quantità = 10;
lampada.costo = 3.00;
lampada.codice = 87678350;

Prodotto presa = new Prodotto();
presa.reparto = "[E]";
presa.unità = "[U]";
presa.quantità = 30;
presa.costo = 1.00;
presa.codice = 85341289;

Prodotto fascette = new Prodotto();
fascette.reparto = "[E]";
fascette.unità = "[U]";
fascette.quantità = 25;
fascette.costo = 2.50;
fascette.codice = 89731218;
}
}

13 Risposte

  • Re: Info per un programmino

    Se quei valori che imposti in ogni oggetto li puoi prendere dal file di testo, dovresti crearti un ciclo for lungo quanto le righe di quel file di testo, che ad ogni iterazione riempie un nuovo oggetto. Ovviamente gli oggetti che creerai avranno tutti lo stesso nome, ma puoi aggiungerli ad un array list per poi usaarli in seguito. la struttura di solito ha questa forma.
    ArrayList prodotti=  new ArrayList<Prodotto>
    
    for (int i = 0; i < num_righe_file; i++)
    {
    Prodotto prodotto = new Prodotto();
    prodotto.setReparto(riga_file[i].getReparto());
    prodotto.setUnita((riga_file[i].getUnita());
    ecc ecc
    prodotti.add(prodotto)
    }
    più o meno
  • Re: Info per un programmino

    E se non sapessi quanti prodotti ci sono in quel file ? La traccia mi dice la seguente cosa : "Il programma legge ciascuna riga e crea un oggetto per ogni articolo."
    Questo mi mette in dubbio come fa a creare un oggetto per ogni file letto?
    Mi conviene crearli direttamente dentro il magazzino ?
  • Re: Info per un programmino

    Allora puoi usare un while che duri finché ci sono righe.
    In sostanza uguale al precedente, ma con un while (al posto del ciclo for) che ti fa fare una nuova aggiunta solo se la lettura riga ha successo.

    Anzi, addirittura col while è anche meglio, altrimenti avresti dovuto comunque usare il while per leggere i dati e poi il for per creare/rimpire gli oggetti. Invece così fai tutto con un while.

    leggi riga, se lettura ha successo crei oggetto, aggiungi a lista e provi a leggere il successivo, altrimenti esci
  • Re: Info per un programmino

    Si ti ringrazio a questo ci ero arrivato ma non capisco come faccia a fare

    prodotto "nome_nuovo_prodotto" = new prodotto();
    come prende il nome da mettere al posto di nome_nuovo_prodotto?
  • Re: Info per un programmino

    Ma a te serve che ogni prodotto abbia un nome diverso? Per farci cosa?
    Normalmente se hai più oggetti dello stesso tipo, li metti in una lista e poi ci accedi cercando all'interno quelli che hanno la proprietà che ti serve.
    Il nome diventa diverso perché è diverso l'indice nella lista; quindi per esempio, nella lista che avevo scritto nell'esempio precedente, gli oggetti creati li troverai come

    prodotti dove i è l'indice

    Non credo dovrai mai scrivere qualcosa del tipo if nomeoggetto == "qualcosa".
    Semmai il nome (es: fascette) lo aggiungerei al'interno del bean come campo aggiuntivo , tipo "descrizione" o "tipo" così quando andrai a fare la ricerca che ti serve, potrai cercare

    if (prototto.tipo == "fascette")
    {
    fai qualcosa
    }

    Tra l'altro mi aspetto che nel file che leggi ci sia l'informazione sul "tipo", altrimenti non sapresti neanche come dare il nome
  • Re: Info per un programmino

    Ti ho mandato la traccia via messaggio magari ti è più chiaro rispetto a come lo scrivo.
    Comunque ho capito quello che dici il nome lampada, fascette etc non è un oggetto nuovo ma solamente la specifica; il costrutto rimane uguale per tutti.
  • Re: Info per un programmino

    Phebo, il forum è bello perché è aperto a tutti, evita di mandare messaggi privati, il tuo problema può interessare anche altri utenti
  • Re: Info per un programmino

    phebo ha scritto:


    Ti ho mandato la traccia via messaggio magari ti è più chiaro rispetto a come lo scrivo.
    Comunque ho capito quello che dici il nome lampada, fascette etc non è un oggetto nuovo ma solamente la specifica; il costrutto rimane uguale per tutti.
    NON devi mandare nulla in privato altrimenti a che serve un forum?
  • Re: Info per un programmino

    Il problema mi sembra di averlo postato... e ha risposto una persona sola....
  • Re: Info per un programmino

    E quindi?
  • Re: Info per un programmino

    phebo ha scritto:


    Si ti ringrazio a questo ci ero arrivato ma non capisco come faccia a fare

    prodotto "nome_nuovo_prodotto" = new prodotto();
    come prende il nome da mettere al posto di nome_nuovo_prodotto?

    Penso di aver capito quale è il tuo crucio, ma credo che tu non abbia afferrato come funzionano gli oggetti in java.

    Invece che chiamare ogni oggetto con un nome diverso, puoi inserire una proprietà stringa nome dove o tipo Dove inserisci che cosa rappresenta l'oggetto.

    Dopodichè quando carichi i dati del file crei una collezione di oggetti, quindi andrai a creare un nuovo oggetto Prodotto prodotto= new Prodotto(); e lo inserisci nella lista. Quando te ne serve uno in particolare cicli la lista con while( oggetto x: lista){
    If(x.getNome == stringaDaConparare) prodottoricercato = x;

    Più o meno questo è il concetto
  • Re: Info per un programmino

    Io penso che dovresti studiare da un libro a cominciare dalla prima pagina. Ti sembrerà una frase fatta e poco utile ma, credimi, è l'unica cosa che si può rispondere.

    Non c'è nulla di male a non avere le basi del linguaggio, ma è impossibile imparare da un forum con qualche domanda.

    Prima di arrivare qui, devi passare un po' di giornate di studio ad imparare l'abc della programmazione e del linguaggio anche dal punto di vista teorico.
  • Re: Info per un programmino

    oregon ha scritto:


    Io penso che dovresti studiare da un libro a cominciare dalla prima pagina. Ti sembrerà una frase fatta e poco utile ma, credimi, è l'unica cosa che si può rispondere.

    Non c'è nulla di male a non avere le basi del linguaggio, ma è impossibile imparare da un forum con qualche domanda.

    Prima di arrivare qui, devi passare un po' di giornate di studio ad imparare l'abc della programmazione e del linguaggio anche dal punto di vista teorico.
    Ho iniziato da un mese l'università ed ho il corso di programmazione su java, è una settimana che abbiamo iniziato con gli oggetti.
    Ora ho il problema seguente runno eclipse ma non accade nulla, come se non trovasse il main ma c'è...
Devi accedere o registrarti per scrivere nel forum
13 risposte