Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

[Projeto] projetoConta

Pessoal, boa tarde. Deixo meu código como forma de contribuição e também dicas para melhorá-lo.

import java.util.Scanner;

public class Conta {

public static void main(String[] args) {

    //setting
    Scanner leitura = new Scanner(System.in);
    String dados;
    String menu;
    double valor = 0;
    double saldoInicial = 0;
    double saldoTotal = 0;
    double sacar = 0;
    int contador = 0;
    int sair = 1;


    //Entrada de dados
    //Inicializando os dados do cliente
    System.out.println("Digite o nome do cliente: ");
    String nomeCliente = leitura.nextLine();

    System.out.println("Digite o tipo de conta: ");
    String tipoConta = leitura.nextLine();

    System.out.println("Digite o saldo da conta: ");
    saldoInicial = leitura.nextDouble();
    saldoTotal = saldoInicial;
    dados = """
            
            Dados iniciais do cliente:
            
            Nome: %s
            Tipo de conta: %s
            Saldo: %.2f
        
            """.formatted(nomeCliente,tipoConta,saldoInicial);
    System.out.println(dados);

    //processamento
    while(sair == 1) {
        System.out.println("Deseja fazendo alguma operação? Seguem as opções abaixo: ");
        menu = """
                1 - Consultar saldo 
                2 - Receber valor
                3 - Transferir valor
                4 - Sair
                """;
        System.out.println(menu);
        System.out.println("Escolha uma opção: ");
        int escolha = leitura.nextInt();

        if (escolha == 1) {

            if (saldoTotal > 0) {
                System.out.println(saldoTotal);
            }else {

                System.out.println(saldoInicial);
            }

        } else if (escolha == 2) {

            System.out.println("Digite o valor que deseja depositar: ");
            valor = leitura.nextDouble();
            saldoTotal = saldoTotal+valor;
            System.out.println("Valor depositado com sucesso!");
            System.out.println("Seu saldo agora é %.2f".formatted(saldoTotal));

        } else if (escolha == 3) {

            System.out.println("Digite o valor que deseja sacar ou transferir: ");
            sacar = leitura.nextDouble();
            if (sacar > saldoTotal){
                System.out.println("Operação inválida. Valor acima do saldo atual, tente outr valor.");
            } else {
                saldoTotal = saldoTotal - sacar;
                System.out.println("Valor sacado/transferido com sucesso!");
                System.out.println("Seu saldo agora é %.2f".formatted(saldoTotal));
            }
        } else if (escolha == 4) {

            break;

        }
        contador ++;
    }

    System.out.println("Foram feitas %d operação(ões) em sua conta.".formatted(contador));
}

}

2 respostas
solução!

Oi, Ramiro! Tudo bem?

Parabéns pelo desenvolvimento do código, ficou super bacana! Obrigada por ter compartilhado o seu trabalho com a gente, tenho certeza que irá inspirar e ajudar muitos colegas em seus projetos!

Deixo como sugestão de melhoria alguns conceitos que podemos aplicar sempre ao nosso código, além da sugestão de estudo sobre Programação Orientada a Objetos, muito associada à linguagem Java, onde podemos encontrar os conceitos apresentados abaixo:

  1. Encapsulamento: Podemos observar que no código as variáveis estão sendo declaradas e manipuladas diretamente no método main. Entretanto, é uma boa prática em Java criar uma classe separada para lidar com os dados do cliente e as operações da conta. Por exemplo, poderiamos ter uma classe Cliente com atributos como nome, tipoConta e saldo e métodos para depositar, sacar e transferir dinheiro.

  2. Tratamento de erros: No código, estamos assumindo que o usuário sempre fornecerá uma entrada válida, no entanto, isso nem sempre é o caso. Por exemplo, o usuário pode digitar uma string quando um número é esperado. Uma boa prática é adicionar algum tipo de tratamento de erros para lidar com entradas inválidas.

Aqui está um exemplo de como poderíamos refatorar o código:

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

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

    public void depositar(double valor) {
        // lógica para depositar dinheiro
    }

    public void sacar(double valor) {
        // lógica para sacar dinheiro
    }

    // outros métodos...
}

public class Main {
    public static void main(String[] args) {
        // lógica para criar uma nova conta e interagir com o usuário
    }
}

Todavia, esses são conceitos que aprimoramos ao longo da nossa jornada de estudos, pode ficar tranquilo!

Somado a isso, caso tenha ficado alguma dúvida, sinta-se à vontade em comunicar, estou à disposição!

Espero ter ajudado!

Um forte abraço e bons estudos!

Caso este post tenha te ajudado, por favor, marcar como solucionado ✓

Sarah, boa tarde.

Agradeço muito pela dica! Estou começando agora em Java, porém, criei um outro projeto para tentar fazer dessa forma a qual me orientou. Muito obrigado!