Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    gestioneMagazzino in java

    Ciao a tutti. sono alle prese con un nuovo problema che può essere espresso cosi: L’oggetto Magazzino è caratterizzato come denominazione dall’indicazione della sua ubicazione (Brescia, Como, ...); da una capienza massima e da una capienza minima definite dal collaudatore dell’impianto per il corretto funzionamento. Sul magazzino è possibile fare delle operazioni di carico e scarico che devono rispettare i vincoli strutturali. Non è possibile fare carichi e scarichi parziali. (Es. CapMax=100, CapCor=80 se cerco di caricare 50 non carico solo i 20 che rispettano il vincolo ma scarto completamente l’operazione di carico)….Si vuole realizzare un applicativo gestioneMagazzino che permette la gestione dei magazzini ubicati in due province. Tramite struttura a menu si deve permettere:
    1) Inizializzazione magazzini
    2) Visualizzazione dati tecnici di entrambi i magazzini
    3) Determinazione del magazzino con CapMax maggiore
    4) Carico merce (dato il magazzino che si desidera e controllando il buon esito dell’operazione)
    5) Scarico merce (dato il magazzino che si desidera e controllando il buon esito dell’operazione)
    Ho cominciato con la creazione di due classi (Magazzino e gestioneMagazzino) e adesso sono al punto due (case 2 del menu, perchè il primo funziona) e non so come richiamare i dati che mi interessano, perchè mi da errori del tipo method non-static richiamato da static....qualche suggerimento su come risolvere il problema?
    grazie!!!
    codice:
    import unibs.eco.dmq.basicIO.*;
    public class gestioneMagazzino {
     public static void main(String[] args) {
             int opzione; 
             do{
             	Scrittore.video.println("---------------------");
             	Scrittore.video.println("1* Inizializzazione magazzini");
             	Scrittore.video.println("2* Dati tecnici dei magazzini");
             	Scrittore.video.println("3* Magazzino con CapMax maggiore");
             	Scrittore.video.println("4* Carico merce");
             	Scrittore.video.println("5* Scarico merce");
             	Scrittore.video.println("0* USCITA");
             	Scrittore.video.println("---------------------");
             	opzione=Lettore.tastiera.leggiInt();    
               	switch(opzione){
              		case 1:;
              		Magazzino m1 = new Magazzino("Como",90,10,5); 
              		Magazzino m2 = new Magazzino("Brescia",100,5,20);
              		Scrittore.video.println("I magazzini creati si chiamano");
              		Scrittore.video.println(m1.nome +" e "+ m2.nome);
              		Scrittore.video.println("\n dati tecnici: \n capienza minima e massima del negozio di " +m1.getNome()+" e' "+m1.getcapienzaMin()+ " e "+m1.getcapienzaMax() +" \n capienza minima e massima del negozio di " +m2.getNome()+" e' "+m2.getcapienzaMin()+ " e "+m2.getcapienzaMax());		
               		break;
           		case 2:
           							
              		break;	
    		case 3: 
    				
              		break;
    	  }   		
              }while(opzione!=0);
            }
         }
    e il Magazzino
    codice:
    import unibs.eco.dmq.basicIO.*;  
    class Magazzino{
        public String nome;
        public int capienzaMax; 
        public int capienzaMin;
        public int quantitaCorrente;     
        public Magazzino(String nome, int capienzaMax, int capienzaMin,int quantita){
        	this.nome=nome;
        	this.capienzaMax=capienzaMax;
        	this.capienzaMin=capienzaMin;
        	this.quantitaCorrente=quantitaCorrente;
        }    
    
      public int getcapienzaMax(){ 
      	return capienzaMax;
      }
      public int getcapienzaMin(){ 
      	return capienzaMin;
      }  
      public int getquantitaCorrente() {
       	return quantitaCorrente;
      }
      public void aumentaquantitaCorrente( int q ) {
        quantitaCorrente = quantitaCorrente + q;
      }
      public void diminuisciquantitaCorrente( int q ) {
        quantitaCorrente = quantitaCorrente - q;
      }
      public String getNome() { 
      	return nome;
      }
    }

  2. #2
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    1,123
    Qual'è la chiamata che ti genera l'errore di compilazione?

  3. #3
    ciao Patrick!
    se voglio mettere una scritta al case2 del tipo Scrittore.video.print(m1.getNome() ); mi dice che la variabile m1 non è stata inizializzata!
    ho provato anche a creare una variabile String nome; la quale la richiamavo cosi semmai nome=m1.getNome(); ma non funge neanche cosi...
    ho provato inoltre a modificare il public static void main in public GestioneMagazzino() ma niente è cambiato...

  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    1,123
    Originariamente inviato da motocross'88
    ciao Patrick!
    se voglio mettere una scritta al case2 del tipo Scrittore.video.print(m1.getNome() ); mi dice che la variabile m1 non è stata inizializzata!
    ho provato anche a creare una variabile String nome; la quale la richiamavo cosi semmai nome=m1.getNome(); ma non funge neanche cosi...
    ho provato inoltre a modificare il public static void main in public GestioneMagazzino() ma niente è cambiato...
    Certo, e sai perchè non è inizializzata? Perchè è stata dichiarata nel case 1.

    Prova a dichiarare Magazzino m1; e Magazzino m2; sotto (o sopra^^) alla variabile int opzione.

  5. #5
    se dichiaro sopra, mi dice che è gia stata inizializzata in GestioneMagazzino()....
    mah((

  6. #6
    ecco: ho dichiarato Magazzino m1 = new Magazzino("Como",90,10,5);
    Magazzino m2 = new Magazzino("Brescia",100,5,20);
    sopra dove c'è l'opzione e cosi adesso mi funge!
    dopo proseguirò avanti e vedremo se salta fuori qualcosa di nuovo))

  7. #7
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    1,123
    Si, dato che non devi passare variabili al costruttore va bene.

    Comunque ciò che intendevo io era:
    Magazzino m1;
    Magazzino m2;

    nei case dichiaravi invece
    m1 = new Magazzino(dati che vuoi);
    m2 = new Magazzino(dati che vuoi);

    Ma visto che i dati nel costruttore sono costanti va bene anche come hai fatto ora

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.