Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2004
    Messaggi
    11

    piccolo problema

    volevo riuscire a pienare la class basedati finchè l'indice era inferiore della lunghezza consentita.Quindi ho aggiunto un for. volevo sapere se l'ho posizionato bene e soprattutto se dopo bisogna cambiare qualcosa. Grazie

    class basedati{

    private List Citta;

    public basedati(){
    VarieCitta = new List();
    }
    /**Inserisce una città.Se la lista è piena restituisce "lista completa"*/
    public void addCitta(Citta l){
    for(int i=0;i<VarieCitta.size();i++){
    Citta.add(l);

    public void addcitta(String nome,String nazione,String provincia){

    Citta l = new Citta(nome,nazione,provincia);

    Citta.add(l);


    Systemout.println( "Lista completa non è possibile inserire altre citta")}}

    public int countCitta(){

    return Citta.size();

    } }

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    906

    Re: piccolo problema

    Sinceramente non credo che il codice faccia quello che vuoi tu. Ci sono alcuni errori sintattici probabilmente dovuti alla scrittura del post sul forum, immagino (Parentesi graffe mancanti).
    In ogni caso:
    1) il metodo addCitta dovrebbe riempire tutta la lista con la stessa citta?
    2) size() restituisce il numero di elementi della lista, non la capienza massima. (quindi essendo la lista creata exnovo, non entra mai nel for)
    3) la capienza massima della lista e' infinita, teoricamente, in realta alla fine finisci la memoria del pc e il programma si pianta.
    Se mi spieghi meglio cosa devi fare, guardo di darti una mano.

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2004
    Messaggi
    11

    mi spiego meglio

    Ciao simo. Devo inserire le città dentro ad una lista.Da tastiera inserisco nome,nazione,provincia. Poi devo inserire le citta finchè la lista non sia piena quindi mi serve un contatore che scorra fin quando non raggiunge la lunghezza massima della lista.

    ti inserisco anche l'esercizio che sto svolgendo tanto per fartelo vedere:

    si vuol realizzare un applicazione che gestisca i viaggi fra le varie città. Per ogni città si deve memorizzare nome nazione e provincia inoltre per ogni coppia di città si registra una descrizione di tutti i viaggi previsti contenente il peso massimo trasportabile.
    L'applicazione dovrà permettere di :
    riempire automaticamente l'archivio con alcuni dati in modo da testarlo;
    inserire e rimuovere una città
    creare una tabella delle città
    inserire la descrizione dei viaggi fra le 2 città
    cercare la coppia di città fra cui si puo' trasportare il peso massimo

    l'applicazione dovrà possedere un menu

    [i]per memorizzare l'insieme delle città si dovrà utilizzare una struttura di tipo lista. Le descrizioni dei viaggi dovranno essere memorizzate in una matrice bidimensionale M [] [], dove in posizione M [j] c'e' la descrizione dei viaggi offerti fra le città.

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    906
    Ciao,
    nell'esercizio non ho visto nessun riferimento al fatto che la lista abbia un massimo, quindi credo che non ti serva. Un oggetto di tipo List non ha massimi, quindi non mi preoccuperei di fare controlli sul numero di citta'. Allora ti scegli un oggetto che implementa l'interfaccia List, tipo ArrayList, e ci fai le operazioni che ci servono. Con una classe del genere dovresti poter fare le operazioni richieste per le citta.

    codice:
    public class Basedati{
       private List listaCitta;
    
       /*Crea la lista*/
       public basedati(){
          listaCitta = new ArrayList();
       }
     
       /*Inserisce un oggetto Citta (credo che non ti serva se usi il metodo sotto)*/
       public void add(Citta l){
          listaCitta.add(l);
       }
    
       /*Crea un oggetto Citta e lo inserisce*/
       public void addcitta(String nome,String nazione,String provincia){
          Citta l = new Citta(nome, nazione, provincia);
          listaCitta.add(l);
       }
    
       /*Rimuove un oggetto Citta (hai bisogno dell'indice dell'oggetto nella lista)*/
       public void removeCitta(int indexCitta) {
          listaCitta.remove(indexCitta)
       }
    
       /* 
        * Restituisce la citta in posizione indexCitta.
        * (utile insieme al metodo sotto per stampare la tabella delle citta)
        */
       public Citta getCitta(int indexCitta) {
          return listaCitta.get(indexCitta);
       }
    
       /* Restituisce il numero di citta */
       public int countCitta() {
          return listaCitta.size();
       }
    
    }
    Poi da un'altra classe (quella con il main o la classe che ti fa da manager delle operazioni), chiami i vari metodi a seconda del caso. Se vuoi fare una finezza, fai estendere alla classe citta l'interfaccia comparable e implementa il compareTo: in questo modo puoi aggiungere un metodo che ti ordina la lista chiamando
    codice:
    Collections.sort(listaCitta);

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2004
    Messaggi
    11

    grazie per adesso

    Grazie mille per adesso Simo.. Ora, come hai visto, devo abbinare le descrizioni alle coppie di città.. inizio a buttare giù qualcosa e, se non ti raca disturbo, posto qui quello che ho fatto.. Grazie mille davvero..Ciao da mp3

  6. #6
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,315

    Moderazione

    Specificare titoli puù significativi la prossima volta... un "piccolo problema" non descrive il problema stesso.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  7. #7
    Utente di HTML.it
    Registrato dal
    Jul 2004
    Messaggi
    11

    Ciao simo

    Ciao simo.. Io ho una classe cittapartenza,cittaarrivo e descrizione e devo inserirla dentro all'array bidimensionale.Se l'operazione è stata eseguita correttamente mi deve ritornare true.Altrimenti false.

    Siccome non l'ho mai fatte come si deve fare?

  8. #8
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    906
    Non mi e' chiara una cosa; che ci devi inserire nell'array: le citta' o le descrizioni?
    Per caso ci va la descrizione e c'e' una corrispondenza tra le citta' e gli indici dell'array?
    Scusa, ma dell'esercizio che hai postato non si capisce bene.

  9. #9
    Utente di HTML.it
    Registrato dal
    Jul 2004
    Messaggi
    11

    Hai ragione

    si in effetti non mi sono spiegato bene...
    io devo mettere cittapartenza nelle righe a sinistra e cittaarrivo nelle colonne
    per la tua seconda domanda la risposta è si ci va la descrizione e c'e' una corrispondenza tra le citta' e gli indici dell'array

    ho fatto qualcosa.. forse cosi' capisci meglio cosa mi serve:

    /*import java.util.Date
    import java.text.SimpleDateFormat;
    /**
    *Classe Descrizione.
    * Contiene le variabili richieste dal progetto per una descrizione
    */

    public class Descrizione {

    String dimensionimax;
    float pesomax;
    String elencodate;


    /**
    * Costruttore della classe descrizione
    */

    public Descrizione(String dimensionimax, float pesomax,string elencodate ) {
    this.dimensionimax=dimensionimax;
    this.pesomax=pesomax;
    this.elencodate=elencodate;
    }}

    /**Costruisco l'array bidimensionale*/


    public class string[][] Itinerario(int n){
    int i;
    int j;
    /**creazione dell'Array bidimensionale*/
    Itinerario=new int[Cittapartenza][Cittaarrivo];
    /**lettura per righe dell'array bidimensionale*/
    for(i=0,i<Itinerario.length;i++){
    for j=0;j<Itinerario[i].length;j++){
    if(j==i){Itinerario[i][j]==Descrizione d:;}
    else{Itinerario[i][j]==null; }
    }}}}

    grazie ancora per il tuo aiuto

  10. #10
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    906
    Credo di aver capito. Allora tu hai un oggetto di tipo Descrizione. Lo devi inserire in questo array.
    Allora, l'array non puo' essere una classe, cioè
    public class string[][] Itinerario(int n){
    non ha senso.
    Non so dove ti possa tornare meglio, ma devi creare una variabile di tipo Descrizione[][] in qualche classe.
    Potresti mettere l'array nella classe BaseDati, istanziarlo nel costruttore (il costruttore a questo punto deve ricevere il numero di citta max, con conseguente controllo sulla lunghezza della lista, quello che ti avevo fatto togliere ) e mettere un metodo che riceve 2 interi e una Descrizione e la mette nell'array. Tipo:
    codice:
    public class Basedati{
       private List listaCitta;
       private Descrizione[][] descrizioni;
       private int maxCitta;
    
       /*Crea la lista*/
       public basedati(int maxCitta){
          this.maxCitta= maxCitta;
          listaCitta = new ArrayList();
          descrizioni = new Descrizione[maxCitta][maxCitta];
       }
     
       /*Inserisce un oggetto Citta (credo che non ti serva se usi il metodo sotto)*/
       public boolean add(Citta l){
          if(listaCitta.size()<maxCitta) {
             listaCitta.add(l);
             return true;
          } else {
             return false;
          }
       }
    
       /*Crea un oggetto Citta e lo inserisce*/
       public boolean addcitta(String nome,String nazione,String provincia){
          if(listaCitta.size()<maxCitta) {
             Citta l = new Citta(nome, nazione, provincia);
             listaCitta.add(l);
          } else {
             return false;
          }
       }
    
       public boolean addDescrizione(int partenza, int arrivo, Descrizione desc) {
          try {
             descrizioni[partenza][arrivo]=desc;
          } catch (Exception e) {
             return false;
          }
       }
       //RESTO DELLA CLASSE
    }
    Se ho capito bene, con una cosa del genere dovresti risolvere il problema. Quando poi devi inserire una descrizione, basta che chiami il metodo addDescrizione.

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.