sto creando una semplicissima classe ContoCorrente, dove posso impostare il saldo attuale di due conti, depositare e prelevare soldi (con controllo, se voglio prelevare più di quando ho nel conto).. più un'eventuale metodo, che in pratica mi possa trasferire una somma di denare dal primo conto corrente al secondo, o viceversa (sempre con il controllo, se voglio prelevare più di quanto ho)..
però c'è un problemino: se io nel PRIMO CONTO ho 50euro e nel SECONDO CONTO ne ho 30, e voglio trasferirne 70 nel SOCONDO, così da avere:
PRIMO CONTO: -20euro
SECONDO CONTO 100euro
giustamente il programma mi da errore, dicendo che non posso trasferire 70 euro, perchè ne ho soltanto 50 nel conto..
però se poi vado a controllare il SECONDO CONTO, mi visualizza 100euro..
il problema sta che nel Main, io i soldi li trasferisco comunque nel SECONDO CONTO, non tenendo conto se posso oppure no.. il mio problema è proprio questo, come posso gestire questo mio problema?
cioè come posso far si, che i soldi me li trasferisco SOLO e SOLTANTO, se posso prelevardi dal PRIMO CONTO?
devo inserire quale controllo? e nel main, o nella classe?
Main:
codice:
/*
* Classe Main.
*
* creare una classe per descrivere il comportamento di un conto corrente
* bancario, supponendo di poter svolgere almeno le seguenti istruzioni:
* - deposito
* - prelevare
* - chiedere saldo del conto corrente
*
* utilizzare la classe creata per creare un programma che trasferisca
* una somma di denaro tra due conti correnti;
* creare la classe movimento su conto corrente.
*
* 11/10/2011
*/
package ContoCorrente;
import javax.swing.*;
public class Main{
public static void main(String []args){
int test=-1,scelta,denaro;
ContoCorrente c=new ContoCorrente();
ContoCorrente2 c2=new ContoCorrente2();
c.setSaldo(Integer.parseInt(JOptionPane.showInputDialog("Inserisci il saldo attuale del primo conto:")));
c2.setSaldo(Integer.parseInt(JOptionPane.showInputDialog("Inserisci il saldo attuale del secondo conto:")));
while(test!=0){
scelta=Integer.parseInt(JOptionPane.showInputDialog("1- Visualizza saldo 1;\n2- Visualizza saldo 2;\n3- Deposita 1;\n4- Deposita 2;\n5- Preleva 1;\n6- Preleva 2;\n7- Scambio 1-2;\n8- Scambio 2-1;\n0- Esci;\n\nScelta: "));
switch(scelta){
case 1:{
JOptionPane.showMessageDialog(null,c.toString());
break;
}
case 2:{
JOptionPane.showMessageDialog(null,c2.toString());
break;
}
case 3:{
c.deposito(Integer.parseInt(JOptionPane.showInputDialog("Inserisci il deposito 1:")));
break;
}
case 4:{
c2.deposito(Integer.parseInt(JOptionPane.showInputDialog("Inserisci il deposito 2:")));
break;
}
case 5:{
c.prelievo(Integer.parseInt(JOptionPane.showInputDialog("Inserisci il prelievo 1:")));
break;
}
case 6:{
c2.prelievo(Integer.parseInt(JOptionPane.showInputDialog("Inserisci il prelievo 2:")));
break;
}
case 7:{
// Scambio da 1 a 2
denaro=Integer.parseInt(JOptionPane.showInputDialog("Inserisci lo scambio 1 - 2:"));
c.scambioPrel(denaro);
c2.scambioDep(denaro);
break;
}
case 8:{
// Scambio da 2 a 1
denaro=Integer.parseInt(JOptionPane.showInputDialog("Inserisci lo scambio 1 - 2:"));
c2.scambioPrel(denaro);
c.scambioDep(denaro);
break;
}
case 0:{
test=0;
break;
}
}
}
}
}
ContoCorrente:
codice:
package ContoCorrente;
import javax.swing.JOptionPane;
public class ContoCorrente{
private float deposito;
private float prelievo;
private float saldo;
private float scambioPre;
private float scambioDep;
public ContoCorrente(){
deposito=0;
prelievo=0;
saldo=0;
scambioPre=0;
scambioDep=0;
}
//prendo in ingresso il saldo
public void setSaldo(float s){
saldo=s;
}
public float getSaldo(){
return saldo;
}
public float deposito(float d){
saldo+=d;
return deposito;
}
public float prelievo(float p){
if(saldo-p>=0){
saldo-=p;
}else{
JOptionPane.showMessageDialog(null,"Errore! Non hai abbastanza soldi per scambiare.\nIl tuo saldo attuale è di "+saldo+" euro.");
}
return prelievo;
}
public float scambioPrel(float scP){
if(saldo-scP>=0){
saldo-=scP;
}else{
JOptionPane.showMessageDialog(null,"Errore! Non hai abbastanza soldi per scambiare.\nIl tuo saldo attuale è di "+saldo+" euro.");
}
return scambioPre;
}
public float scambioDep(float scD){
saldo+=scD;
return scambioDep;
}
public String toString(){
String s="";
s+="Saldo: "+saldo+" euro.";
return s;
}
}
ContoCorrente2:
codice:
package ContoCorrente;
import javax.swing.JOptionPane;
public class ContoCorrente2{
private float deposito;
private float prelievo;
private float saldo;
private float scambioPre;
private float scambioDep;
public ContoCorrente2(){
deposito=0;
prelievo=0;
saldo=0;
scambioPre=0;
scambioDep=0;
}
//prendo in ingresso il saldo
public void setSaldo(float s){
saldo=s;
}
public float getSaldo(){
return saldo;
}
public float deposito(float d){
saldo+=d;
return deposito;
}
public float prelievo(float p){
if(saldo-p>=0){
saldo-=p;
}else{
JOptionPane.showMessageDialog(null,"Errore! Non hai abbastanza soldi per scambiare.\nIl tuo saldo attuale è di "+saldo+" euro.");
}
return prelievo;
}
public float scambioPrel(float scP){
if(saldo-scP>=0){
saldo-=scP;
}else{
JOptionPane.showMessageDialog(null,"Errore! Non hai abbastanza soldi per scambiare.\nIl tuo saldo attuale è di "+saldo+" euro.");
}
return scambioPre;
}
public float scambioDep(float scD){
saldo+=scD;
return scambioDep;
}
public String toString(){
String s="";
s+="Saldo: "+saldo+" euro.";
return s;
}
}
Grazie mille.. 