2
respostas

Desafio 4 - Banco Alura

Vou deixar o desafio em 2 partes, quem puder copiar o código na sua maquina e rodar ele para me dar um feedback eu agradeço muito.

Parte 1:

package Desafio;

    import java.util.Scanner;

    public class BancoAlura {
        public static  void main(String[] args) {

            Scanner caixaDeTexto = new Scanner(System.in);

            //Contador do numero de contas criadas
            int numeroDeContas = 1;

            //Array que guarda os nomes dos clientes
            String[] Nomes = new String[5];

            //Array que guarda o numero das contas
            int[] Contas = new int[5];

            //Array que guarda os saldos das contas
            double[] Saldos = new double[5];

            //Variavel usada para pausar o código em certos lugares
            int numeroZero;

            int opcaoDigitada = 0;

            System.out.println("** BEM-VINDO AO BANCO ALURA **");
            System.out.println("");

            while (opcaoDigitada != 3) {

                String menuInicial = """
                        ** Menu **

                        1 - Criar conta
                        2 - Acessar conta
                        3 - Sair
                        """;
                System.out.println(menuInicial);

                System.out.print("Digite sua opção: ");
                opcaoDigitada = caixaDeTexto.nextInt();

                //Exibindo de acordo com a opção escolhida
                if (opcaoDigitada == 1) {
                    System.out.println("");
                    System.out.print("Digite o nome do titular da conta: ");
                    String nomeDoTitular = caixaDeTexto.next();

                    Nomes[numeroDeContas] = nomeDoTitular;
                    Contas[numeroDeContas] = numeroDeContas;

                    System.out.println("");

                    String mensagem = """
                            *** Conta criada com sucesso *** 

                            Nome do titular: %s
                            Numero da conta: %d""".formatted(Nomes[numeroDeContas], numeroDeContas);
                    System.out.println(mensagem);

                    System.out.println("");

                    //Pausa localizada
                    System.out.print("Pressione 0 para continuar:  ");
                    numeroZero = caixaDeTexto.nextInt();

                    //Incremento para o contador numerico de contas
                    numeroDeContas++;

                } else if (opcaoDigitada == 2) {

                    System.out.print("Digite o numero da sua conta: ");
                    int numeroConta = caixaDeTexto.nextInt();

                    if (numeroConta == Contas[numeroConta]) {

                        //Vasculhando o array para exibir os dados da conta
                        for (int i = 1; i < Contas.length; i++) {
                            System.out.println("");
                            if (numeroConta == Contas[i]) {
                                String dados = """
                                        Nome do titular: %s 
                                        Numero da Conta: %d
                                        Saldo Atual: %.2f
                                        """.formatted(Nomes[i], Contas[i], Saldos[i]);

                                System.out.println("Login efetuado com sucesso!");
                                System.out.println("");

                                //Exibindo os dados da conta
                                System.out.println(dados);

                                System.out.println("Qual operação deseja realizar hoje " + Nomes[i] + "?");
                                System.out.println("");
                                System.out.println("1 - Depositar valor");
                                System.out.println("2 - Transferir valor");
                                System.out.println("3 - Sair");
                                System.out.print("Digite sua opção de operação: ");
                                int opcaoOperacao = caixaDeTexto.nextInt();
                                
                                //Realizando as operações

Garanta sua matrícula hoje e ganhe + 2 meses grátis

Continue sua jornada tech com ainda mais tempo para aprender e evoluir

Quero aproveitar agora
2 respostas

É só copiar e colar a parte 2 abaixo do "//Realizando as operações" do código acima

Parte 2:

    switch (opcaoOperacao) {
                                    case 1:
                                        System.out.print("Digite o valor que deseja depositar: R$");
                                        double valorDeposito = caixaDeTexto.nextDouble();

                                        Saldos[i] = Saldos[i] + valorDeposito;

                                        System.out.println("");
                                        System.out.println("Valor depositao com sucesso!");
                                        System.out.println("Novo saldo da sua conta: R$" + Saldos[i]);

                                        //Pausa localizada
                                        System.out.print("Pressione 0 para continuar:  ");
                                        numeroZero = caixaDeTexto.nextInt();

                                        break;
                                    case 2:
                                        System.out.print("Digite o valor que deseja transferir: R$");
                                        double valorTransferido = caixaDeTexto.nextDouble();

                                        //Verificando se existe saldo suficiente na conta para a transferência

                                        //Se não existir:
                                        if (valorTransferido > Saldos[i]) {
                                            System.out.println("Você não possui saldo suficiente para realizar essa transferência");
                                            System.out.println("Saldo atual da sua conta: R$" + Saldos[i]);
                                            break;

                                          //Caso exista saldo suficiente ↓:
                                        } else {

                                            //Debitando da conta pagadora
                                            Saldos[i] = Saldos[i] - valorTransferido;

                                            //Perguntando o numero da conta que vai receber a transferência
                                            System.out.print("Digite o numero da conta que vai receber a transferencia: ");
                                            int contaDestino = caixaDeTexto.nextInt();

                                            //Verificando se o numero da conta de destino está correto
                                            if (contaDestino == Contas[contaDestino]) {

                                                //Depositando na conta que vai receber a transferência
                                                Saldos[contaDestino] = Saldos[contaDestino] + valorTransferido;

                                                System.out.println("Transferência realizada com sucesso!");
                                                System.out.println("");
                                                System.out.println("** Dados do recebedor **");
                                                System.out.println("Nome: " + Nomes[contaDestino]);
                                                System.out.println("Valor recebido: " + valorTransferido);
                                                System.out.println("");

                                                System.out.println("Novo saldo da sua conta: " + Saldos[i]);

                                                //Pausa localizada
                                                System.out.print("Pressione 0 para continuar:  ");
                                                numeroZero = caixaDeTexto.nextInt();
                                                break;
                                            } else {
                                                System.out.println("Numero da conta destino não localizada, a transferência será cancelada...");
                                            }

                                        }
                                    case 3:
                                        System.out.println("Logout efetuado!");
                                        break;
                                }
                            }
                        }
                    } else {
                        System.out.println("Conta não encontrada ou Numero de conta errado.");
                    }
                } else if (opcaoDigitada == 3) {
                    System.out.println("Saindo do programa...");
                    break;
                } else {
                    System.out.println("Você digitou uma opção inválida, tente novamente.");
                }
            }
                caixaDeTexto.close();
        }
    }

Eu adicionei algumas coisas a mais ao desafio como criação de conta (limitadas a 5 para fins de teste), e transferência de valores entre as contas criadas. Até que não foi muito difícil de fazer isso usando apenas as estruturas de dados :D

Bom dia, Jefferson! Tudo bem?

Dei uma olhada no seu código e ele está bem organizado e condizente com o que foi passado pelo instrutor, e isso mostra o seu comprometimento com o curso.

Caso surjam quaisquer dúvidas eu estarei à sua disposição.

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!