Extrato para caixa eletrônico em JAVA

Java

05/11/2017

Olá amigos gostaria de tirar uma dúvida com vocês. Fiz um pequeno programinha para caixa eletrônico que tem as opcões de saque/depósito/saldo. Eu gostaria de incluir a opção extrato, que pudesse ser visualizado os saques que foram realizados, os depósitos realizados e o saldo atual. Abaixo vou colocar meu código.

package meucaixaeletronico;
import java.util.Scanner;
public class MeuCaixaEletronico {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int option;
        double saldo = 0;        
        while (true) {
            imprimeMenu();
            option = sc.nextInt();
            if (option == 0) {
                break;
            }
            if (option == 1) {
                //3.1 imprimir saldo
                System.out.println(" Seu saldo é: $" + saldo);
            } else if (option == 2) {
                // 3.2 realizar saque
                System.out.println(" Informe um valor para saque: ");
                double saque = sc.nextDouble();
                if (saque <= 0) {
                    System.out.println(" O valor é inválido. ");
                } else if (saque > saldo) {
                    System.out.println(" Saldo insuficiente. ");
                } else {
                    System.out.println("$" + saque + " Sacado com sucesso. ");
                    saldo -= saque;
                }
            } else if (option == 3) {
                // 3.3 realizar deposito
                System.out.println(" Informe um valor para depósito: ");
                double deposito = sc.nextDouble();
                if (deposito <= 0) {
                    System.out.println(" O valor é inválido. ");
                } else {
                    System.out.println("$" + deposito + " Depositado com sucesso. ");
                    saldo += deposito;
                }
            } else {
                System.out.println(" Opção inválida, tente novamente. ");
            }
        }
        System.out.println(" Obrigado por escolher o banco FAT! ");
    }
    public static void imprimeLinha() {
        System.out.println(" ********** ");
    }
    public static void imprimeMenu() {
        imprimeLinha();
        System.out.println(" 1) Saldo: ");
        System.out.println(" 2) Saque: ");
        System.out.println(" 3) Depósito: ");
        System.out.println(" 0) SAIR. ");
        imprimeLinha();
    }
}
Emanuel

Emanuel

Curtidas 0

Respostas

Deivid Nascimento

Deivid Nascimento

05/11/2017

bom para isso você deve usar alguma lista tipo List<Operacao>operacoes; onde Operacao é uma classe que tem como atributo tipoDeOperacao,valor e saldo anterior e quando vc chamar a opção 2 ou 3 vc passa os tipoDeOperacao saque ou deposito, no fim vc cria uma opção de extrato que leia essa lista em ordem cronológica mostrando os dados de cada item da lista.
GOSTEI 0
Deivid Nascimento

Deivid Nascimento

05/11/2017

bom para isso você deve usar alguma lista tipo List<Operacao>operacoes; onde Operacao é uma classe que tem como atributo tipoDeOperacao,valor e saldo anterior e quando vc chamar a opção 2 ou 3 vc passa os tipoDeOperacao saque ou deposito, no fim vc cria uma opção de extrato que leia essa lista em ordem cronológica mostrando os dados de cada item da lista.


para isso voce deve saber como adicionar e ler essa lista https://www.devmedia.com.br/java-collections-set-list-e-iterator/29637
GOSTEI 0
Emanuel

Emanuel

05/11/2017

Podem fechar o tópico como resolvido, abaixo vou colocar a solução:

package cxeletronico;

import java.util.Scanner;
import java.util.ArrayList;
import java.util.List;

public class CXELETRONICO {

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        int option;
        double saldo = 0;
        List<String> extrato = new ArrayList<String>(); // variável extrato do tipo arraylist<string>
        extrato.add(" Saldo inicial: $"+ saldo); // acrescentando o saldo inicial, como primeiro registro da lista       

        while (true) {
            imprimeMenu();

            option = sc.nextInt();

            if (option == 0) {
                break;
            }

            if (option == 1) {
                //3.1 imprimir saldo
                System.out.println(" Seu saldo é: $" + saldo);

            } else if (option == 2) {
                // 3.2 realizar saque
                System.out.println(" Informe um valor para saque: ");
                double saque = sc.nextDouble();

                if (saque <= 0) {

                    System.out.println(" O valor é inválido. ");

                } else if (saque > saldo) {

                    System.out.println(" Saldo insuficiente. ");

                } else {
                    System.out.println("$" + saque + " Sacado com sucesso. ");
                    saldo -= saque;
                    extrato.add(" Saque de $" + saque); // adicionando na lista valor do saque

                }

            } else if (option == 3) {
                // 3.3 realizar deposito
                System.out.println(" Informe um valor para depósito: ");
                double deposito = sc.nextDouble();

                if (deposito <= 0) {
                    System.out.println(" O valor é inválido. ");

                } else {
                    System.out.println("$" + deposito + " Depositado com sucesso. ");
                    saldo += deposito;
                    extrato.add(" Depósito de $" + deposito); // adicionando valor do deposito
                }
                
            }else if (option == 4) {
                extrato.add(" Saldo atual: $"+ saldo);
                for(String string : extrato) { // percorrendo a lista com um for-each
                    System.out.println(string); // imprime cada String da lista
                }

            } else {

                System.out.println(" Opção inválida, tente novamente. ");
            }

        }
        System.out.println(" Obrigado por escolher o banco FAT! ");

    }

    public static void imprimeLinha() {

        System.out.println(" ********** ");

    }

    public static void imprimeMenu() {

        imprimeLinha();

        System.out.println(" 1) Saldo: ");

        System.out.println(" 2) Saque: ");

        System.out.println(" 3) Depósito: ");
        
        System.out.println(" 4) Extrato: ");

        System.out.println(" 0) SAIR. ");

        imprimeLinha();

    }

}
GOSTEI 0
POSTAR