0% acharam este documento útil (0 voto)
13 visualizações11 páginas

Simulador de Cartão de Crédito em Java

O documento descreve a implementação de um simulador de cartão de crédito em Java, incluindo funcionalidades como criação de cartão, realização de compras e pagamentos, bloqueio e desbloqueio do cartão, e aumento de limite. A classe principal 'CartaoCredito' gerencia os detalhes do cartão e suas transações, enquanto a classe 'SimuladorCartaoCredito' fornece um menu interativo para o usuário. O código inclui validações para garantir que as operações sejam realizadas corretamente, como verificar se o cartão está bloqueado ou se o limite foi excedido.

Enviado por

Likk 2509
Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato DOCX, PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
13 visualizações11 páginas

Simulador de Cartão de Crédito em Java

O documento descreve a implementação de um simulador de cartão de crédito em Java, incluindo funcionalidades como criação de cartão, realização de compras e pagamentos, bloqueio e desbloqueio do cartão, e aumento de limite. A classe principal 'CartaoCredito' gerencia os detalhes do cartão e suas transações, enquanto a classe 'SimuladorCartaoCredito' fornece um menu interativo para o usuário. O código inclui validações para garantir que as operações sejam realizadas corretamente, como verificar se o cartão está bloqueado ou se o limite foi excedido.

Enviado por

Likk 2509
Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato DOCX, PDF, TXT ou leia on-line no Scribd

Import [Link].

LocalDate;

Import [Link];

Import [Link];

Import [Link];

Import [Link];

Import [Link];

// Classe principal do cartão

Class CartaoCredito {

Private String numero;

Private String titular;

Private LocalDate dataValidade;

Private int cvv;

Private double limite;

Private double saldoUtilizado;

Private boolean bloqueado;

Private List<String> transacoes;

Public CartaoCredito(String titular, double limite) {

[Link] = titular;

[Link] = limite;

[Link] = 0;

[Link] = false;

[Link] = new ArrayList<>();

gerarNumeroCartao();

gerarDataValidade();

gerarCVV();

[Link](“Cartão criado – Limite: R$ “ + limite);

}
Private void gerarNumeroCartao() {

Random rand = new Random();

StringBuilder sb = new StringBuilder();

For (int i = 0; i < 4; i++) {

[Link]([Link](“%04d”, [Link](10000)));

If (i < 3) [Link](“ “);

[Link] = [Link]();

Private void gerarDataValidade() {

[Link] = [Link]().plusYears(5);

Private void gerarCVV() {

Random rand = new Random();

[Link] = [Link](900) + 100;

Public boolean realizarCompra(double valor) {

If (bloqueado) {

[Link](“Tentativa de compra recusada – Cartão


bloqueado: R$ “ + valor);

Return false;

If (valor <= 0) {

[Link](“Tentativa de compra recusada – Valor


inválido: R$ “ + valor);
Return false;

If (saldoUtilizado + valor > limite) {

[Link](“Compra recusada – Limite insuficiente: R$ “


+ valor);

Return false;

saldoUtilizado += valor;

[Link](“Compra realizada: R$ “ + [Link](“%.2f”,


valor));

return true;

Public boolean realizarPagamento(double valor) {

If (bloqueado) {

[Link](“Tentativa de pagamento recusada – Cartão


bloqueado: R$ “ + valor);

Return false;

If (valor <= 0) {

[Link](“Tentativa de pagamento recusada – Valor


inválido: R$ “ + valor);

Return false;

If (valor > saldoUtilizado) {

[Link](“Pagamento realizado: R$ “ + valor + “


(Crédito de R$ “ +
[Link](“%.2f”, (valor – saldoUtilizado)) + “
será retornado)”);

saldoUtilizado = 0;

} else {

saldoUtilizado -= valor;

[Link](“Pagamento realizado: R$ “ +
[Link](“%.2f”, valor));

Return true;

Public void bloquearCartao() {

[Link] = true;

[Link](“Cartão bloqueado pelo usuário”);

Public void desbloquearCartao() {

[Link] = false;

[Link](“Cartão desbloqueado pelo usuário”);

Public void aumentarLimite(double valor) {

[Link] += valor;

[Link](“Limite aumentado para: R$ “ +


[Link](“%.2f”, limite));

Public void exibirInformacoes() {

[Link](“\n=== INFORMAÇÕES DO CARTÃO ===”);


[Link](“Titular: “ + titular);

[Link](“Número: “ + numero);

[Link](“Validade: “ +
[Link]([Link](“MM/yyyy”)));

[Link](“CVV: “ + cvv);

[Link](“Limite total: R$ “ + [Link](“%.2f”,


limite));

[Link](“Saldo utilizado: R$ “ + [Link](“%.2f”,


saldoUtilizado));

[Link](“Limite disponível: R$ “ +
[Link](“%.2f”, (limite – saldoUtilizado)));

[Link](“Status: “ + (bloqueado ? “BLOQUEADO” :


“ATIVO”));

[Link](“============================\
n”);

Public void exibirExtrato() {

[Link](“\n=== EXTRATO DE TRANSAÇÕES ===”);

If ([Link]()) {

[Link](“Nenhuma transação realizada.”);

} else {

For (int i = 0; i < [Link](); i++) {

[Link]((i + 1) + “. “ + [Link](i));

[Link](“=============================\
n”);

}
// Getters

Public String getNumero() { return numero; }

Public String getTitular() { return titular; }

Public LocalDate getDataValidade() { return dataValidade; }

Public double getLimite() { return limite; }

Public double getSaldoUtilizado() { return saldoUtilizado; }

Public boolean isBloqueado() { return bloqueado; }

// Classe principal com menu interativo

Public class SimuladorCartaoCredito {

Private static Scanner scanner = new Scanner([Link]);

Private static CartaoCredito cartao;

Public static void main(String[] args) {

exibirMenuPrincipal();

Private static void exibirMenuPrincipal() {

Int opcao;

Do {

[Link](“=== SIMULADOR DE CARTÃO DE CRÉDITO


===”);

[Link](“1. Criar novo cartão”);

[Link](“2. Visualizar informações do cartão”);

[Link](“3. Realizar compra”);

[Link](“4. Realizar pagamento”);

[Link](“5. Bloquear/Desbloquear cartão”);


[Link](“6. Aumentar limite”);

[Link](“7. Visualizar extrato”);

[Link](“8. Sair”);

[Link](“Escolha uma opção: “);

Opcao = [Link]();

[Link](); // Limpar buffer

Switch (opcao) {

Case 1:

criarCartao();

break;

case 2:

visualizarInformacoes();

break;

case 3:

realizarCompra();

break;

case 4:

realizarPagamento();

break;

case 5:

gerenciarBloqueio();

break;

case 6:

aumentarLimite();

break;

case 7:

visualizarExtrato();
break;

case 8:

[Link](“Encerrando simulador...”);

Break;

Default:

[Link](“Opção inválida!”);

} while (opcao != 8);

Private static void criarCartao() {

[Link](“Digite o nome do titular: “);

String titular = [Link]();

[Link](“Digite o limite inicial (R$): “);

Double limite = [Link]();

[Link]();

Cartao = new CartaoCredito(titular, limite);

[Link](“Cartão criado com sucesso!”);

[Link]();

Private static void visualizarInformacoes() {

If (verificarCartaoCriado()) {

[Link]();

}
Private static void realizarCompra() {

If (verificarCartaoCriado()) {

[Link](“Digite o valor da compra (R$): “);

Double valor = [Link]();

[Link]();

If ([Link](valor)) {

[Link](“Compra realizada com sucesso!”);

} else {

[Link](“Compra recusada!”);

Private static void realizarPagamento() {

If (verificarCartaoCriado()) {

[Link](“Digite o valor do pagamento (R$): “);

Double valor = [Link]();

[Link]();

If ([Link](valor)) {

[Link](“Pagamento realizado com sucesso!”);

} else {

[Link](“Erro no pagamento!”);

}
Private static void gerenciarBloqueio() {

If (verificarCartaoCriado()) {

[Link](“Status atual: “ + ([Link]() ?


“BLOQUEADO” : “DESBLOQUEADO”));

[Link](“1. “ + ([Link]() ?
“Desbloquear” : “Bloquear”));

[Link](“2. Cancelar”);

[Link](“Escolha: “);

Int escolha = [Link]();

[Link]();

If (escolha == 1) {

If ([Link]()) {

[Link]();

[Link](“Cartão desbloqueado!”);

} else {

[Link]();

[Link](“Cartão bloqueado!”);

Private static void aumentarLimite() {

If (verificarCartaoCriado()) {

[Link](“Digite o valor do aumento (R$): “);

Double valor = [Link]();

[Link]();
If (valor > 0) {

[Link](valor);

[Link](“Limite aumentado com sucesso!”);

} else {

[Link](“Valor inválido!”);

Private static void visualizarExtrato() {

If (verificarCartaoCriado()) {

[Link]();

Private static boolean verificarCartaoCriado() {

If (cartao == null) {

[Link](“Nenhum cartão criado. Por favor, crie um


cartão primeiro.”);

Return false;

Return true;

Você também pode gostar