Domanda [Aiuto]Esercizio java

Stato
Discussione chiusa ad ulteriori risposte.

SasukeUchiha

Utente Gold
30 Giugno 2013
268
48
102
243
Ciao ragazzi ho il seguente es di java: "nuovo progetto con nuova classe, gestire mesi dell'anno(leggerli e valorizzarli, un array di 12 elementi 0-11), valore contenuto nel mese sia stringa e una volta valorizzato,(nome del mese), funzione che stampa stringhe mesi, funzione indica quali sono mesi che hanno 31 giorni"
Mi potreste aiutare? io ho creato un arrey string di 12 elementi ma ad esempio come faccio a dare il nome ad ogni elemento della arrey? tipo io ho fatto String[] mesi = new String[12]; poi sotto pensavo di fare una cosa tipo String[0] = "gennaio";String[1] = "febbraio"; ma mi da errore, grazie in anticipo per l'aiuto!
 
Ciao SasukeUchiha,

innanzitutto scrivi un breve riassunto di cosa hai imparato fino al giorno d'oggi in Java in modo da vedere con quali strumenti potresti lavorare.
Poi incolla anche il codice di ciò che hai provato a fare finora.

Come primo semplice approccio che mi viene in mente, potresti crearti un array di 12 "Mesi" ovvero una classe che crei tu che contenga i campi "nome" e "giorni" e che contenga i metodi leggiNome() e leggiGiorni().

Cordiali saluti,
Misterioso
 
  • Mi piace
Reazioni: SasukeUchiha
Ciao SasukeUchiha,

innanzitutto scrivi un breve riassunto di cosa hai imparato fino al giorno d'oggi in Java in modo da vedere con quali strumenti potresti lavorare.
Poi incolla anche il codice di ciò che hai provato a fare finora.

Come primo semplice approccio che mi viene in mente, potresti crearti un array di 12 "Mesi" ovvero una classe che crei tu che contenga i campi "nome" e "giorni" e che contenga i metodi leggiNome() e leggiGiorni().

Cordiali saluti,
Misterioso
per ora in java ho fatto il seguente esercizio:
Classe 1:

public class BevoSettimana
{
private static final int NUMGIORNISETTIMANA = 7;
private int lunedi;
private int martedi;
private int mercoledi;
private int giovedi;
private int venerdi;
private int sabato;
private int domenica;
private int totale;

/*----------------------------------------------------------------------------*/
/* da qui iniziano le funzioni/procedure pubbliche */

public BevoSettimana()
{
this.lunedi=0;
this.martedi = 0;
this.mercoledi = 0 ;
this.giovedi = 0;
this.venerdi = 0 ;
this.sabato = 0;
this.domenica = 0 ;
}
//get ritorna alla variabile(per forza funzione), set la imposta (valorizza contenuto variabile)(procedure),funzione e procedura sono blocchi di codice che puoi riutilizzare a tuo piacimento all interno programma, funzione ritorna valore, procedura no
public int getLunedi() // parentisi vuote nessun valore,o uno o piu parametri (variabili) void funzione e procedura non ritorna niente
{
return this.lunedi;
}

public void setLunedi(int lunedi09) // parametro e un valore che passi alla funzione o alla procedura (puo essere piu di uno)
{
this.lunedi = lunedi09;
}

public int getMartedi()
{
return this.martedi;
}
public void setMartedi(int martedi)
{
this.martedi = martedi;
}
public int getMercoledi()
{
return this.mercoledi;
}
public void setMercoledi(int mercoledi)
{
this.mercoledi = mercoledi;
}
public int getGiovedi()
{
return this.giovedi;
}

public void setGiovedi(int giovedi)
{
this.giovedi = giovedi;
}
public int getVenerdi()
{
return this.venerdi;
}
public void setVenerdi(int venerdi)
{
this.venerdi = venerdi;
}
public int getSabato()
{
return this.sabato;
}

public void setSabato(int sabato)
{
this.sabato = sabato;
}
public int getDomenica()
{
return this.domenica;
}
public void setDomenica(int domenica)
{
this.domenica = domenica;
}
public int getTotale()
{
this.SommaTotale();
return this.totale;
}
public int getNumGiorni()
{
return NUMGIORNISETTIMANA;
}

/*----------------------------------------------------------------------------*/
/* da qui iniziano le funzioni/procedure private */
private void SommaTotale()
{
this.totale = this.lunedi+this.martedi+this.mercoledi+this.giovedi+this.venerdi+this.sabato+this.domenica;
}
}

CLASSE 2
public class BevoSettimanaMigliorata
{
private static final int NUMGIORNISETTIMANA = 7;
private int lunedi;
private int martedi;
private int mercoledi;
private int giovedi;
private int venerdi;
private int sabato;
private int domenica;


/*----------------------------------------------------------------------------*/
/* da qui iniziano le funzioni/procedure pubbliche */

public BevoSettimanaMigliorata()
{
this.lunedi=0;
this.martedi = 0;
this.mercoledi = 0 ;
this.giovedi = 0;
this.venerdi = 0 ;
this.sabato = 0;
this.domenica = 0 ;
}
//get ritorna alla variabile(per forza funzione), set la imposta (valorizza contenuto variabile)(procedure),funzione e procedura sono blocchi di codice che puoi riutilizzare a tuo piacimento all interno programma, funzione ritorna valore, procedura no
public int getLunedi() // parentisi vuote nessun valore,o uno o piu parametri (variabili) void funzione e procedura non ritorna niente
{
return this.lunedi;
}

public void setLunedi(int lunedi09) // parametro e un valore che passi alla funzione o alla procedura (puo essere piu di uno)
{
this.lunedi = lunedi09;
}

public int getMartedi()
{
return this.martedi;
}
public void setMartedi(int martedi)
{
this.martedi = martedi;
}
public int getMercoledi()
{
return this.mercoledi;
}
public void setMercoledi(int mercoledi)
{
this.mercoledi = mercoledi;
}
public int getGiovedi()
{
return this.giovedi;
}

public void setGiovedi(int giovedi)
{
this.giovedi = giovedi;
}
public int getVenerdi()
{
return this.venerdi;
}
public void setVenerdi(int venerdi)
{
this.venerdi = venerdi;
}
public int getSabato()
{
return this.sabato;
}

public void setSabato(int sabato)
{
this.sabato = sabato;
}
public int getDomenica()
{
return this.domenica;
}
public void setDomenica(int domenica)
{
this.domenica = domenica;
}
public int getTotale()
{
return this.SommaTotale();
}
public int getNumGiorni()
{
return NUMGIORNISETTIMANA;
}
public void StampaAVideo()
{
System.out.println("-----------------------------------------------");
System.out.println("Nei "+ this.getNumGiorni() + " giorni della settimana ho bevuto: "+ this.getTotale()+" volte");
System.out.println("Lunedi ho bevuto: "+ this.getLunedi() + " volte;" + " Martedi: "+ this.getMartedi()+" volte; " + "Mercoledi: "+ this.getMercoledi() + " volte; " + " Giovedi: "+ this.getGiovedi()+" volte; "+"Venerdi: "+ this.getVenerdi() + " volte; " + " Sabato: "+ this.getSabato()+" volte; " + "Domenica: "+ this.getDomenica()+ " volte.");
System.out.println("-----------------------------------------------");
}
public String StampaMessaggio()
{
return "ciao";
}

//if creo una funzione che poi richiamero dal main per stamparla a video,poi creo int totMomentoAttuale, la stringa ret,metto ret vuota,totale momento attuale lo metto uguale al totale che mi viene fuori, poi tramite if analizzo a seconda del totale che ottengo
public String StampaMessaggioConIf()
{
int TotAlMomentoAttuale;
String ret;
ret="";
TotAlMomentoAttuale=this.getTotale();
if(TotAlMomentoAttuale>20)
{
ret="OOOOK";
}else if (TotAlMomentoAttuale<20)
{
ret="KOOO";
}else if (TotAlMomentoAttuale==20)
{
ret="NEUTRO";
}
return ret;
}
// in questo caso do il valore alle variabili locali e poi tramite switch analizzo diversi casi,se lo trovo grazie alla clausola break mi fermo,altrimenti continuo fino al default che mi da il messaggio che nn ha trovato caso
public String StampaMessaggioSwitch()
{
int TotAlMomentoAttuale;
String ret;
ret="";
TotAlMomentoAttuale=this.getTotale();
switch (TotAlMomentoAttuale)
{
case 19: ret="HO BEVUTO 19 VOLTE";break;
case 20: ret="HO BEVUTO 20 VOLTE";break;
case 21: ret="HO BEVUTO 21 VOLTE";break;
default: ret="NON ROMPERE IL pazzo NON TE NE FREGA!!! " + TotAlMomentoAttuale;
}
return ret;
}


/*----------------------------------------------------------------------------*/
/* da qui iniziano le funzioni/procedure private */
private int SommaTotale()
{
//variabile locale è una variabile che utilizzo all interno di un metodo (variabile o procedura) e la utilizzo solamente quando mi serve, mentre globale la utilizzo dalla creazione della classe ma questo mi occupa spazio
int totale;
totale = this.lunedi+this.martedi+this.mercoledi+this.giovedi+this.venerdi+this.sabato+this.domenica;
return totale;
}
}

CLASSE 3
public class BevoSettimanaArray {

/*
* 0 = Lunedi
* 1 = martedi
* 2 = mercoledi
* 3 = giovedi
* 4 = venerdi
* 5 = sabato
* 6 = domenica
* */

//ho creato un array o vettore intero e lo valorizzato a 7 (in questo caso giorni settimana)
int[] GiorniSettimana = new int[7];

public BevoSettimanaArray()
{
this.Init();
}

public void setGiorno(int NumGiorno, int NumBevute)
{
this.GiorniSettimana[NumGiorno]=NumBevute;
}
public int getGiorno(int NumGiorno)
{
return this.GiorniSettimana[NumGiorno];
}
public int getTotale()
{
int ret;
int i;
ret=0;
for(i=0;i<7;i++)
{
ret += this.GiorniSettimana;
}
return ret;
}
public void StampaGetTotale()
{
System.out.println("Stampo Totale Array da dentro la funzione apposita per la stampa --> " + this.getTotale());
}

private void Init()
{
int i;
for(i=0;i<7;i++)
{
this.GiorniSettimana=0;
}
}


}

CLASSE MAIN
public class ClassMain
{
public static void main(String[] args)
{
BevoSettimana numeroVolteBevo = new BevoSettimana();
numeroVolteBevo.setLunedi(3);
numeroVolteBevo.setMartedi(2);
numeroVolteBevo.setSabato(8);


System.out.println("Nei "+ numeroVolteBevo.getNumGiorni() + " giorni della settimana ho bevuto: "+ numeroVolteBevo.getTotale()+" volte");
System.out.println("Lunedi ho bevuto: "+ numeroVolteBevo.getLunedi() + " volte;" + " Martedi: "+ numeroVolteBevo.getMartedi()+" volte; " + "Mercoledi: "+ numeroVolteBevo.getMercoledi() + " volte; " + " Giovedi: "+ numeroVolteBevo.getGiovedi()+" volte; "+"Venerdi: "+ numeroVolteBevo.getVenerdi() + " volte; " + " Sabato: "+ numeroVolteBevo.getSabato()+" volte; " + "Domenica: "+ numeroVolteBevo.getDomenica()+ " volte.");


BevoSettimanaMigliorata numeroVolteBevoMigliorato = new BevoSettimanaMigliorata();
numeroVolteBevoMigliorato.setLunedi(3);
numeroVolteBevoMigliorato.setMartedi(2);
numeroVolteBevoMigliorato.setSabato(8);
numeroVolteBevoMigliorato.StampaAVideo();
System.out.println(numeroVolteBevoMigliorato.StampaMessaggio());
numeroVolteBevoMigliorato.setLunedi(10);
System.out.println(numeroVolteBevoMigliorato.StampaMessaggioConIf());
System.out.println(numeroVolteBevoMigliorato.StampaMessaggioSwitch());
//compito: imparare sintassi lettura valore tastiera

System.out.println("--------------------------------------");
BevoSettimanaArray numBevute = new BevoSettimanaArray();
numBevute.setGiorno(0, 5);
numBevute.setGiorno(1, 0);
numBevute.setGiorno(2, 1);
numBevute.setGiorno(3, 2);
numBevute.setGiorno(4, 0);
numBevute.setGiorno(5, 0);
numBevute.setGiorno(6, 1);
System.out.println("Stampo dalla funzione getTotale: " + numBevute.getTotale());
numBevute.StampaGetTotale();
System.out.println("--------------------------------------");

}
}



 
Ti ho creato un piccolo esempio.
Ho cercato di restare sul contesto semplice in quanto da ciò che ho capito stai studiando ancora le basi di Java.
Se qualcosa non fosse chiaro scrivi e ti risponderò quando sarà possibile.

Codice:
import java.util.Random;

// Classe giorno: memorizzo conteggio delle bevute in quel giorno e il nome del
// giorno impostato all'istanza
class Giorno {
    private int conteggioBevute;
    private final String nomeGiorno;
     
    public Giorno(final String nomeGiorno) {
            conteggioBevute = 0;
            this.nomeGiorno = nomeGiorno;
    }
     
    public void stoBevendo() {
            conteggioBevute++;
    }
     
    public int getConteggio() {
            return conteggioBevute;
    }
     
    public String getNomeGiorno() {
            return nomeGiorno;
    }
}



// Classe settimana: memorizzo un array con i vari giorni
class Settimana {
    private static String[] nomiGiorni = new String[] { "Lunedì", "Martedì", "Mercoledì", "Giovedì", "Venerdì", "Sabato", "Domenica" };
    private final Giorno[] giorniSettimana;
    private int conteggioTotale;
     
    public Settimana() {
            conteggioTotale = 0;
            giorniSettimana = new Giorno[7];
            for (int i = 0; i < giorniSettimana.length; i++)
                giorniSettimana[i] = new Giorno(nomiGiorni[i]);
           
    }
     
    public void stoBevendo(final int giorno) {
            giorniSettimana[giorno].stoBevendo();
            conteggioTotale++;
    }
     
    public int getGiorniTotali() {
            return giorniSettimana.length;
    }
     
    public void stampaResoconto() {
            System.out.println("*************************");
            System.out.println("*\tResoconto:\t*");
            System.out.println("*************************");
           
            for (int i = 0; i < giorniSettimana.length; i++)
                System.out.println(giorniSettimana[i].getNomeGiorno() + ": ho bevuto " + giorniSettimana[i].getConteggio()
                            + " volte.");
           
            System.out.println("\nBevute totali: " + conteggioTotale);
    }
}



// Classe principale di test
public class Bevo {
    public static void main(final String[] args) {
            Settimana mySettimana = new Settimana();
            Random random = new Random();
           
            for (int i = 0; i < 50; i++)
                mySettimana.stoBevendo(random.nextInt(7));
           
            mySettimana.stampaResoconto();
    }
}

Cordiali saluti,
Misterioso
 
  • Mi piace
Reazioni: SasukeUchiha
Ti ho creato un piccolo esempio.
Ho cercato di restare sul contesto semplice in quanto da ciò che ho capito stai studiando ancora le basi di Java.
Se qualcosa non fosse chiaro scrivi e ti risponderò quando sarà possibile.

Codice:
import java.util.Random;

// Classe giorno: memorizzo conteggio delle bevute in quel giorno e il nome del
// giorno impostato all'istanza
class Giorno {
    private int conteggioBevute;
    private final String nomeGiorno;
   
    public Giorno(final String nomeGiorno) {
            conteggioBevute = 0;
            this.nomeGiorno = nomeGiorno;
    }
   
    public void stoBevendo() {
            conteggioBevute++;
    }
   
    public int getConteggio() {
            return conteggioBevute;
    }
   
    public String getNomeGiorno() {
            return nomeGiorno;
    }
}



// Classe settimana: memorizzo un array con i vari giorni
class Settimana {
    private static String[] nomiGiorni = new String[] { "Lunedì", "Martedì", "Mercoledì", "Giovedì", "Venerdì", "Sabato", "Domenica" };
    private final Giorno[] giorniSettimana;
    private int conteggioTotale;
   
    public Settimana() {
            conteggioTotale = 0;
            giorniSettimana = new Giorno[7];
            for (int i = 0; i < giorniSettimana.length; i++)
                giorniSettimana[i] = new Giorno(nomiGiorni[i]);
         
    }
   
    public void stoBevendo(final int giorno) {
            giorniSettimana[giorno].stoBevendo();
            conteggioTotale++;
    }
   
    public int getGiorniTotali() {
            return giorniSettimana.length;
    }
   
    public void stampaResoconto() {
            System.out.println("*************************");
            System.out.println("*\tResoconto:\t*");
            System.out.println("*************************");
         
            for (int i = 0; i < giorniSettimana.length; i++)
                System.out.println(giorniSettimana[i].getNomeGiorno() + ": ho bevuto " + giorniSettimana[i].getConteggio()
                            + " volte.");
         
            System.out.println("\nBevute totali: " + conteggioTotale);
    }
}



// Classe principale di test
public class Bevo {
    public static void main(final String[] args) {
            Settimana mySettimana = new Settimana();
            Random random = new Random();
         
            for (int i = 0; i < 50; i++)
                mySettimana.stoBevendo(random.nextInt(7));
         
            mySettimana.stampaResoconto();
    }
}

Cordiali saluti,
Misterioso
ti ringrazio, ma l 'esercizio che avevo chiesto si basava sui mesi(valorizzare l array a string dove ogni stringa ha il nome del mese, poi stampare mesi, e dire quali sono quelli di 31 giorni), pur essendo molto utile per gli esercizi precedenti, non ho risolto il problema ^^ grazie cmq per avermi risposto ^^
 
public class Meseprovo {

public static void main(String[] args) {
// TODO Auto-generated method stub
String[] mese=new String[13];
for(int indice=1;indice<=12;++indice)
{
switch(indice)
{
case 1: mese[indice]="Gennaio";
break;
case 2: mese[indice]="Febbraio";
break;
case 3: mese[indice]="Marzo";
break;
case 4: mese[indice]="Aprile";
break;
case 5: mese[indice]="Maggio";
break;
case 6: mese[indice]="Giugno";
break;
case 7: mese[indice]="Luglio";
break;
case 8: mese[indice]="Agosto";
break;
case 9: mese[indice]="Settembre";
break;
case 10: mese[indice]="Ottobre";
break;
case 11: mese[indice]="Novembre";
break;
case 12: mese[indice]="Dicembre";
break;

}
//Stampi i mesi per verificare se l'inserimento è andato a buon fine
}
for(int indice=1;indice<=12;++indice)
System.out.println(mese[indice]);


}

}


Spero possa esserti ancora utile. ciao !
 
Stato
Discussione chiusa ad ulteriori risposte.