1
resposta

Projeto final do desafio

//CLASSE PRINCIPAL

import java.util.Scanner;

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

        Scanner sc = new Scanner(System.in);
        Cliente cliente = new Cliente("Enio Reis", "Corrente", 2500);


            System.out.println("""
                    ********************************************************
                    Dados inicias do cliente:                
                    """);

            System.out.printf("Nome:                   %s\n", cliente.getNomeCliente());
            System.out.printf("Tipo de conta:          %s\n", cliente.getTipoConta());
            System.out.printf("Saldo inicial:          R$ %.2f\n", cliente.getSaldo());

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

            boolean validador = true;
            while (validador) {

                System.out.println("""
                       
                       Operações:
                    
                    1 - Consultar saldos
                    2 - Receber valor
                    3 - Trasnferir valor
                    4 - Sacar valor
                    5 - Sair
                    
                    Digite a opção desejada:
                    """);

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

            int opcao = sc.nextInt();
            if (opcao == 5){
                System.out.println("Thau!");
                break;
            }else {
                cliente.getMenu(opcao);
            }
        }

    }
}


//CLASSE PARA CRIAÇÃO DO CLIENTE

import java.util.Scanner;

public class Cliente {

    Scanner sc = new Scanner(System.in);

    private String nomeCliente;
    private String tipoConta;
    private double saldo;

    public Cliente(){}



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

    public String getNomeCliente() {
        return nomeCliente;
    }
    public String getTipoConta() {
        return tipoConta;
    }

    public double getSaldo() {
        return saldo;
    }

    public void Depositar(double saldoInicial) {
        this.saldo += saldoInicial;
    }

    public void Sacar(double valor){

        if (valor < this.saldo){
            System.out.println("Saldo insuficiente!");
        }else {
            this.saldo -= valor;
        }
    }

    public void Transferir(double valor){
        if (valor < this.saldo){
            System.out.println("Saldo insuficiente!");
        }else {
            this.saldo -= valor;
        }
    }

    public void getMenu(int opcao){
        switch (opcao) {
            case 1:
                System.out.print("Seu saldo: ");
                System.out.printf("R$ %.2f \n.", this.getSaldo());
                break;
            case 2:
                System.out.println("Digite o valor: ");
                this.Depositar(sc.nextDouble());
                System.out.printf("Saldo atual: R$ %.2f \n.", this.getSaldo());
                break;
            case 3:
                System.out.println("Digite o valor a transferir: ");
                this.Transferir(sc.nextDouble());
                System.out.printf("Valor transferido. Saldo atual: R$ %.2f \n.", this.getSaldo());
                break;
            case 4:
                System.out.println("Digite o valor a sacar: ");
                this.Sacar(sc.nextDouble());
                System.out.printf("Valor sacado. Saldo atual: R$ %.2f \n.", this.getSaldo());
                break;

            default:
                System.out.println("Opção Invalida!");
                break;
        }

    }
}
1 resposta

Olá, Enio, tudo bem?

Seu código está bem estruturado, só notei alguns pontos que podem ser ajustados para garantir que ele funcione corretamente:

  • Os métodos Sacar e Transferir estão verificando se o valor é menor que o saldo para exibir a mensagem de saldo insuficiente. O correto seria verificar se o valor é maior que o saldo.

  • É uma boa prática fechar o Scanner após o uso para evitar vazamentos de recursos.

Código ajustado:

import java.util.Scanner;

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

        Scanner sc = new Scanner(System.in);
        Cliente cliente = new Cliente("Enio Reis", "Corrente", 2500);

        System.out.println("""
                ********************************************************
                Dados inicias do cliente:                
                """);

        System.out.printf("Nome:                   %s\n", cliente.getNomeCliente());
        System.out.printf("Tipo de conta:          %s\n", cliente.getTipoConta());
        System.out.printf("Saldo inicial:          R$ %.2f\n", cliente.getSaldo());

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

        boolean validador = true;
        while (validador) {

            System.out.println("""
                   
                   Operações:
                
                1 - Consultar saldos
                2 - Receber valor
                3 - Transferir valor
                4 - Sacar valor
                5 - Sair
                
                Digite a opção desejada:
                """);

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

            int opcao = sc.nextInt();
            if (opcao == 5) {
                System.out.println("Thau!");
                validador = false;
            } else {
                cliente.getMenu(opcao);
            }
        }

        sc.close();
    }
}

// CLASSE PARA CRIAÇÃO DO CLIENTE

import java.util.Scanner;

public class Cliente {

    Scanner sc = new Scanner(System.in);

    private String nomeCliente;
    private String tipoConta;
    private double saldo;

    public Cliente() {}

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

    public String getNomeCliente() {
        return nomeCliente;
    }

    public String getTipoConta() {
        return tipoConta;
    }

    public double getSaldo() {
        return saldo;
    }

    public void Depositar(double saldoInicial) {
        this.saldo += saldoInicial;
    }

    public void Sacar(double valor) {
        if (valor > this.saldo) {
            System.out.println("Saldo insuficiente!");
        } else {
            this.saldo -= valor;
        }
    }

    public void Transferir(double valor) {
        if (valor > this.saldo) {
            System.out.println("Saldo insuficiente!");
        } else {
            this.saldo -= valor;
        }
    }

    public void getMenu(int opcao) {
        switch (opcao) {
            case 1:
                System.out.print("Seu saldo: ");
                System.out.printf("R$ %.2f \n", this.getSaldo());
                break;
            case 2:
                System.out.println("Digite o valor: ");
                this.Depositar(sc.nextDouble());
                System.out.printf("Saldo atual: R$ %.2f \n", this.getSaldo());
                break;
            case 3:
                System.out.println("Digite o valor a transferir: ");
                this.Transferir(sc.nextDouble());
                System.out.printf("Valor transferido. Saldo atual: R$ %.2f \n", this.getSaldo());
                break;
            case 4:
                System.out.println("Digite o valor a sacar: ");
                this.Sacar(sc.nextDouble());
                System.out.printf("Valor sacado. Saldo atual: R$ %.2f \n", this.getSaldo());
                break;
            default:
                System.out.println("Opção Inválida!");
                break;
        }
    }
}

Ajustando esses pontos ele vai funcionar certinho. Parabéns pelo progresso!

Espero ter ajudado. Bons estudos.