CLASSE STORICO:
import java.io.*;
public class Storico {
// vettore contenente gli allenamenti inseriti tramite il metodo Aggiungi
private Allenamento allenamenti[];
// contiene il numero di allenamenti archiviati
int index;
//
// crea un nuovo Storico
// massimo numero di allenamenti archiviabili = 10
//
public Storico() {
allenamenti = new Allenamento[10];
index = 0;
}
//
// inserisce un nuovo allenamento nello Storico
//
public void Aggiungi(Allenamento param_all){
allenamenti[index] = param_all;
index++;
}
//
// Stampa dettagli di tutti gli allenamenti
//
public void StampaTutti() throws IOException {
for(int i=0; i<index; ++i){
allenamenti[i].Stampa();
}
}
//
// Stampa dettagli di tutti gli allenamenti
//
public void StampaMedia()throws IOException {
// inizializzazione varibili per calcolo medie
// le medie vengono messe in una variabile Allenamento temporanea
double l_BracciatePerOra = 0.0;
double l_Velocità = 0.0;
double l_MediaPerVasca = 0.0;
double l_BracciatePerVasca = 0.0;
double l_BracciatePerMinuto = 0.0;
double l_Pulsazioni = 0.0;
Allenamento a = new Allenamento();
// calcolo medie
for(int i=0; i<index; ++i){
l_BracciatePerOra = l_BracciatePerOra + allenamenti[i].BracciatePerOra;
l_Velocità = l_Velocità + allenamenti[i].Velocità;
l_MediaPerVasca = l_MediaPerVasca + allenamenti[i].MediaPerVasca;
l_BracciatePerVasca = l_BracciatePerVasca + allenamenti[i].BracciatePerVasca;
l_BracciatePerMinuto = l_BracciatePerMinuto + allenamenti[i].BracciatePerMinuto;
l_Pulsazioni = l_Pulsazioni + allenamenti[i].Pulsazioni;
}
a.BracciatePerOra = l_BracciatePerOra/index;
a.Velocità = l_Velocità/index;
a.MediaPerVasca = l_MediaPerVasca/index;
a.BracciatePerVasca = l_BracciatePerVasca/index;
// conversione da double a int
Double l_Double = l_BracciatePerMinuto/index;
a.BracciatePerMinuto = l_Double.intValue();
// conversione da double a int
l_Double = l_Pulsazioni/index;
a.Pulsazioni = l_Double.intValue();
System.out.println("");
System.out.println("Stampa medie allenamenti");
System.out.println("");
a.Stampa();
}
}
Allora, il programma funziona correttamente, ora arrivano le domande:
in fondo alla classe main potete farmi la modifica in modo che:
quando ti viene chiesto "Vuoi ricominciare da capo?" se tu gli digiti un comando diverso da " s " o " n " ti dica "errore nella scrittura, vuoi ricominciare da capo? (s/n) ".
Altra cosa, per complicare un po' il programma ho creato una nuova classe denominata "Lettura da Tastiera" l'ho praticamente ripresa dal vostro forum, solo che come faccio a usarla e richiamarla ogni volta nel programma, mi aiutate per favore? La classe che ho creato è questa:
import java.io.*;
import java.util.StringTokenizer;
public class LetturaTastiera {
private static InputStreamReader is = new InputStreamReader( System.in );
private static BufferedReader br = new BufferedReader( is );
private static StringTokenizer st;
public static String leggiStringa() {
String s = "";
try {
s = br.readLine();
} catch (Exception e) { e.printStackTrace(); }
return s;
}
public static int leggiIntero() {
int i = 0;
try {
String tmp = br.readLine();
st = new StringTokenizer(tmp);
i = Integer.parseInt( st.nextToken() );
} catch (Exception e) { e.printStackTrace(); }
return i;
}
public static float leggiFloat() {
float i = 0f;
try {
String tmp = br.readLine();
st = new StringTokenizer(tmp);
i = Float.parseFloat( st.nextToken() );
} catch (Exception e) { e.printStackTrace(); }
return i;
}
public static double leggiDouble() {
double i = 0;
try {
String tmp = br.readLine();
st = new StringTokenizer(tmp);
i = Double.parseDouble( st.nextToken() );
} catch (Exception e) { e.printStackTrace(); }
return i;
}
public static char leggiCarattere() {
char i = (char) 0;
try {
i = (br.readLine()).charAt(0);
} catch (Exception e) { e.printStackTrace(); }
return i;
}
public static long leggiLong() {
long i = 0L;
try {
String tmp = br.readLine();
st = new StringTokenizer(tmp);
i = Long.parseLong( st.nextToken() );
} catch (Exception e) { e.printStackTrace(); }
return i;
}
public static short leggiShort() {
short i = (short) 0;
try {
String tmp = br.readLine();
st = new StringTokenizer(tmp);
i = Short.parseShort( st.nextToken() );
} catch (Exception e) { e.printStackTrace(); }
return i;
}
public static byte leggiByte() {
byte i = (byte) 0;
try {
String tmp = br.readLine();
st = new StringTokenizer(tmp);
i = Byte.parseByte( st.nextToken() );
} catch (Exception e) { e.printStackTrace(); }
return i;
}
public static boolean leggiBoolean() {
boolean i = false;
try {
String tmp = br.readLine();
st = new StringTokenizer(tmp);
i = new Boolean( st.nextToken() ).booleanValue();
} catch (Exception e) { e.printStackTrace(); }
return i;
}
}
Ecco... cioe' dovrei fare in modo che nel main e nelle altre classi, ci fossero richiami a questa classe ogni volta che c'è la lettura da tastiera...potete aiutarmi?
Se avete altre idee o spunti da aggiungere, fatevi avanti, e createli!! Io ho un esame il 29 mattina quindi DOMANI L'ALTRO MATTINA AIUTOOOOOOOOOOOOOOOOOOOOO... vi prego, fatevi avanti, e contattatemi pure su msn ( nflorenzano@hotmail.it ) .. ringrazio chi avra' spirito di altruismo, oltre che piacere nel coltivare la propria passione aiutando gli inesperti come me... grazie