Array dinamico

antonioamabile

Utente Attivo
21 Gen 2010
150
0
16
e
Salve sono ancora alle prese con lo studio della programmazione java. Devo risolvere un esercizio con l'utilizzo di array dinamici. L'esercizio è il seguente Dato un elenco di articoli definito da descrizione e prezzo si vuole gestire l'inserimento e la cancellazione e la visaulizzazione. Io ho provato cosi ma non funziona se potete aiutarmi:
:
Codice:
 public static void main(String[] args) {
        // TODO code application logic here
        //Allocazione del oggetto mio articolo
        Articoli  mioArticolo= new Articoli ();
        Menu    mioMenu=new Menu();
        int scelta;
        scelta=mioMenu.sceltaMenu();
        while(scelta!=4)
        {
          if (scelta==1)
          {
            Inserisci a = new Inserisci();
           // a.Inserisci();
            mioArticolo.aggiungiArticoli(a);
           
          }
          else if(scelta==2)
          {
            int indice=mioMenu.cancella();
            mioArticolo.elminaArticoli(indice);
          }
          else if(scelta==3)
          {
             mioArticolo.visualizza();
          }
          scelta=mioMenu.sceltaMenu();
        }
        System.out.println("Programma finito!!");

    }

}

package articolideskjava;

/**
 *
 * @author giuseppe
 */
import java.io.*;
public class Inserisci
{
    //Creazione di oggetti di classe stringa tali oggetti sono privati alla classe

   private String nome= new String();
   private String prezzo= new String();
  int pre=0;
   //Inserimeto degli attributi attraverso il metodo costruttore Inserisci
   public void Inserisci()
   {
      InputStreamReader input =new InputStreamReader (System.in);
      BufferedReader tastiera= new BufferedReader(input);
      System.out.print("Insersici il nome: ");
      try
      {
          nome=tastiera.readLine();
      }
      catch(Exception e)
      {
          System.out.print("Errore di digitazione!!!");
   
      }
      try
      {
         prezzo=tastiera.readLine();
         pre=Integer.valueOf(prezzo).intValue();
      }
      catch(Exception e)
      {
           System.out.print("Errore di digitazione!!!");
      
      }
   }
   public void stampa()
   {
      System.out.print(nome+ "     prezzo"+pre);
   }

}

import java.io.*;
public class Menu
{
   //Metodo che mi mostra le possibili scelte
    public void mostraMenu()
   {
      System.out.print("Menu\n");
      System.out.println("1)  Inserisci");
      System.out.println("2)  Cancella") ;
      System.out.println("3)  Visualizza");
      System.out.println("4)  Esci");
   }
   public int sceltaMenu()
   {
     InputStreamReader input = new InputStreamReader(System.in);
     BufferedReader tastiera = new BufferedReader (input);
     int scelta=0;
     String scegli;
     //Richiamo del metodo mostraMenu per visualizare i Menu
     mostraMenu();
     try
     {
        scegli=tastiera.readLine();
        scelta=Integer.valueOf(scegli).intValue();
     }
     catch(Exception e)
     {
         System.out.println("Errore di digitazione!!!");

     }
     return scelta;

   }

   //Metodo per la cancellazione di un elemento
   public int cancella()
   {
      InputStreamReader input =new InputStreamReader(System.in);
      BufferedReader tastiera = new BufferedReader (input);
      int indice;
      String Indice;
      try
      {
         Indice=tastiera.readLine();
         indice=Integer.valueOf(Indice).intValue();
      }
      catch(Exception e)
      {
        System.out.println("Errore di digitazione!!!");
        indice=-1;
      }
      return indice;
   }
}


package articolideskjava;

/**
 *
 * @author giuseppe
 */
import java.util.Vector; //Serve per poter utilizzare la classe Vector
 class Articoli
  {
    //Mi creo un vettore dinamico privato alla classe  di nome articoli
    private Vector art;

    //Metodo costruttore dove istanzio il vettore articoli
    public void Articoli()
    {
       //Istanzio un vettore di un elmento che si genera di un elemento
        art=new Vector(1,1);
    }
    //Aggiunta di un elemento
    public void aggiungiArticoli (Inserisci i)
    {
      art.addElement(i);
    }
    //rimuove gli elementi
    public void elminaArticoli(int indice)
    {
       try
       {
       art.removeElementAt(indice);
       }
       catch(Exception e)
       {
           System.out.println("Numero non corretto Eliminazione non possibile!!!!");
           return;
       }
       System.out.print("Eliminazione effettuata con successo!!!");
    }
    public void visualizza()
    {
       Inserisci i;
       System.out.println("\nRubrica");
       for(int j=0; j<art.size();j++)
       {
         System.out.println("posizione"+j+"->");
         i=(Inserisci)art.elementAt(j);
       }

    }

    
}
spero che mi potete aiutare
 
Ciao, dicci almeno che tipo di errore ti da?? perchè non funziona??

Vedendo la classe Inserisci comunque, tu dichiari i due membri private cioè nome e prezzo. Come puoi accederci dopo se non inserisci i metodi pubblici?? In questo modo tu memorizzi nel vector l'istanza Inserisci ma poi non pui leggere nome e prezzo. Ti consiglio di aggiungere alla classe Inserisci questi due metodi:
Codice:
public String getNome() {
    return nome;
}

public int getPrezzo() {
   return pre;
}
In modo tale che quando visualizzi la lista puoi accedere al nome ed al prezzo:
Codice:
 Inserisci i;
       System.out.println("\nRubrica");
       for(int j=0; j<art.size();j++)
       {
         System.out.println("posizione"+j+"->");
         i=(Inserisci)art.elementAt(j);
         System.our.println("Nome:"+i.getNome()+" - Prezzo:"+i.getPrezzo())
       }
 

Discussioni simili