Extrato para caixa eletrônico em JAVA
Olá amigos gostaria de tirar uma dúvida com vocês. Fiz um pequeno programinha para caixa eletrônico que tem as opcões de saque/depósito/saldo. Eu gostaria de incluir a opção extrato, que pudesse ser visualizado os saques que foram realizados, os depósitos realizados e o saldo atual. Abaixo vou colocar meu código.
package meucaixaeletronico;
import java.util.Scanner;
public class MeuCaixaEletronico {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int option;
double saldo = 0;
while (true) {
imprimeMenu();
option = sc.nextInt();
if (option == 0) {
break;
}
if (option == 1) {
//3.1 imprimir saldo
System.out.println(" Seu saldo é: $" + saldo);
} else if (option == 2) {
// 3.2 realizar saque
System.out.println(" Informe um valor para saque: ");
double saque = sc.nextDouble();
if (saque <= 0) {
System.out.println(" O valor é inválido. ");
} else if (saque > saldo) {
System.out.println(" Saldo insuficiente. ");
} else {
System.out.println("$" + saque + " Sacado com sucesso. ");
saldo -= saque;
}
} else if (option == 3) {
// 3.3 realizar deposito
System.out.println(" Informe um valor para depósito: ");
double deposito = sc.nextDouble();
if (deposito <= 0) {
System.out.println(" O valor é inválido. ");
} else {
System.out.println("$" + deposito + " Depositado com sucesso. ");
saldo += deposito;
}
} else {
System.out.println(" Opção inválida, tente novamente. ");
}
}
System.out.println(" Obrigado por escolher o banco FAT! ");
}
public static void imprimeLinha() {
System.out.println(" ********** ");
}
public static void imprimeMenu() {
imprimeLinha();
System.out.println(" 1) Saldo: ");
System.out.println(" 2) Saque: ");
System.out.println(" 3) Depósito: ");
System.out.println(" 0) SAIR. ");
imprimeLinha();
}
}
Emanuel
Curtidas 0
Respostas
Deivid Nascimento
05/11/2017
bom para isso você deve usar alguma lista tipo List<Operacao>operacoes; onde Operacao é uma classe que tem como atributo tipoDeOperacao,valor e saldo anterior e quando vc chamar a opção 2 ou 3 vc passa os tipoDeOperacao saque ou deposito, no fim vc cria uma opção de extrato que leia essa lista em ordem cronológica mostrando os dados de cada item da lista.
GOSTEI 0
Deivid Nascimento
05/11/2017
bom para isso você deve usar alguma lista tipo List<Operacao>operacoes; onde Operacao é uma classe que tem como atributo tipoDeOperacao,valor e saldo anterior e quando vc chamar a opção 2 ou 3 vc passa os tipoDeOperacao saque ou deposito, no fim vc cria uma opção de extrato que leia essa lista em ordem cronológica mostrando os dados de cada item da lista.
para isso voce deve saber como adicionar e ler essa lista https://www.devmedia.com.br/java-collections-set-list-e-iterator/29637
GOSTEI 0
Emanuel
05/11/2017
Podem fechar o tópico como resolvido, abaixo vou colocar a solução:
package cxeletronico;
import java.util.Scanner;
import java.util.ArrayList;
import java.util.List;
public class CXELETRONICO {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int option;
double saldo = 0;
List<String> extrato = new ArrayList<String>(); // variável extrato do tipo arraylist<string>
extrato.add(" Saldo inicial: $"+ saldo); // acrescentando o saldo inicial, como primeiro registro da lista
while (true) {
imprimeMenu();
option = sc.nextInt();
if (option == 0) {
break;
}
if (option == 1) {
//3.1 imprimir saldo
System.out.println(" Seu saldo é: $" + saldo);
} else if (option == 2) {
// 3.2 realizar saque
System.out.println(" Informe um valor para saque: ");
double saque = sc.nextDouble();
if (saque <= 0) {
System.out.println(" O valor é inválido. ");
} else if (saque > saldo) {
System.out.println(" Saldo insuficiente. ");
} else {
System.out.println("$" + saque + " Sacado com sucesso. ");
saldo -= saque;
extrato.add(" Saque de $" + saque); // adicionando na lista valor do saque
}
} else if (option == 3) {
// 3.3 realizar deposito
System.out.println(" Informe um valor para depósito: ");
double deposito = sc.nextDouble();
if (deposito <= 0) {
System.out.println(" O valor é inválido. ");
} else {
System.out.println("$" + deposito + " Depositado com sucesso. ");
saldo += deposito;
extrato.add(" Depósito de $" + deposito); // adicionando valor do deposito
}
}else if (option == 4) {
extrato.add(" Saldo atual: $"+ saldo);
for(String string : extrato) { // percorrendo a lista com um for-each
System.out.println(string); // imprime cada String da lista
}
} else {
System.out.println(" Opção inválida, tente novamente. ");
}
}
System.out.println(" Obrigado por escolher o banco FAT! ");
}
public static void imprimeLinha() {
System.out.println(" ********** ");
}
public static void imprimeMenu() {
imprimeLinha();
System.out.println(" 1) Saldo: ");
System.out.println(" 2) Saque: ");
System.out.println(" 3) Depósito: ");
System.out.println(" 4) Extrato: ");
System.out.println(" 0) SAIR. ");
imprimeLinha();
}
}
GOSTEI 0