Salve ragazzi..PREMETTO CHE DIVIDO IL MIO MESSAGGIO IN 2 MESSAGGI, poiche' altrimenti supero il limite richiesto, quindi alla fine di questo leggete quell'altro!! ho bisogno di un serio aiuto: il 29 mattina ho un esame di informatica, sono al primo anno di ingegneria gestionale, e in sostanza devo portare un programma scritto in Java. Ho scritto un programma (con l'ausilio di persone piu' esperte di me) che praticamente nel main ti chiede queste 5 cose:

System.out.println(" 1) Prerequisiti per la verifica dell'allenamento");
System.out.println(" 2) Aggiungi e Verifica il tuo allenamento");
System.out.println(" 3) Stampa Dettagli storico allenamenti");
System.out.println(" 4) Stampa Medie storico allenamenti");
System.out.println(" 5) Informazioni");

e in base al tasto che pigi ti svolge alcune funzioni. Le classi del programma sono 3, la main, poi quella chiamata "Allenamento" legata al verificare il proprio allenamento, e la classe "Storico" che gestisce l'aggiungere l'allenamento alla memoria del pc, e lo stampare le "Medie dello storico".

vi copio qui il programma: eseguitelo con eclipse:

CLASSE MAIN:

import java.io.*;

// Classe principale, dove risiede il metodo main
// fondamentale per la partenza del programma
public class Main {


/** Crea una nuova istanza di Main */
public Main() {
}

public static void main(String[] args) throws IOException
{
// Creazione della tastiera
InputStreamReader in = new InputStreamReader(System.in);
BufferedReader tastiera = new BufferedReader(in);

// inizializzazione delle variabili usate successivamente
String a = "";

int s = 0;

// Creazione della classe Storico
Storico st = new Storico();

do{
// Menu' principale per la navigazione

System.out.println("");
System.out.println("Salve!!!!");
System.out.println("");
System.out.println("Cosa vuoi fare?");
System.out.println("");
System.out.println(" 1) Prerequisiti per la verifica dell'allenamento");
System.out.println(" 2) Aggiungi e Verifica il tuo allenamento");
System.out.println(" 3) Stampa Dettagli storico allenamenti");
System.out.println(" 4) Stampa Medie storico allenamenti");
System.out.println(" 5) Informazioni");


// Elaborazione delle scelte dell'utente da tastiera
// con gestione delle eccezioni (try...catch)

try{
a = tastiera.readLine();

// Comando che trasferisce il valore di "a" ad "s", trasformandolo
//in int da String
s = Integer.parseInt(a);

// Possibilità di scelta
switch (s)
{
case 1: {
// stampa dei prerequisiti per la verifica

System.out.println("");
System.out.println("Le domande che vengono poste nel programma sono di carattere");
System.out.println("tecnico e richiedono la conoscenza di alcuni parametri e dati specifici");
System.out.println("del settore; è necessario infatti, a fine allenamento:");
System.out.println("");
System.out.println("1) Aver calcolato il numero delle vasche fatte");
System.out.println("2) Aver calcolato il numero delle pulsazioni su 10 secondi");
System.out.println("3) Aver calcolato tramite cronometro la frequenza di bracciata al minuto");
System.out.println("4) Aver calcolato il numero delle ore in cui avete nuotato");
System.out.println("");
System.out.println("Buona fortuna!");


}
break;

case 2: {

// Creazione della classe Allenamento
Allenamento v = new Allenamento();

// Invocazione del metodo verifica() della classe Allenamento
v.verifica();

// aggiunge l'allenamento v nello Storico
st.Aggiungi(v);

}
// Comando che impedisce l'esecuzione delle successive righe del codice
break;

case 3: {
// richiama il metodo StampaTutti di storico per stampare i dettagli di tutti gli allenamenti
st.StampaTutti();
}
break;

case 4: {
// richiama il metodo StampaMedia di storico per stampare le medie di tutti gli allenamenti
st.StampaMedia();
}
break;

case 5: {

// Stampa delle informazioni
System.out.println("");
System.out.println("");
System.out.println("×÷·.·´¯`·)»»SCRITTO DA:««(·´¯`·.·÷×·.·´");
System.out.println("•••••••••••••••••••••••••••••• •••••••••");
System.out.println("•••••••• »»NICCOLO FLORENZANO«« •••••••");
System.out.println("•••••••••••••••••••••••••••••• •••••••••");
System.out.println("•••••• »»INGEGNERIA GESTIONALE«« ••••••");
System.out.println("•••••••••••••••••••••••••••••• •••••••••");
System.out.println("••••••••••••••»»I ANNO««•••••••••••••••");
System.out.println("•••••••••••••••••••••••••••••• •••••••••");
System.out.println(",.-~*'¨¯¨'*·~-.¸-(__)-,.-~*'¨¯¨'*·~-.¸•");

}
break;

}
}catch(Exception e)
{
System.out.println("Errore nella scrittura");
}

System.out.println("");
do
{
System.out.println("Vuoi tornare all'inizio? (s/n)");
a = tastiera.readLine();
}

while (!(a.equalsIgnoreCase("s") || a.equalsIgnoreCase("n")));

}while(a.equalsIgnoreCase("s"));
// Tutto il codice che è racchiuso nel costrutto "do...while" viene
// eseguito fintanto che l'affermazione contenuta nel "while" è vera.
System.out.println("Fine del Programma");
}
}


//fare in modo che se dai un comando sbagliato ti dica errore nella scrittura,
// vuoi ricominciare dall'inizio?


CLASSE ALLENAMENTO:

//importa librerie Java (io=input output + *=tutte)
import java.io.*;
//una delle librerie specifiche per la formattazione
import java.text.DecimalFormat;

public class Allenamento {

/** Crea una nuova istanza di Allenamento */
public Allenamento() {
}

// Creazione di un'altra tastiera
InputStreamReader in = new InputStreamReader(System.in);
BufferedReader t = new BufferedReader(in);

// Inizializzazione delle variabili
double Ore = 0;
int Vasche = 0;
int BracciatePerMinuto = 0;
double MediaPerVasca = 0;
int Pulsazioni = 0;
double MediaPerVascaMin = 0;
double BracciatePerOra = 0;
double Velocità = 0;
double VaschePerOra = 0;
double BracciatePerVasca = 0;


// Raccoglie i dati dall'utente e
// stampa il risultato dell'allenamento (tramite il metodo Stampa)
public void verifica() throws IOException
{
System.out.println("");
System.out.println("Quante ore hai nuotato?");

String h = "";

h = t.readLine();
Ore = Double.parseDouble(h);

System.out.println("Quante vasche (da 50m) hai fatto?");

String v = "";

v = t.readLine();
Vasche = Integer.parseInt(v);


System.out.println("Quante bracciate hai fatto, in media, al minuto?");

String b = "";

b = t.readLine();
BracciatePerMinuto = Integer.parseInt(b);

System.out.println("Quante pulsazioni hai avuto in 10 secondi?");

String pm = "";

pm = t.readLine();
Pulsazioni = Integer.parseInt(pm);

VaschePerOra = Vasche/Ore;

BracciatePerOra = BracciatePerMinuto*60;

MediaPerVasca = (Ore*3600)/Vasche;

Velocità = (Vasche*50)/(Ore*60);

BracciatePerVasca = BracciatePerOra/VaschePerOra;
Stampa();
}

// Stampa risultato allenamento
public void Stampa() throws IOException
{
System.out.println("");
System.out.println("Bracciate per ora: " + BracciatePerOra);
System.out.println("");

DecimalFormat df1 = new DecimalFormat("####.00");
System.out.println("Velocità: " + df1.format(Velocità) + " metri/minuto");
System.out.println("");

System.out.println("Tempo medio di percorrenza medio di una vasca(da50m): " + df1.format(MediaPerVasca) + " sec,");
System.out.println("");

DecimalFormat df3 = new DecimalFormat("####.0");
System.out.println("Bracciate per vasca: " + df3.format(BracciatePerVasca));
System.out.println("");
System.out.println("");

System.out.println("Riepilogo: ");
System.out.println("");
if((BracciatePerMinuto < 30) && (Pulsazioni < 23))
{

System.out.println("Hai svolto l'allenamento con un basso tasso di stress");
System.out.println("dovresti arrivare a un maggior numero di pulsazioni e");
System.out.println("tenere una maggior frequenza di bracciata");

}

if((BracciatePerMinuto < 30) && ((Pulsazioni >= 23) && (Pulsazioni <= 28)))
{

System.out.println("Hai svolto un allenamento con medio tasso di stress");
System.out.println("il numero di pulsazioni ogni 10 secondi è nella norma e");
System.out.println("dovresti cercare di aumentare la frequenza di bracciata");

}

if((BracciatePerMinuto < 30) && (Pulsazioni > 28))
{

System.out.println("Hai svolto un allenamento con alto tasso di stress");
System.out.println("il numero di pulsazioni ogni 10 secondi è troppo alto");
System.out.println("in proporzione alla frequenza di bracciata");

}

if(((BracciatePerMinuto >= 30) && (BracciatePerMinuto <= 40) ) && (Pulsazioni < 23))
{

System.out.println("Hai svolto l'allenamento con un basso tasso di stress");
System.out.println("il numero di pulsazioni ogni 10 secondi è troppo alto");
System.out.println("in proporzione alla frequenza di bracciata");

}

if((BracciatePerMinuto >= 30) && (BracciatePerMinuto <= 40) && ((Pulsazioni >= 23) && (Pulsazioni <= 28)))
{

System.out.println("Hai svolto un allenamento ideale");
System.out.println("associando ottimamente il numero di pulsazioni ogni 10 secondi");
System.out.println("alla frequenza di bracciata");

}

if((BracciatePerMinuto >= 30) && (BracciatePerMinuto <= 40) && (Pulsazioni > 28))
{

System.out.println("Hai svolto un allenamento con un alto tasso di stress");
System.out.println("il numero di pulsazioni ogni 10 secondi è troppo alto");
System.out.println("in proporzione alla frequenza media di bracciata che hai tenuto");


}


if((BracciatePerMinuto > 40) && (Pulsazioni < 23))
{

System.out.println("Hai svolto un allenamento con basso tasso di stress");
System.out.println("il numero di pulsazioni ogni 10 secondi è troppo basso");
System.out.println("rispetto alla frequenza molto alta di bracciata che hai tenuto");

}

if((BracciatePerMinuto > 40) && ((Pulsazioni >= 23) && (Pulsazioni <= 28)))
{

System.out.println("Hai svolto un allenamento con medio tasso di stress");
System.out.println("dovresti cercare di alzare il numero delle pulsazioni ogni 10 secondi");
System.out.println("in proporzione all'alta frequenza di bracciata che hai tenuto");

}

if((BracciatePerMinuto > 40) && (Pulsazioni > 28))
{

System.out.println("Hai svolto un allenamento con elevato tasso di stress");
System.out.println("hai privilegiato la velocità, tenendo alte");
System.out.println("le pulsazioni e la frequenza di bracciata, consigliato");
System.out.println("per allenamenti brevi e intesi");

}


}

}