// classe che implementa metodi aventi ciascuno un singolo compito
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.io.LineNumberReader;
import java.util.List;
import java.util.ArrayList;
public class Pagamenti { // Pagamenti vers 1.2
private List< Float > importi = new ArrayList< >(); // attributo per lista di valori
public void leggiFile(String c, String n) throws IOException {
final LineNumberReader f = new LineNumberReader(new FileReader(new File(c, n)));
String riga;
while (true) {
riga = f.readLine(); // legge una linea dal file
if (null == riga) break; // controlla se il file e' finito
inserisci(Float.parseFloat(riga));
}
f.close();
}
public void inserisci(float x) {
if (!importi.contains(x)) // inserisce solo valori distinti
importi.add(x); // aggiunge in lista
}
public float calcolaSomma() {
float risultato = 0;
for (float v : importi)
risultato += v; // somma l'elemento della lista
return risultato;
}
public float calcolaMassimo() {
float risultato = 0;
for (float v : importi)
if (risultato < v)
risultato = v;
return risultato;
}
public void svuota() {
importi = new ArrayList < >();
}
}
// classe che chiama metodi di Pagamenti
// compilare con javac MainPagamenti.java
// eseguire con java MainPagamenti
import java.io.IOException;
public class MainPagamenti {
public static void main(String[] args) {
System.out.println("inizio esecuzione");
Pagamenti p = new Pagamenti();
try {
p.leggiFile("csvfiles", "Importi.csv");
} catch (IOException e) {
// nel caso in cui il file non venisse trovato
}
System.out.println("massimo "+p.calcolaMassimo());
System.out.println("somma "+p.calcolaSomma());
}
}
// test per la classe Pagamenti
import java.io.IOException;
public class TestPagamenti { // per Pagamenti vers 1.2
private Pagamenti pgm = new Pagamenti();
private void initLista() {
pgm.svuota();
pgm.inserisci(321.01f);
pgm.inserisci(531.7f);
pgm.inserisci(1234.5f);
}
public void testSommaValori() {
initLista();
if (pgm.calcolaSomma() == 2087.21f) // test che si autovaluta
System.out.println("OK test somma val");
else System.out.println("FAILED test somma val");
}
public void testLeggiFile() {
pgm.svuota();
try {
pgm.leggiFile("csvfiles", "Importi.csv");
System.out.println("OK test leggi file");
} catch (IOException e) {
System.out.println("FAILED test leggi file");
}
}
public void testMaxValore() {
initLista();
pgm.calcolaMassimo();
if (pgm.calcolaMassimo() == 1234.5f)
System.out.println("OK test massimo val");
else System.out.println("FAILED test massimo val");
}
public static void main(String[] args) {
TestPagamenti tl = new TestPagamenti();
tl.testLeggiFile();
tl.testSommaValori();
tl.testMaxValore();
}
}