Opzione 3
This commit is contained in:
@@ -17,18 +17,20 @@ public class ContoCorrente {
|
|||||||
private String cognome;
|
private String cognome;
|
||||||
private String codiceFiscale;
|
private String codiceFiscale;
|
||||||
private Date dataDiNascita;
|
private Date dataDiNascita;
|
||||||
private double saldoIniziale;
|
private double saldo;
|
||||||
private int numeroContoCorrente;
|
private int numeroContoCorrente;
|
||||||
|
|
||||||
private static ArrayList<Integer> numeriContiCorrenti = new ArrayList<>();
|
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) {
|
int numeroContoCorrente) {
|
||||||
this.nome = nome;
|
this.nome = nome;
|
||||||
this.cognome = cognome;
|
this.cognome = cognome;
|
||||||
this.codiceFiscale = codiceFiscale;
|
this.codiceFiscale = codiceFiscale;
|
||||||
this.dataDiNascita = dataDiNascita;
|
this.dataDiNascita = dataDiNascita;
|
||||||
this.saldoIniziale = saldoIniziale;
|
this.saldo = saldo;
|
||||||
this.numeroContoCorrente = numeroContoCorrente;
|
this.numeroContoCorrente = numeroContoCorrente;
|
||||||
numeriContiCorrenti.add(numeroContoCorrente);
|
numeriContiCorrenti.add(numeroContoCorrente);
|
||||||
}
|
}
|
||||||
@@ -40,4 +42,13 @@ public class ContoCorrente {
|
|||||||
public int getNumeroContoCorrente() {
|
public int getNumeroContoCorrente() {
|
||||||
return numeroContoCorrente;
|
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 Scanner sc = new Scanner(System.in);
|
||||||
static final String ERRORE_GENERICO = "Errore: opzione non valida.";
|
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/";
|
static final String PATH_CONTI = "./src/MyBank/conti/";
|
||||||
|
|
||||||
public static void main(String[] args) {
|
public static void main(String[] args) {
|
||||||
@@ -44,7 +45,7 @@ public class MyBank {
|
|||||||
System.out.println("Scegliere un'opzione:");
|
System.out.println("Scegliere un'opzione:");
|
||||||
System.out.println("1. Aprire conto corrente");
|
System.out.println("1. Aprire conto corrente");
|
||||||
System.out.println("2. ");
|
System.out.println("2. ");
|
||||||
System.out.println("3. ");
|
System.out.println("3. Prelievo");
|
||||||
System.out.println("4. ");
|
System.out.println("4. ");
|
||||||
System.out.println("0. Esci");
|
System.out.println("0. Esci");
|
||||||
System.out.print("Opzione: ");
|
System.out.print("Opzione: ");
|
||||||
@@ -63,26 +64,23 @@ public class MyBank {
|
|||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
if (conti.isEmpty()) {
|
if (conti.isEmpty()) {
|
||||||
System.out.println(
|
System.out.println(ERRORE_CONTI_VUOTO);
|
||||||
"Errore: è necessario aggiungere almeno un conto corrente prima di proseguire.");
|
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
}
|
}
|
||||||
pausa();
|
pausa();
|
||||||
break;
|
break;
|
||||||
case 3:
|
case 3:
|
||||||
if (conti.isEmpty()) {
|
if (conti.isEmpty()) {
|
||||||
System.out.println(
|
System.out.println(ERRORE_CONTI_VUOTO);
|
||||||
"Errore: è necessario aggiungere almeno un conto corrente prima di proseguire.");
|
|
||||||
} else {
|
} else {
|
||||||
|
preleva(conti);
|
||||||
}
|
}
|
||||||
pausa();
|
pausa();
|
||||||
break;
|
break;
|
||||||
case 4:
|
case 4:
|
||||||
if (conti.isEmpty()) {
|
if (conti.isEmpty()) {
|
||||||
System.out.println(
|
System.out.println(ERRORE_CONTI_VUOTO);
|
||||||
"Errore: è necessario aggiungere almeno un conto corrente prima di proseguire.");
|
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -150,7 +148,7 @@ public class MyBank {
|
|||||||
|
|
||||||
dataDiNascita = dataDiNascita();
|
dataDiNascita = dataDiNascita();
|
||||||
|
|
||||||
saldoIniziale = saldoIniziale();
|
saldoIniziale = quantita("del saldo iniziale");
|
||||||
|
|
||||||
numeroContoCorrente = codiceFiscale.hashCode();
|
numeroContoCorrente = codiceFiscale.hashCode();
|
||||||
|
|
||||||
@@ -211,19 +209,19 @@ public class MyBank {
|
|||||||
return dataDiNascita;
|
return dataDiNascita;
|
||||||
}
|
}
|
||||||
|
|
||||||
static double saldoIniziale() {
|
static double quantita(String diCheCosa) {
|
||||||
double saldoIniziale = 0;
|
double quantita = 0;
|
||||||
boolean error;
|
boolean error;
|
||||||
|
|
||||||
do {
|
do {
|
||||||
error = false;
|
error = false;
|
||||||
System.out.print("Inserire il saldo iniziale: ");
|
System.out.print("Inserire la quantità " + diCheCosa + ": ");
|
||||||
try {
|
try {
|
||||||
saldoIniziale = sc.nextDouble();
|
quantita = sc.nextDouble();
|
||||||
sc.nextLine();
|
sc.nextLine();
|
||||||
|
|
||||||
if (saldoIniziale <= 0) {
|
if (quantita <= 0) {
|
||||||
System.out.println("Errore: il saldo iniziale non può essere minore o uguale a zero.");
|
System.out.println("Errore: la quantità non può essere minore o uguale a zero.");
|
||||||
pausa();
|
pausa();
|
||||||
error = true;
|
error = true;
|
||||||
}
|
}
|
||||||
@@ -234,7 +232,7 @@ public class MyBank {
|
|||||||
}
|
}
|
||||||
} while (error);
|
} while (error);
|
||||||
|
|
||||||
return saldoIniziale;
|
return quantita;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void salvaContoCorrente(ContoCorrente conto) {
|
static void salvaContoCorrente(ContoCorrente conto) {
|
||||||
@@ -246,6 +244,48 @@ public class MyBank {
|
|||||||
} catch (Exception _) {
|
} catch (Exception _) {
|
||||||
System.out.println("Errore: impossibile salvare il conto corrente.");
|
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