-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathlogica.js
186 lines (167 loc) · 5.65 KB
/
logica.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
const ERRO_NOME = "Digite um nome válido e sem números!";
var saldo = 100.5;
var extrato = [
"Compra em mercado: R$ 25,00",
"Depósito: R$ 200,00",
"Compra em farmácia: R$ 15,50"
];
const SENHA_CORRETA = "3589";
// Verificação de acesso
function verificaAcesso() {
setTimeout(function () {
try {
let acesso = prompt("Digite seu nome de usuário:");
if (acesso.trim() === "" || /\d/.test(acesso)) {
exibirErro(ERRO_NOME);
} else {
exibirBoasVindas(acesso);
mostrarOpcoes();
}
} catch (error) {
console.error("Erro ao obter nome de usuário:", error);
exibirErro("Ocorreu um erro. Tente novamente.");
}
}, 1000);
}
// Mensagem de erro
function exibirErro(mensagem) {
alert(mensagem);
verificaAcesso();
}
// Mensagem de boas vindas
function exibirBoasVindas(nome) {
document.getElementById(
"mensagemBoasVindas"
).textContent = `Olá ${nome}, é um prazer ter você por aqui!`;
}
// Lógica de mostrar opções
function mostrarOpcoes() {
document.getElementById("escolhas").style.display = "block";
document
.getElementById("opcao")
.addEventListener("change", function () {
const opcaoSelecionada = parseInt(this.value);
document.getElementById("btnOperacao").style.display = "none";
if (opcaoSelecionada === 1 || opcaoSelecionada === 2 || opcaoSelecionada === 3 || opcaoSelecionada === 5) {
solicitarSenha(opcaoSelecionada);
} else {
switch (opcaoSelecionada) {
case 4:
operacaoDeposito();
break;
case 0:
sair();
break;
case 6:
document.getElementById("resultado").style.display = "none";
document.getElementById("opcao").value = "6";
break;
default:
alert("Opção inválida.");
}
}
});
}
// Função de verificação de senha
function solicitarSenha(opcao) {
let senha = prompt("Digite sua senha:");
if (senha === SENHA_CORRETA) {
executarOperacao(opcao);
} else {
alert("Senha incorreta. Tente novamente.");
solicitarSenha(opcao); // Rechama a função caso a senha esteja errada
}
}
// Executa operações com base na opção selecionada
function executarOperacao(opcaoSelecionada) {
switch (opcaoSelecionada) {
case 1:
exibirResultado(`Seu saldo atual é: R$ ${saldo.toFixed(2)}`);
break;
case 2:
exibirExtrato();
break;
case 3:
operacaoSaque();
break;
case 5:
operacaoTransferencia();
break;
default:
alert("Opção inválida.");
}
}
// Função para exibir resultado
function exibirResultado(mensagem) {
const resultadoDiv = document.getElementById("resultado");
resultadoDiv.textContent = mensagem;
resultadoDiv.style.display = "block";
}
// Função para exibir extrato
function exibirExtrato() {
const extratoTexto = extrato.join("\n");
alert(`Extrato:\n${extratoTexto}`);
}
// Operação de saque
function operacaoSaque() {
let valor = parseFloat(prompt("Digite o valor do saque:"));
if (isNaN(valor) || valor <= 0 || valor > saldo) {
alert("Operação não autorizada. Valor inválido ou saldo insuficiente.");
} else {
saldo -= valor;
extrato.push(`Saque: R$ ${valor.toFixed(2)}`);
exibirResultado(
`Saque de R$ ${valor.toFixed(2)} realizado com sucesso!`
);
}
}
// Operação de depósito
function operacaoDeposito() {
let valor = parseFloat(prompt("Digite o valor do depósito:"));
if (isNaN(valor) || valor <= 0) {
alert("Operação não autorizada. Valor inválido.");
} else {
saldo += valor;
extrato.push(`Depósito: R$ ${valor.toFixed(2)}`);
exibirResultado(
`Depósito de R$ ${valor.toFixed(2)} realizado com sucesso!`
);
}
}
// Operação de transferência
function operacaoTransferencia() {
let conta = prompt("Digite o número da conta:");
if (!/^\d+$/.test(conta)) {
alert("Número de conta inválido.");
return;
}
let valor = parseFloat(prompt("Digite o valor da transferência:"));
if (isNaN(valor) || valor <= 0 || valor > saldo) {
alert("Operação não autorizada. Valor inválido ou saldo insuficiente.");
} else {
saldo -= valor;
extrato.push(`Transferência para conta ${conta}: R$ ${valor.toFixed(2)}`);
exibirResultado(
`Transferência de R$ ${valor.toFixed(2)} para a conta ${conta} realizada com sucesso!`
);
}
}
// Função de sair
function sair() {
const nome = document.getElementById("mensagemBoasVindas").textContent.split(" ")[1];
document.getElementById("mensagemBoasVindas").textContent = "";
document.getElementById("escolhas").style.display = "none";
document.getElementById("resultado").textContent = "";
const container = document.querySelector(".container");
container.innerHTML = `
<p>${nome}, foi um prazer ter você por aqui!</p>
<button id="btnRecomecar" class="btn btn-primary mt-2">Recomeçar</button>
`;
document
.getElementById("btnRecomecar")
.addEventListener("click", function () {
container.innerHTML = "";
verificaAcesso();
});
}
verificaAcesso();