Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
Refatoramento ...
package alp;
import java.util.Scanner;
/**
* Escreva um algoritmo que, para uma conta bancária, leia o seu número,
* o saldo, o tipo de operação a ser realizada (depósito ou retirada)
* e o valor da operação. Após, determine e mostre o novo saldo.
*
* Se o novo saldo ficar negativo, deve ser mostrada, também, a mensagem “conta estourada”.
*
* @author Samuel T. C. Santos
*
*/
public class ExemploContaBancaria {
private static int numeroConta = 0;
private static float saldoConta = 0;
private static int operacao = 0;
private static float valorTransacao = 0;
private static float novoSaldo = 0;
private static final int OP_TIPO_RETIDA = 1;
private static final int OP_TIPO_DEPOSITO = 0;
public static void main(String[] args) {
lerDadosTransacao();
switch(operacao){
case OP_TIPO_DEPOSITO:
novoSaldo = saldoConta + valorTransacao;
criarExtrato(numeroConta, saldoConta, operacao, valorTransacao, novoSaldo);
break;
case OP_TIPO_RETIDA:
novoSaldo = saldoConta - valorTransacao;
criarExtrato(numeroConta, saldoConta, operacao, valorTransacao, novoSaldo);
break;
default:
erroOperacaoInvalida();
break;
}
}
/**
* Lendo dados para efetuar a transação.
*
*/
private static void lerDadosTransacao() {
Scanner input = new Scanner(System.in);
System.out.print("Digite o Número da Conta? ");
numeroConta = input.nextInt();
System.out.print("Digite o Saldo da Conta? ");
saldoConta = input.nextFloat();
novoSaldo = saldoConta;
System.out.print("Digite o tipo de operação [0 = DEPÓSITO / 1 = RETIRADA] ? ");
operacao = input.nextInt();
System.out.print("Digite o valor da Transação? ");
valorTransacao = input.nextFloat();
}
/**
* Mostra a mensagem de erro, se a operação escolhida for inválida.
*/
private static void erroOperacaoInvalida() {
System.out.println("Operação informada é Inválida!");
System.out.println("Digite 0 para Deposito ou 1 para retirada");
System.out.println("Por favor tente novamente!");
}
/**
* Mostrar o extrado da conta.
*
* @param numeroConta - o numero da conta.
* @param saldoConta - o saldo da conta.
* @param operacao - o tipo da operação.
* @param valorTransacao - o valor da atual transação
* @param novoSaldo - o novo saldo.
*/
private static void criarExtrato(int numeroConta, float saldoConta, int operacao, float valorTransacao, float novoSaldo) {
System.out.println("++++++++++++++++ Extrato Conta +++++++++++++++++++++");
System.out.println(" - Número \t\t\t " + numeroConta);
System.out.println(" - Saldo Anterior \t\t\t R$ " + saldoConta);
System.out.println(" - Operação \t\t\t " + ((operacao == OP_TIPO_DEPOSITO) ? "DEPOSITO":"RETIRADA") );
System.out.println(" - Valor \t\t\t R$ " + valorTransacao);
System.out.println(" - Saldo Atual \t\t\t R$ " + novoSaldo);
System.out.println("++++++++++++++++++++++++++++++++++++++++++++++++++++");
/**
* Verifique se a condição em que o saldo é negativo.
*/
if(novoSaldo < 0){
System.out.println(" ** Conta Estourada *** ");
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment