The user starts by putting a name for the account and the starting balance, here already has a problem, I want you can not enter negative values or broken numbers
In the option deposit also I want to be able to enter negative numbers or broken numbers.
In the exact service that does not allow to enter the broken and negative numbers again, in the service if I type a negative number it adds up with the balance that has in the type account: I paid -1 and I have 10 of balance, the balance that is will have after the service and 11.
Class Caixa
, where you enter the name and opening balance:
import java.util.Scanner;
import java.util.Random;
public class Caixa {
public static void main(String[] args){
// Declarando as variáveis, Scanner e Random
String nome;
double inicial;
Scanner entrada = new Scanner(System.in);
Random numero = new Random();
int conta = 1 + numero.nextInt(9999);
//Obtendo os dados iniciais do Cliente
System.out.println("Cadastrando novo cliente.");
System.out.print("Ente com seu nome: ");
nome = entrada.nextLine();
System.out.print("Entre com o valor inicial depositado na conta: ");
inicial = entrada.nextDouble();
//Criando a conta de um cliente
Conta minhaConta = new Conta(nome, conta, inicial);
minhaConta.iniciar();
}
}
Class Conta
, performs depositing, withdrawing, and extracting actions:
import java.util.Scanner;
public class Conta {
private String nome;
private int conta, saques;
private double saldo;
Scanner entrada = new Scanner(System.in);
public Conta(String nome, int conta, double saldo_inicial){
this.nome=nome;
this.conta=conta;
saldo=saldo_inicial;
saques=0;
}
public void extrato(){
System.out.println("\tEXTRATO");
System.out.println("Nome: " + this.nome);
System.out.println("Número da conta: " + this.conta);
System.out.printf("Saldo atual: %.2f\n",this.saldo);
System.out.println("Saques realizados hoje: " + this.saques + "\n");
}
public void sacar(double valor){
if(saldo >= valor){
saldo -= valor;
saques++;
System.out.println("Sacado: " + valor);
System.out.println("Novo saldo: " + saldo + "\n");
} else {
System.out.println("Saldo insuficiente. Faça um depósito\n");
}
}
public void depositar(double valor)
{
saldo += valor;
System.out.println("Depositado: " + valor);
System.out.println("Novo saldo: " + saldo + "\n");
}
public void iniciar(){
int opcao;
do{
exibeMenu();
opcao = entrada.nextInt();
escolheOpcao(opcao);
}while(opcao!=4);
}
public void exibeMenu(){
System.out.println("\t Escolha a opção desejada");
System.out.println("1 - Consultar Extrato");
System.out.println("2 - Sacar");
System.out.println("3 - Depositar");
System.out.println("4 - Sair\n");
System.out.print("Opção: ");
}
public void escolheOpcao(int opcao){
double valor;
switch( opcao ){
case 1:
extrato();
break;
case 2:
if(saques<3){
System.out.print("Quanto deseja sacar: ");
valor = entrada.nextDouble();
sacar(valor);
} else{
System.out.println("Limite de saques diários atingidos.\n");
}
break;
case 3:
System.out.print("Quanto deseja depositar: ");
valor = entrada.nextDouble();
depositar(valor);
break;
case 4:
System.out.println("Sistema encerrado.");
break;
default:
System.out.println("Opção inválida");
}
}
}