1
resposta

[Projeto] [PROJETO] Conta Bancaria

Sinta-se a vontade para dar sugestões de melhoria.

import java.util.Random;
import java.util.Scanner;

public class ContaBancaria2 {
    public static void main(String ... args){
        //instanciando objetos
        Scanner leitura = new Scanner(System.in);
        Random gerador = new Random();
        //definindo variáveis
        double saldo = gerador.nextDouble(1000);
        System.out.println("Informe o nome de usuário:");
        String nomeUsuario = leitura.nextLine();
        boolean sistema = true;
        //tela inicial
        System.out.println("""
                ==========================================
                Tela inicial
                
                Olá %s, bem vindo ao Nosso Dinheiro
                
                Saldo atual: %.2f
                Tipo de conta: Corrente
                ==========================================
                """.formatted(nomeUsuario, saldo));
        //criando loop
        while(sistema){
            int opcao;
            double transferencias;
            System.out.println("""
                    Operações:
                    
                    1- Ver saldo
                    2- Receber dinheiro
                    3- Enviar dinheiro
                    4- Sair
                    ==========================================
                    """);
            opcao = leitura.nextInt();
            switch(opcao){
                case 1:
                    System.out.println("""
                            
                            Seu saldo atual é: R$ %.2f
                            
                            ==========================================
                            """.formatted(saldo));
                    break;
                case 2:
                    System.out.println("""
                            
                            Informe o valor que será recebido:
                            
                            """);
                    transferencias = leitura.nextDouble();
                    saldo += transferencias;
                    System.out.println("""
                            ==========================================
                            
                            Você recebeu: R$ %.2f
                            Saldo atual = R$ %.2f
                            
                            ==========================================
                            """.formatted(transferencias, saldo));
                    break;
                case 3:
                    System.out.println("""
                            
                            Informe o valor que será transferido:
                            
                            """);
                    transferencias = leitura.nextDouble();
                    if(transferencias < saldo) {
                        saldo -= transferencias;
                        System.out.println("""
                            ==========================================
                            
                            Você transferiu: R$ %.2f
                            Saldo atual = R$ %.2f
                            
                            ==========================================
                            """.formatted(transferencias, saldo));
                        break;
                    } else {
                        System.out.println("""
                            ==========================================
                            
                            Saldo insuficiente
                            Saldo atual = R$ %.2f
                            
                            ==========================================
                            """.formatted(saldo));
                    }
                    break;
                case 4:
                    sistema = false;
                    break;
            }
        }
    }
}
1 resposta

Olá, Gabriel! Parabéns pelo seu código, está bem estruturado e fácil de entender. Aqui vão algumas sugestões de melhorias:

  1. Encapsulamento: Você pode criar uma classe Conta separada com atributos privados como saldo, nomeUsuario e tipoConta. Isso ajudará a manter o código mais organizado e seguro.

  2. Métodos: Você pode criar métodos separados para cada operação como verSaldo(), receberDinheiro(double valor), enviarDinheiro(double valor) etc. Isso tornará seu código mais modular e reutilizável.

  3. Tratamento de exceções: É sempre uma boa prática tratar exceções. Por exemplo, você pode adicionar um tratamento de exceção para o caso em que o usuário insira um valor não numérico onde um número é esperado.

  4. Interface do usuário: Você pode melhorar a interface do usuário adicionando mais mensagens informativas e claras.

  5. Validações: Você pode adicionar mais validações, como verificar se o valor de transferência é negativo.

Aqui está um exemplo de como você poderia reestruturar seu código com algumas das sugestões acima:

import java.util.Random;
import java.util.Scanner;

public class Conta {
    private double saldo;
    private String nomeUsuario;
    private String tipoConta;

    public Conta(String nomeUsuario, double saldoInicial, String tipoConta) {
        this.nomeUsuario = nomeUsuario;
        this.saldo = saldoInicial;
        this.tipoConta = tipoConta;
    }

    public void verSaldo() {
        System.out.println("Seu saldo atual é: R$ " + saldo);
    }

    public void receberDinheiro(double valor) {
        if (valor > 0) {
            saldo += valor;
            System.out.println("Você recebeu: R$ " + valor);
            verSaldo();
        } else {
            System.out.println("Valor inválido. Tente novamente.");
        }
    }

    public void enviarDinheiro(double valor) {
        if (valor > 0 && valor <= saldo) {
            saldo -= valor;
            System.out.println("Você transferiu: R$ " + valor);
            verSaldo();
        } else {
            System.out.println("Saldo insuficiente ou valor inválido. Tente novamente.");
        }
    }
}

public class Main {
    public static void main(String[] args) {
        // Aqui você pode instanciar a classe Conta e usar seus métodos
    }
}

Espero ter ajudado e bons estudos!