Programma java

Zofen

Utente Attivo
608
33
Ciao a tutti, ho un problema con un programma in pratica dovrei registrare le operazioni di (prelievo, somma e lettura del saldo) in una terza classe.
Nella prima ho messo il menu per interagire con l'app.
Nella seconda classe ho inserito i metodi.
E nella terza che non ho creato deve esserci un costruttore che restituisce il tipo dell'operazione che si è eseguita in conto.
La classe conto deve avere i seguenti attributi:

saldo
Operazione [] operazioni (array di oggetti)
numop (numero operazioni corrente)

Quello che proprio non riesco a fare e salvare in questo array di oggetti che poi deve comunicare con la classe 3 "operazioni" tramite un costruttore, il tipo di operazione che si sta effettuando.
numop restituisce il numero dell'operazione corrente.
Vi allego qui il mio codice:


Codice:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
 
public class GestioneConto
{
    public static void main(String[] args)
    {
        int scelta = -1;
        BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));
        Conto conto = new Conto();
 
        do
        {
        	System.out.println("Benvenuto nel menu");
            System.out.println("1. Effettua un versamento");
            System.out.println("2. Effettua un prelievo");
            System.out.println("3. Visualizza il saldo");
            System.out.println("4. Visualizza operazioni effettuate");
            System.out.println("5. Esci");
 //eccezioni
            try
            {
                scelta = Integer.parseInt(bufferedReader.readLine());
            } catch (IOException e) {
                System.err.println("Inserisci un numero valido.");
            } catch (NumberFormatException e) {
                System.err.println("Inserisci un numero valido.");
            }
 
            
            switch (scelta)
            {
                case 1:
                    conto.versamento();
                    break;
                case 2:
                    conto.prelievo();
                    break;
                case 3:
                    conto.getsaldo();
                    break;
                case 4:
                    conto.visualizza();
                    break;
                case 5:
                   break;
                    
                default:
                    System.err.println("Scelta non valida.");
                    break;
            }
        } while (scelta != 5);
    }
}
Codice:
import java.util.Locale;
import java.util.Scanner;


public class Conto
{
    Scanner leggi = new Scanner(System.in).useLocale(Locale.US);;
	double saldo = 0;
    double importo = 0;
    int numop;
    
    Operazioni operazioni = new Operazioni();
    
	public void versamento()
	{
        try{
		System.out.println("Inserisci l'importo da versare: ");
        saldo = leggi.nextDouble();
        //passare operazione
        numop = 1;
        }catch(NumberFormatException e)
        {
        	System.err.println("Inserisci un importo valido");
        }
	}
	
	
	public void prelievo()
	{
		if(saldo <= 0)
		{
			System.err.println("Fondi insufficienti");
		}
		else
		{
		try
		{	
		System.out.println("Inserisci l'importo da prelevare: ");
	    importo = leggi.nextDouble();
	    saldo -= importo;
	    }catch(NumberFormatException e)
	    {
	    	System.err.println("Inserisci un importo valido");
	    }	
		}
	}
	
	public double getsaldo()
	{
		System.out.println("Il saldo corrente è: " + saldo + " €");
		return saldo;
	}
	
	public void visualizza()
	{
		
	}
}

Chi sa aiutarmi?
 

100ferhas

Nuovo Utente
31
5
da dilettante programmatore java da 4 giorni (quindi non seguire troppo i miei consigli :utonto:) ho preso spunto da tuo "bancomat" e l ho fatto anche io per esercitarmi. io ho semplicemente creato 2 contatori (uno per il prelievo e uno per il versamento) e 2 double che indicano quanto prelevato e quanto versato, poi quando richiamo le informazioni del conto ho uno switch che legge i contatori e si comporta di conseguenza. ti allego il codice:

Codice:
[COLOR=#0326CC][FONT=Monaco][COLOR=#931a68]    int [/COLOR]prelievi[COLOR=#000000] = 0;[/COLOR][/FONT][/COLOR]
[COLOR=#0326CC][FONT=Monaco][COLOR=#931a68]double [/COLOR]prelevato[COLOR=#000000] = 0;[/COLOR][/FONT][/COLOR]
[COLOR=#0326CC][FONT=Monaco][COLOR=#931a68]int [/COLOR]versamenti[COLOR=#000000] = 0;[/COLOR][/FONT][/COLOR]
[COLOR=#0326CC][FONT=Monaco][COLOR=#931a68]double [/COLOR]versato[COLOR=#000000] = 0;

        [/COLOR][COLOR=#931A68]public[/COLOR][COLOR=#931A68]void[/COLOR][COLOR=#222222] info() {[/COLOR][/FONT][/COLOR]

[FONT=Monaco]        [COLOR=#931a68]if[/COLOR] (([COLOR=#0326cc]versamenti[/COLOR]!=0) || ([COLOR=#0326cc]prelievi[/COLOR]!=0)) {[/FONT]

[COLOR=#0326CC][FONT=Monaco][COLOR=#931a68]switch[/COLOR][COLOR=#000000] ([/COLOR]versamenti[COLOR=#000000]) {[/COLOR][/FONT][/COLOR]

[FONT=Monaco]            [COLOR=#931a68]case[/COLOR] 1:[/FONT]
[COLOR=#3933FF][FONT=Monaco][COLOR=#000000]                System.[/COLOR][COLOR=#0326cc]out[/COLOR][COLOR=#000000].println([/COLOR]"Hai effettuato un versamento, ed hai versato sul tuo conto"[COLOR=#000000] +[/COLOR][COLOR=#0326cc]versato[/COLOR][COLOR=#000000]+[/COLOR]" €"[COLOR=#000000]);[/COLOR][/FONT][/COLOR]
[FONT=Monaco]                [COLOR=#931a68]break[/COLOR];[/FONT]
[FONT=Monaco]            [COLOR=#931a68]case[/COLOR] 2:[/FONT]
[FONT=Monaco]            [COLOR=#931a68]case[/COLOR] 3:[/FONT]
[FONT=Monaco]            [COLOR=#931a68]case[/COLOR] 4:[/FONT]
[FONT=Monaco]            [COLOR=#931a68]case[/COLOR] 5:[/FONT]
[COLOR=#3933FF][FONT=Monaco][COLOR=#000000]                System.[/COLOR][COLOR=#0326cc]out[/COLOR][COLOR=#000000].println([/COLOR]"Hai effettuato "[COLOR=#000000]+[/COLOR][COLOR=#0326cc]versamenti[/COLOR][COLOR=#000000]+[/COLOR]" versamenti, ed hai versato sul tuo conto "[COLOR=#000000]+[/COLOR][COLOR=#0326cc]versato[/COLOR][COLOR=#000000]+[/COLOR]" €"[COLOR=#000000]);[/COLOR][/FONT][/COLOR]
[FONT=Monaco]                [COLOR=#931a68]break[/COLOR];[/FONT]
[FONT=Monaco]            }[/FONT]


[FONT=Monaco]            [COLOR=#931a68]switch[/COLOR] ([COLOR=#0326cc]prelievi[/COLOR]) {[/FONT]

[FONT=Monaco]            [COLOR=#931a68]case[/COLOR] 1:[/FONT]
[COLOR=#3933FF][FONT=Monaco][COLOR=#000000]                System.[/COLOR][COLOR=#0326cc]out[/COLOR][COLOR=#000000].println([/COLOR]"Hai effettuato un prelievo, ed hai prelevato dal tuo conto "[COLOR=#000000] +[/COLOR][COLOR=#0326cc]prelevato[/COLOR][COLOR=#000000]+[/COLOR]" €"[COLOR=#000000]);[/COLOR][/FONT][/COLOR]
[FONT=Monaco]                [COLOR=#931a68]break[/COLOR];[/FONT]
[FONT=Monaco]            [COLOR=#931a68]case[/COLOR] 2:[/FONT]
[FONT=Monaco]            [COLOR=#931a68]case[/COLOR] 3:[/FONT]
[FONT=Monaco]            [COLOR=#931a68]case[/COLOR] 4:[/FONT]
[FONT=Monaco]            [COLOR=#931a68]case[/COLOR] 5:[/FONT]
[COLOR=#3933FF][FONT=Monaco][COLOR=#000000]                System.[/COLOR][COLOR=#0326cc]out[/COLOR][COLOR=#000000].println([/COLOR]"Hai effettuato "[COLOR=#000000]+[/COLOR][COLOR=#0326cc]prelievi[/COLOR][COLOR=#000000]+[/COLOR]" prelievi, ed hai prelevato dal tuo conto "[COLOR=#000000]+[/COLOR][COLOR=#0326cc]prelevato[/COLOR][COLOR=#000000]+[/COLOR]" €"[COLOR=#000000]);[/COLOR][/FONT][/COLOR]
[FONT=Monaco]                [COLOR=#931a68]break[/COLOR];[/FONT]
[FONT=Monaco]            }[/FONT]

[FONT=Monaco]        }[/FONT]


[FONT=Monaco]        [COLOR=#931a68]else[/COLOR] {[/FONT]

[COLOR=#3933FF][FONT=Monaco][COLOR=#000000]            System.[/COLOR][COLOR=#0326cc]err[/COLOR][COLOR=#000000].println([/COLOR]"Non hai effettuato alcun operazione!"[COLOR=#000000]);[/COLOR][/FONT][/COLOR]

[FONT=Monaco]        }[/FONT]
[COLOR=#0326CC][FONT=Monaco][COLOR=#000000]
[/COLOR][/FONT][/COLOR]

spero di esserti stato di aiuto e se c è qualche errore lo saprai meglio di me, ma di base funziona :luxhello::luxhello:
 

MarbaL

Nuovo Utente
55
11
Francamente non ho ben capito cosa tu stia cercando di fare, se magari puoi spiegarmi un po meglio cercherò di esserti più utile! :D
Per quel poco che ho capito comunque l'approccio che stai cercando di portare avanti è sbagliato... non ha molto senso un array di oggetti generici, personalmente farei più una serie di set.
 

100ferhas

Nuovo Utente
31
5
postate le vostre soluzioni potrebbero esserci comunque utili a chi sta imparando :utonto:

credo che voglia registrare le operazioni effettuate nel suo "bancomat", non so se il mio modo è giusto (ditemelo voi) ma funziona :figo: :lol:
 

MarbaL

Nuovo Utente
55
11
@100ferhas ho dato un'occhiata alla tua versione... ma.. manca un pezzo di codice? Perchè altrimenti non ho trovato il modo in cui ti interfacci con l'utente per alterare i valori delle tue variabili! Inoltre lo switch non si usa così!!! xD

Adesso non ho tempo ma più tardi, in serata spero, vedrò di buttare giù una mia versione commentata di quello che ho capito di questo accidenti di bancomat :)
 

100ferhas

Nuovo Utente
31
5
sisi manca un pezzo, ho solo aggiunto quello che serviva a lui :asd:

eccolo

Codice:
[COLOR=#931A68][FONT=Monaco]import[/FONT][/COLOR][FONT=Monaco] java.util.Scanner;[/FONT][FONT=Monaco][COLOR=#931a68]public[/COLOR] [COLOR=#931a68]class[/COLOR] ContoCorrente {[/FONT]
[FONT=Monaco]
[/FONT]
[FONT=Monaco]    [COLOR=#931a68]public[/COLOR] [COLOR=#931a68]static[/COLOR] [COLOR=#931a68]void[/COLOR] main(String[] args) {[/FONT]
[FONT=Monaco]        [/FONT]
[FONT=Monaco]        Operazioni operazioni = [COLOR=#931a68]new[/COLOR] Operazioni();[/FONT]
[FONT=Monaco]        Scanner leggi = [COLOR=#931a68]new[/COLOR] Scanner(System.[COLOR=#0326cc]in[/COLOR]);    [/FONT]
[FONT=Monaco]        [COLOR=#931a68]int[/COLOR] scelta;[/FONT]
[FONT=Monaco]        [/FONT]
[FONT=Monaco]        [COLOR=#931a68]do[/COLOR] {[/FONT]
[FONT=Monaco]            [/FONT]
[COLOR=#3933FF][FONT=Monaco][COLOR=#000000]        System.[/COLOR][COLOR=#0326cc]out[/COLOR][COLOR=#000000].println([/COLOR]"1. Visualizza Saldo"[COLOR=#000000]);[/COLOR][/FONT][/COLOR]
[FONT=Monaco]        System.[COLOR=#0326cc]out[/COLOR].println([COLOR=#3933ff]"2. Prelievo"[/COLOR]);[/FONT]
[FONT=Monaco]        System.[COLOR=#0326cc]out[/COLOR].println([COLOR=#3933ff]"3. Versamento"[/COLOR]);[/FONT]
[COLOR=#3933FF][FONT=Monaco][COLOR=#000000]        System.[/COLOR][COLOR=#0326cc]out[/COLOR][COLOR=#000000].println([/COLOR]"4. Informazioni sul conto"[COLOR=#000000]);[/COLOR][/FONT][/COLOR]
[FONT=Monaco]        System.[COLOR=#0326cc]out[/COLOR].println([COLOR=#3933ff]"5. Termina"[/COLOR]);[/FONT]
[FONT=Monaco]        [/FONT]
[FONT=Monaco]        scelta=leggi.nextInt();[/FONT]
[FONT=Monaco]        [/FONT]
[FONT=Monaco]            [COLOR=#931a68]switch[/COLOR] (scelta) {[/FONT]
[FONT=Monaco]        [/FONT]
[FONT=Monaco]        [COLOR=#931a68]case[/COLOR] 1:[/FONT]
[FONT=Monaco]            operazioni.saldo();[/FONT]
[COLOR=#931A68][FONT=Monaco][COLOR=#000000]            [/COLOR]break[COLOR=#000000];[/COLOR][/FONT][/COLOR]
[FONT=Monaco]        [COLOR=#931a68]case[/COLOR] 2:[/FONT]
[FONT=Monaco]            operazioni.prelievo();[/FONT]
[COLOR=#931A68][FONT=Monaco][COLOR=#000000]            [/COLOR]break[COLOR=#000000];[/COLOR][/FONT][/COLOR]
[FONT=Monaco]        [COLOR=#931a68]case[/COLOR] 3:[/FONT]
[FONT=Monaco]            operazioni.versamento();[/FONT]
[COLOR=#931A68][FONT=Monaco][COLOR=#000000]            [/COLOR]break[COLOR=#000000];[/COLOR][/FONT][/COLOR]
[FONT=Monaco]        [COLOR=#931a68]case[/COLOR] 4:[/FONT]
[FONT=Monaco]            operazioni.info();[/FONT]
[COLOR=#931A68][FONT=Monaco][COLOR=#000000]            [/COLOR]break[COLOR=#000000];[/COLOR][/FONT][/COLOR]
[FONT=Monaco]        [COLOR=#931a68]case[/COLOR] 5: [/FONT]
[COLOR=#931A68][FONT=Monaco][COLOR=#000000]            [/COLOR]break[COLOR=#000000];[/COLOR][/FONT][/COLOR]
[FONT=Monaco]        }[/FONT]
[FONT=Monaco]        } [COLOR=#931a68]while[/COLOR] (scelta!=5);    [/FONT]
[FONT=Monaco]
[/FONT]
[FONT=Monaco]    }[/FONT]
[FONT=Monaco]        [/FONT]
[FONT=Monaco]
[/FONT]
[FONT=Monaco]}[/FONT]

Codice:
[COLOR=#931A68][FONT=Monaco]import[/FONT][/COLOR][FONT=Monaco] java.util.Scanner;[/FONT][FONT=Monaco]
[/FONT]
[FONT=Monaco][COLOR=#931a68]public[/COLOR] [COLOR=#931a68]class[/COLOR] Operazioni {[/FONT]
[FONT=Monaco]    [/FONT]
[FONT=Monaco]    Scanner [COLOR=#0326cc]leggi[/COLOR] = [COLOR=#931a68]new[/COLOR] Scanner(System.[COLOR=#0326cc]in[/COLOR]);[/FONT]
[FONT=Monaco]    [/FONT]
[COLOR=#931A68][FONT=Monaco][COLOR=#000000]    [/COLOR]double[COLOR=#0326cc]valore[/COLOR][COLOR=#000000];[/COLOR][/FONT][/COLOR]
[FONT=Monaco]    [COLOR=#931a68]double[/COLOR] [COLOR=#0326cc]credito[/COLOR] = 0;[/FONT]
[COLOR=#0326CC][FONT=Monaco][COLOR=#000000]    [/COLOR][COLOR=#931a68]int[/COLOR]prelievi[COLOR=#000000] = 0;[/COLOR][/FONT][/COLOR]
[COLOR=#0326CC][FONT=Monaco][COLOR=#000000]    [/COLOR][COLOR=#931a68]double[/COLOR]prelevato[COLOR=#000000] = 0;[/COLOR][/FONT][/COLOR]
[COLOR=#0326CC][FONT=Monaco][COLOR=#000000]    [/COLOR][COLOR=#931a68]int[/COLOR]versamenti[COLOR=#000000] = 0;[/COLOR][/FONT][/COLOR]
[FONT=Monaco]    [COLOR=#931a68]double[/COLOR] [COLOR=#0326cc]versato[/COLOR] = 0;[/FONT]
[FONT=Monaco]    [/FONT]
[FONT=Monaco]    [/FONT]
[FONT=Monaco]
[/FONT]
[FONT=Monaco]
[/FONT]
[FONT=Monaco]    [COLOR=#931a68]public[/COLOR] [COLOR=#931a68]void[/COLOR] saldo() {[/FONT]
[FONT=Monaco]        [/FONT]
[COLOR=#3933FF][FONT=Monaco][COLOR=#000000]        System.[/COLOR][COLOR=#0326cc]err[/COLOR][COLOR=#000000].println([/COLOR]"il tuo saldo è di "[COLOR=#000000]+[/COLOR][COLOR=#0326cc]credito[/COLOR][COLOR=#000000]+[/COLOR]" €"[COLOR=#000000]);[/COLOR][/FONT][/COLOR]
[FONT=Monaco]        [/FONT]
[FONT=Monaco]    }[/FONT]
[FONT=Monaco]    [/FONT]
[FONT=Monaco]    [COLOR=#931a68]public[/COLOR] [COLOR=#931a68]void[/COLOR] prelievo() {[/FONT]
[FONT=Monaco]        [/FONT]
[COLOR=#3933FF][FONT=Monaco][COLOR=#000000]        System.[/COLOR][COLOR=#0326cc]out[/COLOR][COLOR=#000000].println([/COLOR]"Inserisci importo da prelevare"[COLOR=#000000]);[/COLOR][/FONT][/COLOR]
[FONT=Monaco]        [COLOR=#0326cc]valore[/COLOR]=[COLOR=#0326cc]leggi[/COLOR].nextDouble();[/FONT]
[FONT=Monaco]            [COLOR=#931a68]if[/COLOR] ([COLOR=#0326cc]credito[/COLOR] - [COLOR=#0326cc]valore[/COLOR] <= 0) {[/FONT]
[COLOR=#3933FF][FONT=Monaco][COLOR=#000000]                System.[/COLOR][COLOR=#0326cc]err[/COLOR][COLOR=#000000].println([/COLOR]"Non hai abbastanza fondi"[COLOR=#000000]);[/COLOR][/FONT][/COLOR]
[FONT=Monaco]                }[/FONT]
[FONT=Monaco]            [COLOR=#931a68]else[/COLOR] {[/FONT]
[COLOR=#0326CC][FONT=Monaco][COLOR=#000000]                [/COLOR]credito[COLOR=#000000] = [/COLOR]credito[COLOR=#000000]-[/COLOR]valore[COLOR=#000000];[/COLOR][/FONT][/COLOR]
[COLOR=#3933FF][FONT=Monaco][COLOR=#000000]                System.[/COLOR][COLOR=#0326cc]out[/COLOR][COLOR=#000000].println([/COLOR]"Hai appena Prelevato "[COLOR=#000000]+[/COLOR][COLOR=#0326cc]valore[/COLOR][COLOR=#000000]+[/COLOR]" € , il tuo saldo è di "[COLOR=#000000]+[/COLOR][COLOR=#0326cc]credito[/COLOR][COLOR=#000000]+[/COLOR]" €"[COLOR=#000000]);[/COLOR][/FONT][/COLOR]
[COLOR=#0326CC][FONT=Monaco][COLOR=#000000]                [/COLOR]prelievi[COLOR=#000000]=[/COLOR]prelievi[COLOR=#000000] + 1;[/COLOR][/FONT][/COLOR]
[COLOR=#0326CC][FONT=Monaco][COLOR=#000000]                [/COLOR]prelevato[COLOR=#000000] = [/COLOR]prelevato[COLOR=#000000] + [/COLOR]valore[COLOR=#000000];[/COLOR][/FONT][/COLOR]
[FONT=Monaco]            }[/FONT]
[FONT=Monaco]    }[/FONT]
[FONT=Monaco]
[/FONT]
[FONT=Monaco]    [COLOR=#931a68]public[/COLOR] [COLOR=#931a68]void[/COLOR] versamento() {[/FONT]
[COLOR=#3933FF][FONT=Monaco][COLOR=#000000]        System.[/COLOR][COLOR=#0326cc]out[/COLOR][COLOR=#000000].println([/COLOR]"Inserisci importo da versare"[COLOR=#000000]);[/COLOR][/FONT][/COLOR]
[FONT=Monaco]        [COLOR=#0326cc]valore[/COLOR]=[COLOR=#0326cc]leggi[/COLOR].nextDouble();[/FONT]
[COLOR=#0326CC][FONT=Monaco][COLOR=#000000]        [/COLOR]credito[COLOR=#000000]= [/COLOR]credito[COLOR=#000000]+[/COLOR]valore[COLOR=#000000];[/COLOR][/FONT][/COLOR]
[COLOR=#3933FF][FONT=Monaco][COLOR=#000000]        System.[/COLOR][COLOR=#0326cc]out[/COLOR][COLOR=#000000].println([/COLOR]"Hai appena versato "[COLOR=#000000]+[/COLOR][COLOR=#0326cc]valore[/COLOR][COLOR=#000000]+[/COLOR]" € , il tuo saldo è di "[COLOR=#000000]+[/COLOR][COLOR=#0326cc]credito[/COLOR][COLOR=#000000]+[/COLOR]" €"[COLOR=#000000]);[/COLOR][/FONT][/COLOR]
[COLOR=#0326CC][FONT=Monaco][COLOR=#000000]        [/COLOR]versamenti[COLOR=#000000]= [/COLOR]versamenti[COLOR=#000000] + 1;[/COLOR][/FONT][/COLOR]
[COLOR=#0326CC][FONT=Monaco][COLOR=#000000]        [/COLOR]versato[COLOR=#000000] = [/COLOR]versato[COLOR=#000000] + [/COLOR]valore[COLOR=#000000];[/COLOR][/FONT][/COLOR]
[FONT=Monaco]    }[/FONT]
[FONT=Monaco]    [/FONT]
[FONT=Monaco]    [COLOR=#931a68]public[/COLOR] [COLOR=#931a68]void[/COLOR] info() {[/FONT]
[FONT=Monaco]        [/FONT]
[FONT=Monaco]        [COLOR=#931a68]if[/COLOR] (([COLOR=#0326cc]versamenti[/COLOR]!=0) || ([COLOR=#0326cc]prelievi[/COLOR]!=0)) {[/FONT]
[FONT=Monaco]            [/FONT]
[COLOR=#0326CC][FONT=Monaco][COLOR=#000000]            [/COLOR][COLOR=#931a68]switch[/COLOR][COLOR=#000000] ([/COLOR]versamenti[COLOR=#000000]) {[/COLOR][/FONT][/COLOR]
[FONT=Monaco]            [/FONT]
[FONT=Monaco]            [COLOR=#931a68]case[/COLOR] 1:[/FONT]
[COLOR=#3933FF][FONT=Monaco][COLOR=#000000]                System.[/COLOR][COLOR=#0326cc]out[/COLOR][COLOR=#000000].println([/COLOR]"Hai effettuato un versamento, ed hai versato sul tuo conto "[COLOR=#000000] +[/COLOR][COLOR=#0326cc]versato[/COLOR][COLOR=#000000]+[/COLOR]" €"[COLOR=#000000]);[/COLOR][/FONT][/COLOR]
[FONT=Monaco]                [COLOR=#931a68]break[/COLOR];[/FONT]
[FONT=Monaco]            [COLOR=#931a68]case[/COLOR] 2:[/FONT]
[FONT=Monaco]            [COLOR=#931a68]case[/COLOR] 3:[/FONT]
[FONT=Monaco]            [COLOR=#931a68]case[/COLOR] 4:[/FONT]
[FONT=Monaco]            [COLOR=#931a68]case[/COLOR] 5:[/FONT]
[COLOR=#3933FF][FONT=Monaco][COLOR=#000000]                System.[/COLOR][COLOR=#0326cc]out[/COLOR][COLOR=#000000].println([/COLOR]"Hai effettuato "[COLOR=#000000]+[/COLOR][COLOR=#0326cc]versamenti[/COLOR][COLOR=#000000]+[/COLOR]" versamenti, ed hai versato sul tuo conto "[COLOR=#000000]+[/COLOR][COLOR=#0326cc]versato[/COLOR][COLOR=#000000]+[/COLOR]" €"[COLOR=#000000]);[/COLOR][/FONT][/COLOR]
[FONT=Monaco]                [COLOR=#931a68]break[/COLOR];[/FONT]
[FONT=Monaco]            }[/FONT]
[FONT=Monaco]            [/FONT]
[FONT=Monaco]            [/FONT]
[FONT=Monaco]            [COLOR=#931a68]switch[/COLOR] ([COLOR=#0326cc]prelievi[/COLOR]) {[/FONT]
[FONT=Monaco]            [/FONT]
[FONT=Monaco]            [COLOR=#931a68]case[/COLOR] 1:[/FONT]
[COLOR=#3933FF][FONT=Monaco][COLOR=#000000]                System.[/COLOR][COLOR=#0326cc]out[/COLOR][COLOR=#000000].println([/COLOR]"Hai effettuato un prelievo, ed hai prelevato dal tuo conto "[COLOR=#000000] +[/COLOR][COLOR=#0326cc]prelevato[/COLOR][COLOR=#000000]+[/COLOR]" €"[COLOR=#000000]);[/COLOR][/FONT][/COLOR]
[FONT=Monaco]                [COLOR=#931a68]break[/COLOR];[/FONT]
[FONT=Monaco]            [COLOR=#931a68]case[/COLOR] 2:[/FONT]
[FONT=Monaco]            [COLOR=#931a68]case[/COLOR] 3:[/FONT]
[FONT=Monaco]            [COLOR=#931a68]case[/COLOR] 4:[/FONT]
[FONT=Monaco]            [COLOR=#931a68]case[/COLOR] 5:[/FONT]
[COLOR=#3933FF][FONT=Monaco][COLOR=#000000]                System.[/COLOR][COLOR=#0326cc]out[/COLOR][COLOR=#000000].println([/COLOR]"Hai effettuato "[COLOR=#000000]+[/COLOR][COLOR=#0326cc]prelievi[/COLOR][COLOR=#000000]+[/COLOR]" prelievi, ed hai prelevato dal tuo conto "[COLOR=#000000]+[/COLOR][COLOR=#0326cc]prelevato[/COLOR][COLOR=#000000]+[/COLOR]" €"[COLOR=#000000]);[/COLOR][/FONT][/COLOR]
[FONT=Monaco]                [COLOR=#931a68]break[/COLOR];[/FONT]
[FONT=Monaco]            }[/FONT]
[FONT=Monaco]            [/FONT]
[FONT=Monaco]        }[/FONT]
[FONT=Monaco]        [/FONT]
[FONT=Monaco]        [/FONT]
[FONT=Monaco]        [COLOR=#931a68]else[/COLOR] {[/FONT]
[FONT=Monaco]            [/FONT]
[COLOR=#3933FF][FONT=Monaco][COLOR=#000000]            System.[/COLOR][COLOR=#0326cc]err[/COLOR][COLOR=#000000].println([/COLOR]"Non hai effettuato alcun operazione!"[COLOR=#000000]);[/COLOR][/FONT][/COLOR]
[FONT=Monaco]            [/FONT]
[FONT=Monaco]        }[/FONT]
[FONT=Monaco]        [/FONT]
[FONT=Monaco]    }[/FONT]
[FONT=Monaco]    [/FONT]
[FONT=Monaco]    [/FONT]
[FONT=Monaco]}[/FONT]
 

MarbaL

Nuovo Utente
55
11
Ok, ho riscritto il programma mettendo un po' apposto il codice (adeguandolo peraltro agli standard Java). Sinceramente non ho trovato alcuna utilità nel creare una terza classe "Operazioni"... a onor del vero, data la semplicità dell'applicazione, due classi sono anche inutili! Così come strutturato, abbiamo semplicemente spostato metodi su un altro file senza poter sfruttare le potenzialità dell'OOP. (e questo probabilmente l'ho dedotto perchè non ho ben capito cosa voleva esattamente fare l'autore della discussione!)

Comunque, ecco il codice:

Main:
Codice:
package bancomat;

import java.io.BufferedReader;
import java.io.InputStreamReader;
 
public class GestioneConto{

    public static void main(String[] args){    
    
        int scelta = -1;
        BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
        Conto conto = new Conto(); 
        do{        
            try{            
                System.out.println("Benvenuto nel menu");
                System.out.println("1. Effettua un versamento");
                System.out.println("2. Effettua un prelievo");
                System.out.println("3. Visualizza il saldo");
                System.out.println("4. Visualizza operazioni effettuate");
                System.out.println("5. Esci");           
                
                switch (Integer.parseInt(in.readLine())){  
                    case 1:                        
                        System.out.println("Inserisci l'importo da versare: ");
                        conto.versamento(Double.parseDouble(in.readLine()));
                        break;
                    case 2:
                        System.out.println("Inserisci l'importo da prelevare");
                        conto.prelievo(Double.parseDouble(in.readLine()));
                        break;
                    case 3:
                        System.out.println(conto.getSaldo());
                        break;
                    case 4:
                        System.out.println(conto.getNumOp());
                        break;
                    case 5:
                        System.exit(0);
                        break;                        
                    default:
                        System.err.println("Scelta non valida.");
                        break;
                }                        
            } catch (Exception e) {
                System.err.println("*Errore {1}* : Inserimento non valido.");
                continue;
            } 
        } while (scelta != 5);
    }
}

Classe Conto:

Codice:
package bancomat;


public class Conto {
    
    private double saldo = 0;
    private int numOp=0;
    
    public Conto(){
        
    }
    
    public void versamento(double cashDaVersare){
        saldo+=cashDaVersare;
        numOp++;
    }
    
    public void prelievo(double cashDaPrelevare){
        if(cashDaPrelevare>saldo){
            System.err.println("*Errore {2} *: Credito Insufficente");
        }else{
            saldo-=cashDaPrelevare;
            numOp++;
        }
    }
    
    public double getSaldo(){
        return saldo;
    }
    
    public int getNumOp(){
        return numOp;
    }
}

Resto a disposizione per qualsiasi dubbio/chiarimento. :)
 
Ultima modifica:

MarbaL

Nuovo Utente
55
11
Beh ma il metodo getNumOp(), per l'appunto, ritorna il numero di operazioni effettuate... Se si vuole sapere anche quali, invece di creare una variabile unica numOp, è sufficente crearne due distinte.. magari numPrelievi e numVersamenti con i corrispondenti getNumPrelievi() e getNumVersamenti() ... ;)
 

Ci sono discussioni simili a riguardo, dai un'occhiata!

Entra

oppure Accedi utilizzando
Discord Ufficiale Entra ora!

Discussioni Simili