Opzione 3

This commit is contained in:
La Programmatrice Verde
2026-01-13 20:49:52 +01:00
parent 567251a28e
commit 813152e531
2 changed files with 71 additions and 20 deletions

View File

@@ -17,18 +17,20 @@ public class ContoCorrente {
private String cognome;
private String codiceFiscale;
private Date dataDiNascita;
private double saldoIniziale;
private double saldo;
private int numeroContoCorrente;
private static ArrayList<Integer> numeriContiCorrenti = new ArrayList<>();
public ContoCorrente(String nome, String cognome, String codiceFiscale, Date dataDiNascita, double saldoIniziale,
public ContoCorrente(String nome, String cognome, String codiceFiscale, Date dataDiNascita, double saldo,
int numeroContoCorrente) {
this.nome = nome;
this.cognome = cognome;
this.codiceFiscale = codiceFiscale;
this.dataDiNascita = dataDiNascita;
this.saldoIniziale = saldoIniziale;
this.saldo = saldo;
this.numeroContoCorrente = numeroContoCorrente;
numeriContiCorrenti.add(numeroContoCorrente);
}
@@ -40,4 +42,13 @@ public class ContoCorrente {
public int getNumeroContoCorrente() {
return numeroContoCorrente;
}
public void preleva(double quantita) throws IllegalArgumentException{
if (quantita >= this.saldo) {
throw new IllegalArgumentException("La quantità desiderata eccede il saldo corrente.");
}
else {
this.saldo -= quantita;
}
}
}

View File

@@ -34,6 +34,7 @@ public class MyBank {
static Scanner sc = new Scanner(System.in);
static final String ERRORE_GENERICO = "Errore: opzione non valida.";
static final String ERRORE_CONTI_VUOTO = "Errore: è necessario aggiungere almeno un conto corrente prima di proseguire.";
static final String PATH_CONTI = "./src/MyBank/conti/";
public static void main(String[] args) {
@@ -44,7 +45,7 @@ public class MyBank {
System.out.println("Scegliere un'opzione:");
System.out.println("1. Aprire conto corrente");
System.out.println("2. ");
System.out.println("3. ");
System.out.println("3. Prelievo");
System.out.println("4. ");
System.out.println("0. Esci");
System.out.print("Opzione: ");
@@ -63,26 +64,23 @@ public class MyBank {
break;
case 2:
if (conti.isEmpty()) {
System.out.println(
"Errore: è necessario aggiungere almeno un conto corrente prima di proseguire.");
System.out.println(ERRORE_CONTI_VUOTO);
} else {
}
pausa();
break;
case 3:
if (conti.isEmpty()) {
System.out.println(
"Errore: è necessario aggiungere almeno un conto corrente prima di proseguire.");
System.out.println(ERRORE_CONTI_VUOTO);
} else {
preleva(conti);
}
pausa();
break;
case 4:
if (conti.isEmpty()) {
System.out.println(
"Errore: è necessario aggiungere almeno un conto corrente prima di proseguire.");
System.out.println(ERRORE_CONTI_VUOTO);
} else {
}
@@ -150,7 +148,7 @@ public class MyBank {
dataDiNascita = dataDiNascita();
saldoIniziale = saldoIniziale();
saldoIniziale = quantita("del saldo iniziale");
numeroContoCorrente = codiceFiscale.hashCode();
@@ -211,19 +209,19 @@ public class MyBank {
return dataDiNascita;
}
static double saldoIniziale() {
double saldoIniziale = 0;
static double quantita(String diCheCosa) {
double quantita = 0;
boolean error;
do {
error = false;
System.out.print("Inserire il saldo iniziale: ");
System.out.print("Inserire la quantità " + diCheCosa + ": ");
try {
saldoIniziale = sc.nextDouble();
quantita = sc.nextDouble();
sc.nextLine();
if (saldoIniziale <= 0) {
System.out.println("Errore: il saldo iniziale non può essere minore o uguale a zero.");
if (quantita <= 0) {
System.out.println("Errore: la quantità non può essere minore o uguale a zero.");
pausa();
error = true;
}
@@ -234,7 +232,7 @@ public class MyBank {
}
} while (error);
return saldoIniziale;
return quantita;
}
static void salvaContoCorrente(ContoCorrente conto) {
@@ -246,6 +244,48 @@ public class MyBank {
} catch (Exception _) {
System.out.println("Errore: impossibile salvare il conto corrente.");
}
}
static void preleva(ArrayList<ContoCorrente> conti) {
boolean error;
do {
error = false;
try {
selezionaConto(conti).preleva(quantita("da prelevare"));
} catch (IllegalArgumentException e) {
System.out.println(e.getMessage());
pausa();
error = true;
}
} while (error);
}
static ContoCorrente selezionaConto(ArrayList<ContoCorrente> conti) {
ContoCorrente contoCorrente = null;
int numeroContoCorrente;
boolean error;
do {
error = false;
System.out.print("Inserire il proprio numero di conto: ");
numeroContoCorrente = sc.nextInt();
sc.nextLine();
if (!ContoCorrente.getNumeriContiCorrenti().contains(numeroContoCorrente)) {
System.out.println("Errore: il conto corrente specificato non esiste.");
pausa();
error = true;
} else {
for (ContoCorrente conto : conti) {
if (conto.getNumeroContoCorrente() == numeroContoCorrente) {
contoCorrente = conto;
break;
}
}
}
} while (error);
return contoCorrente;
}
}