Opzione 1
This commit is contained in:
@@ -4,6 +4,12 @@
|
|||||||
*/
|
*/
|
||||||
package gradeanalyzer;
|
package gradeanalyzer;
|
||||||
|
|
||||||
|
import java.io.BufferedReader;
|
||||||
|
import java.io.BufferedWriter;
|
||||||
|
import java.io.FileReader;
|
||||||
|
import java.io.FileWriter;
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.InputMismatchException;
|
import java.util.InputMismatchException;
|
||||||
import java.util.Scanner;
|
import java.util.Scanner;
|
||||||
|
|
||||||
@@ -20,6 +26,9 @@ public class GradeAnalyzer {
|
|||||||
static Scanner sc = new Scanner(System.in);
|
static Scanner sc = new Scanner(System.in);
|
||||||
static final String PATH_VOTI = "./src/gradeanalyzer/data/voti.txt";
|
static final String PATH_VOTI = "./src/gradeanalyzer/data/voti.txt";
|
||||||
static final String PATH_PROMOSSI = "./src/gradeanalyzer/data/promossi.txt";
|
static final String PATH_PROMOSSI = "./src/gradeanalyzer/data/promossi.txt";
|
||||||
|
static final String ERRORE_GENERICO = "Opzione non valida.";
|
||||||
|
static ArrayList<Valutazione> valutazioni = valutazioniDaFile();
|
||||||
|
static boolean isSaved;
|
||||||
|
|
||||||
public static void main(String[] args) {
|
public static void main(String[] args) {
|
||||||
int scelta = -1;
|
int scelta = -1;
|
||||||
@@ -40,11 +49,13 @@ public class GradeAnalyzer {
|
|||||||
case 0:
|
case 0:
|
||||||
break;
|
break;
|
||||||
case 1:
|
case 1:
|
||||||
|
isSaved = false;
|
||||||
|
inserisciDati();
|
||||||
|
System.out.println("Studente aggiunto correttamente.");
|
||||||
pausa();
|
pausa();
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
|
|
||||||
pausa();
|
pausa();
|
||||||
break;
|
break;
|
||||||
case 3:
|
case 3:
|
||||||
@@ -52,12 +63,11 @@ public class GradeAnalyzer {
|
|||||||
pausa();
|
pausa();
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
System.out.println("Opzione non valida.");
|
System.out.println(ERRORE_GENERICO);
|
||||||
pausa();
|
pausa();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
} catch (InputMismatchException _) {
|
||||||
catch (InputMismatchException _) {
|
|
||||||
System.out.println("Errore: scelta non valida.");
|
System.out.println("Errore: scelta non valida.");
|
||||||
pausa();
|
pausa();
|
||||||
}
|
}
|
||||||
@@ -68,4 +78,142 @@ public class GradeAnalyzer {
|
|||||||
System.out.println("Premere un tasto per continuare. . .");
|
System.out.println("Premere un tasto per continuare. . .");
|
||||||
sc.nextLine();
|
sc.nextLine();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void inserisciDati() {
|
||||||
|
String nome;
|
||||||
|
String cognome;
|
||||||
|
double voto;
|
||||||
|
String scelta;
|
||||||
|
boolean exit;
|
||||||
|
int posizione;
|
||||||
|
|
||||||
|
System.out.print("Inserisci il nome: ");
|
||||||
|
nome = sc.nextLine().trim();
|
||||||
|
|
||||||
|
System.out.print("Inserisci il cognome: ");
|
||||||
|
cognome = sc.nextLine().trim();
|
||||||
|
|
||||||
|
voto = voto();
|
||||||
|
|
||||||
|
if ((posizione = exists(nome, cognome, valutazioni)) != -1) {
|
||||||
|
System.out.println("Attenzione: lo studente esiste già.");
|
||||||
|
do {
|
||||||
|
exit = true;
|
||||||
|
System.out.print("Aggiornarne i dati [S/N]? ");
|
||||||
|
scelta = sc.nextLine().trim().toLowerCase();
|
||||||
|
|
||||||
|
switch (scelta) {
|
||||||
|
case "s":
|
||||||
|
valutazioni.get(posizione).setVoto(voto);
|
||||||
|
break;
|
||||||
|
case "n":
|
||||||
|
System.out.println("Lo studente non è stato aggiornato.");
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
System.out.println(ERRORE_GENERICO);
|
||||||
|
pausa();
|
||||||
|
exit = false;
|
||||||
|
}
|
||||||
|
} while (!exit);
|
||||||
|
} else {
|
||||||
|
valutazioni.add(new Valutazione(nome, cognome, voto));
|
||||||
|
}
|
||||||
|
|
||||||
|
salva();
|
||||||
|
}
|
||||||
|
|
||||||
|
static double voto() {
|
||||||
|
double voto;
|
||||||
|
boolean error;
|
||||||
|
final double VOTO_MINIMO = 1;
|
||||||
|
final double VOTO_MASSIMO = 10;
|
||||||
|
|
||||||
|
do {
|
||||||
|
error = false;
|
||||||
|
System.out.print("Inserisci il voto: ");
|
||||||
|
voto = Math.round((sc.nextDouble() * 10) / 10);
|
||||||
|
sc.nextLine();
|
||||||
|
|
||||||
|
if (voto < VOTO_MINIMO || voto > VOTO_MASSIMO) {
|
||||||
|
System.out.println(
|
||||||
|
"Errore: il voto deve essere compreso tra " + VOTO_MINIMO + " e " + VOTO_MASSIMO + ".");
|
||||||
|
pausa();
|
||||||
|
error = true;
|
||||||
|
}
|
||||||
|
} while (error);
|
||||||
|
|
||||||
|
return voto;
|
||||||
|
}
|
||||||
|
|
||||||
|
static ArrayList<Valutazione> valutazioniDaFile() {
|
||||||
|
ArrayList<Valutazione> valutazioni = new ArrayList<>();
|
||||||
|
try (BufferedReader bf = new BufferedReader(new FileReader(PATH_VOTI))) {
|
||||||
|
String riga = bf.readLine();
|
||||||
|
String[] valoriValutazione;
|
||||||
|
|
||||||
|
while (riga != null) {
|
||||||
|
valoriValutazione = riga.split(";");
|
||||||
|
valutazioni.add(new Valutazione(valoriValutazione[0], valoriValutazione[1],
|
||||||
|
Double.parseDouble(valoriValutazione[2])));
|
||||||
|
riga = bf.readLine();
|
||||||
|
}
|
||||||
|
} catch (IOException e) {
|
||||||
|
System.out.println("Errore nella lettura del file: " + e.getMessage());
|
||||||
|
pausa();
|
||||||
|
}
|
||||||
|
|
||||||
|
return valutazioni;
|
||||||
|
}
|
||||||
|
|
||||||
|
static int exists(String nome, String cognome, ArrayList<Valutazione> valutazioni) {
|
||||||
|
boolean exit = false;
|
||||||
|
int posizione = -1;
|
||||||
|
for (int i = 0; i < valutazioni.size() && !exit; i++) {
|
||||||
|
if (nome.equals(valutazioni.get(i).getNome()) && cognome.equals(valutazioni.get(i).getCognome())) {
|
||||||
|
posizione = i;
|
||||||
|
exit = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return posizione;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void salva() {
|
||||||
|
boolean exit;
|
||||||
|
String scelta;
|
||||||
|
do {
|
||||||
|
exit = true;
|
||||||
|
System.out.print("Salvare i dati [S/N]? ");
|
||||||
|
scelta = sc.nextLine().trim().toLowerCase();
|
||||||
|
|
||||||
|
switch (scelta) {
|
||||||
|
case "s":
|
||||||
|
try (BufferedWriter bw = new BufferedWriter(new FileWriter(PATH_VOTI))) {
|
||||||
|
StringBuilder sb = new StringBuilder();
|
||||||
|
for (Valutazione valutazione : valutazioni) {
|
||||||
|
sb.append(valutazione.getNome());
|
||||||
|
sb.append(";");
|
||||||
|
sb.append(valutazione.getCognome());
|
||||||
|
sb.append(";");
|
||||||
|
sb.append(valutazione.getVoto());
|
||||||
|
sb.append("\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
bw.write(sb.toString());
|
||||||
|
System.out.println("Dati salvati correttamente.");
|
||||||
|
valutazioni = valutazioniDaFile();
|
||||||
|
isSaved = true;
|
||||||
|
} catch (IOException e) {
|
||||||
|
System.out.println("Errore nella scrittura del file: " + e.getMessage());
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case "n":
|
||||||
|
System.out.println("I dati non sono stati salvati.");
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
System.out.println(ERRORE_GENERICO);
|
||||||
|
pausa();
|
||||||
|
exit = false;
|
||||||
|
}
|
||||||
|
} while (!exit);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
38
src/gradeanalyzer/Valutazione.java
Normal file
38
src/gradeanalyzer/Valutazione.java
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
/*
|
||||||
|
* Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
|
||||||
|
* Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template
|
||||||
|
*/
|
||||||
|
package gradeanalyzer;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @author Verde
|
||||||
|
*/
|
||||||
|
public class Valutazione {
|
||||||
|
private String nome;
|
||||||
|
private String cognome;
|
||||||
|
private double voto;
|
||||||
|
|
||||||
|
public Valutazione(String nome, String cognome, double voto) {
|
||||||
|
this.nome = nome;
|
||||||
|
this.cognome = cognome;
|
||||||
|
this.voto = voto;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getNome() {
|
||||||
|
return nome;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCognome() {
|
||||||
|
return cognome;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setVoto(double voto) {
|
||||||
|
this.voto = voto;
|
||||||
|
}
|
||||||
|
|
||||||
|
public double getVoto() {
|
||||||
|
return voto;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
/*
|
|
||||||
* Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
|
|
||||||
* Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template
|
|
||||||
*/
|
|
||||||
package gradeanalyzer;
|
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
* @author Verde
|
|
||||||
*/
|
|
||||||
public class Voto {
|
|
||||||
|
|
||||||
}
|
|
||||||
Reference in New Issue
Block a user