Opzione 3
This commit is contained in:
@@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user