1
resposta

Projeto - Conta Bancária

import java.util.Scanner;

class Conta {
    private String nome, numero;
    private double saldo;
    Conta(String nome, String numero, double saldo) { this.nome = nome; this.numero = numero; this.saldo = saldo; }
    String getNome() { return nome; }
    String getNumero() { return numero; }
    double getSaldo() { return saldo; }
    boolean sacar(double v) { if (v<=0 || v>saldo) return false; saldo -= v; return true; }
    boolean depositar(double v) { if (v<=0) return false; saldo += v; return true; }
    boolean transferirPara(Conta dest, double v) { if (dest==null || v<=0 || v>saldo) return false; saldo -= v; dest.saldo += v; return true; }
    String resumo() { return String.format("Cliente: %s | Conta: %s | Saldo: R$ %.2f", nome, numero, saldo); }
}

public class BancoSimples {
    static Scanner sc = new Scanner(System.in);
    public static void main(String[] args) {
        System.out.println("=== Inicialização do cliente ===");
        System.out.print("Nome: ");
        String nome = sc.nextLine().trim(); if (nome.isEmpty()) nome = "Cliente Teste";
        System.out.print("Número da conta: ");
        String num = sc.nextLine().trim(); if (num.isEmpty()) num = "0001-0";
        double saldo = lerDouble("Saldo inicial: ", 0.0);
        Conta minha = new Conta(nome, num, saldo);
        Conta exemplo = new Conta("Maria Exemplo", "0002-0", 500.00);

        while (true) {
            mostraMenu();
            int op = lerInt("Escolha: ");
            switch (op) {
                case 1:
                    System.out.println("--- Visualizar saldo ---");
                    System.out.println(minha.resumo());
                    break;
                case 2:
                    System.out.println("--- Enviar valor ---");
                    System.out.println("Destino: " + exemplo.getNumero() + " - " + exemplo.getNome());
                    double vEnv = lerDouble("Valor a enviar: ", 0.0);
                    if (minha.transferirPara(exemplo, vEnv)) System.out.println("Transferência OK. Novo saldo: R$ " + String.format("%.2f", minha.getSaldo()));
                    else System.out.println("Falha: verifique valor e saldo.");
                    break;
                case 3:
                    System.out.println("--- Receber valor ---");
                    double vRec = lerDouble("Valor a receber: ", 0.0);
                    if (minha.depositar(vRec)) System.out.println("Depósito OK. Novo saldo: R$ " + String.format("%.2f", minha.getSaldo()));
                    else System.out.println("Falha: informe valor positivo.");
                    break;
                case 4:
                    System.out.println("--- Sacar ---");
                    double vSac = lerDouble("Valor a sacar: ", 0.0);
                    if (minha.sacar(vSac)) System.out.println("Saque OK. Novo saldo: R$ " + String.format("%.2f", minha.getSaldo()));
                    else System.out.println("Falha: saldo insuficiente ou valor inválido.");
                    break;
                case 5:
                    System.out.println("--- Resumos ---");
                    System.out.println(minha.resumo());
                    System.out.println(exemplo.resumo());
                    break;
                case 0:
                    System.out.println("Obrigado por usar o Banco Simples.");
                    System.out.println("Saindo..."); sc.close(); return;
                default:
                    System.out.println("Opção inválida.");
            }
            System.out.println();
        }
    }

    static void mostraMenu() {
        System.out.println("=== Menu ===");
        System.out.println("1 - Visualizar saldo");
        System.out.println("2 - Enviar valor (transferência)");
        System.out.println("3 - Receber valor (depósito)");
        System.out.println("4 - Sacar");
        System.out.println("5 - Mostrar resumo das contas");
        System.out.println("0 - Sair");
    }

    static int lerInt(String p) {
        while (true) {
            System.out.print(p);
            try { return Integer.parseInt(sc.nextLine().trim()); }
            catch (Exception e) { System.out.println("Digite um inteiro válido."); }
        }
    }

    static double lerDouble(String p, double min) {
        while (true) {
            System.out.print(p);
            try {
                double v = Double.parseDouble(sc.nextLine().trim().replace(',', '.'));
                if (v < min) { System.out.println("Informe valor >= " + min); continue; }
                return v;
            } catch (Exception e) { System.out.println("Digite um número válido."); }
        }
    }
}

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
1 resposta

Olá amigo.
Excelente!
Continue compartilhando seu aprendizado.
Bons estudos.