Skip to content

Instantly share code, notes, and snippets.

@samueltcsantos
Created July 13, 2015 02:55
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save samueltcsantos/fc4d7d65266353d61f15 to your computer and use it in GitHub Desktop.
Save samueltcsantos/fc4d7d65266353d61f15 to your computer and use it in GitHub Desktop.
Exercício Conta Bancária
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 {
/**
* Defina constantes para valores fixos, aqueles que não mudam na execução de seu programa.
*/
private static final int OP_TIPO_RETIDA = 1;
private static final int OP_TIPO_DEPOSITO = 0;
//Aqui é o ponto onde seu código inicia, declare variáveis e chame métodos.
public static void main(String[] args) {
/**
* Você não é obrigado a declarar e já inicializar as variáveis, mas é sempre bom fazer isso.
* Lhe ajuda a pensar no que realmente vai utilizar no seu programa.
*/
/**
* Armazenar o número da conta informado pelo usuário.
*/
int numeroConta = 0;
/**
* Armazenar o saldo da conta informado pelo usuário.
*/
float saldoConta = 0;
/**
* O usuário deverá indicar qual o tipo de transação Depósito(0)/Retirada(1)
* Esse variável armazenar o tipo da operação escolhida pelo usuário.
*/
int operacao = 0;
/**
* Essa variável armazena o valor a ser Retirado/Depositado na conta.
* Depedente da operação indicada pelo usuário.
*/
float valorTransacao = 0;
/**
* Se houver sucesso na operação um novo saldo será gerado, se não houver o saldo
* permanece inalterado, para efeito de coerencia com a vida real das aplicações de
* ATM é bom manter o antigo o o novo saldo em variáveis distintas.
*/
float novoSaldo = 0;
/**
* Começe sempre lendo os valores da entrada, para isso crie a instancia do Scanner.
*/
Scanner input = new Scanner(System.in);
/**
* Mostre sempre uma mensagem pedido alguma coisa ao usuário, antes de ler o valor
* correspondente.
*/
System.out.print("Digite o Número da Conta? ");
numeroConta = input.nextInt();
System.out.print("Digite o Saldo da Conta? ");
saldoConta = input.nextFloat();
/**
* Atualize o novo saldo antes de iniciar a transação.
* No caso de não ter sucesso na transação o novo saldo é igual ao anterior.
*/
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();
/**
* Processamento, agora que você tem as informações do usuário sobre
* a transação é hora de processar a transação.
*/
/**
* Verifique se a operação informada é valida
*/
if(operacao == OP_TIPO_DEPOSITO || operacao == OP_TIPO_RETIDA ){
//Evite if quando há varias opções para checar
switch(operacao){
case OP_TIPO_DEPOSITO:
//Faça o deposito na conta
novoSaldo = saldoConta + valorTransacao;
break;
case OP_TIPO_RETIDA:
//Faca a retira da conta
novoSaldo = saldoConta - valorTransacao;
break;
}
/**
* Mostre para o usuário um saida após o processamento.
* Como um "extrato da conta" para conferencia
*
*/
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 *** ");
}
}
else{
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!");
}
/**
* OBS: Uso do operador ternário do Java e o \t é uma tabulação
*
*
* ((operacao == OP_TIPO_DEPOSITO) ? "DEPOSITO":"RETIRADA")
*
* Equivalente a seguinte construção
*
* if (operacao == OP_TIPO_DEPOSITO ){
* return "DEPOSITO";
* }
* else {
* return "RETIRADA";
* }
*
* é uma curta de fazermos um IF.
*/
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment