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");
}
}
}