Created
July 13, 2015 02:55
-
-
Save samueltcsantos/fc4d7d65266353d61f15 to your computer and use it in GitHub Desktop.
Exercício Conta Bancária
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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