diff --git a/a.out b/a.out new file mode 100755 index 0000000000000000000000000000000000000000..d131d5974aa9397f735dd38822648408d1ff9497 Binary files /dev/null and b/a.out differ diff --git a/funcoes.cpp b/funcoes.cpp index 98eb97a49fd3d1c829f662b4f68d5a7489124a54..00ef827b57ea37d7e49ea7d5c5318f29f8b1ffd1 100644 --- a/funcoes.cpp +++ b/funcoes.cpp @@ -1,27 +1,169 @@ -int criarConta(nome, saldo){ +#include "funcoes.hpp" +#include <iostream> +using namespace std; - nContas++; - numeroContas = // Gerar valor aleatória - contas[nContas] = // Armazena novo struct da conta + +void menuInicial(){ + cout << "1- Logar na conta." << endl << "2- Criar conta." << endl << "3- Sair." << endl; +} + +void menuOpcoes(){ + cout << "1- Deposito." << endl << "2- Saque." << endl << "3- Transferência." << endl <<"4- Exibir saldo atual." << endl << "5- Sair." << endl; +} + +int escolheOp(){ + int n; + cin >> n; + return n; +} + +void criarConta(conta *contas, int *indice){ + cout << "Digite o seu nome:" << endl; + + cin >> contas[*indice].nomeCliente; + + cout << "Digite o número da conta a ser criada:" << endl; + + cin >> contas[*indice].numeroConta; + + contas[*indice].saldo = 0.0; + + *indice += 1; + +} + +int procurarConta(conta *contas, int indice, int nConta){ + + for (int i = 0; i < indice; i++){ + + if(contas[i].numeroConta == nConta){ + return i; + } + } + + return -1; +} + +void deposito(conta *contas, int indice){ + double n; + cout << "Digite o valor a ser depositado: "; + cin >> n; + cout << endl; + + contas[indice].saldo += n; + system("clear"); + cout << "Transação efetuada com sucesso!!" << endl; + system("sleep 4"); } -int transferirDinheiro(numero_conta, valor){ +void saque(conta *contas, int indice){ + double n; + cout << "Digite o valor a ser sacado: "; + cin >> n; + cout << endl; - for(int i = 0; i < contas.length; i++){ - contas[i].n_conta == numero_conta; - contas[i].saldo += valor; - } + if(n > contas[indice].saldo){ + system("clear"); + cout << "Saldo indisponÃvel" << endl; + system("sleep 4"); + }else{ + contas[indice].saldo -= n; + system("clear"); + cout << "Transação efetuada com sucesso!!" << endl; + system("sleep 4"); + } } -int sacar(valor, indice){ - contas[indice].saldo -= valor; +void tranferencia(conta *contas, int indice, int indiceG){ + int indT, nCT, op; + double n; + + do{ + cout << "Digite o número da conta para a tranferencia: "; + cin >> nCT; + + indT = procurarConta(contas, indiceG, nCT); + + if(indT < 0){ + system("clear"); + cout << "Número da conta invalido!!" << endl; + system("sleep 4"); + system("clear"); + cout << "1- Tentar novamente." << endl << "2- Sair" << endl; + op = escolheOp(); + }else{ + system("clear"); + cout << "Digite o valor da tranferencia: "; + cin >> n; + cout << endl; + + if(n > contas[indice].saldo){ + system("clear"); + cout << "Saldo indisponÃvel!!" << endl; + cout << "1- Tentar novamente." << endl << "2- Sair" << endl; + op = escolheOp(); + }else{ + contas[indice].saldo -= n; + contas[indT].saldo += n; + system("clear"); + cout << "Transação efetuada com sucesso!!" << endl; + system("sleep 4"); + op = 2; + } + } + }while(op != 2); } -int depositar(valor, indice){ - contas[indice].saldo += valor; - +void exibirSaldo(conta *contas, int indice){ + system("clear"); + cout << "Saldo: " << contas[indice].saldo << endl; + + system("sleep 5"); } - + +void logarConta(conta *contas, int indice){ + int indiceAt, nConta, op, op2; + do{ + system("clear"); + cout << "Digite o número da conta: "; + cin >> nConta; + + indiceAt = procurarConta(contas, indice, nConta); + + if (indiceAt < 0){ + cout << "Conta não encontrada!!" << endl; + cout << "1- tentar novamente." << endl << "2- Sair" << endl; + op = escolheOp(); + }else{ + do{ + system("clear"); + cout << "Usuario: " << contas[indiceAt].nomeCliente << endl << endl; + menuOpcoes(); + op2 = escolheOp(); + + switch(op2){ + case 1: + deposito(contas, indiceAt); + break; + case 2: + saque(contas, indiceAt); + break; + case 3: + tranferencia(contas, indiceAt, indice); + break; + case 4: + exibirSaldo(contas, indiceAt); + break; + } + + if(op2 == 5){ + op = 2; + } + }while(op2 != 5); + } + + }while(op != 2); +} \ No newline at end of file diff --git a/funcoes.hpp b/funcoes.hpp index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..667a33a5ae59cf29a35e6c1c725c22da4c3bc59b 100644 --- a/funcoes.hpp +++ b/funcoes.hpp @@ -0,0 +1,30 @@ +#include <iostream> +#ifndef funcoes_hpp +#define funcoes_hpp + +typedef struct { + int numeroConta; + double saldo; + char nomeCliente[20]; + +}conta; + +void menuInicial(); + +int escolheOp(); + +void criarConta(conta *contas, int *indice); + +int procurarConta(conta *contas, int indice, int nConta); + +void logarConta(conta *contas, int indice); + +void deposito(conta *contas, int indice); + +void exibirSaldo(conta *contas, int indice); + +void saque(conta *contas, int indice); + +void tranferencia(conta *contas, int indice, int indiceG); + +#endif \ No newline at end of file diff --git a/main.cpp b/main.cpp index 359d3a38a3675f640609d833b889e4f70c092d74..2238a796172020ec2f01315bed99018507b56813 100644 --- a/main.cpp +++ b/main.cpp @@ -1,15 +1,40 @@ +#include "funcoes.hpp" #include <iostream> - using namespace std; -int main(){ - - int valor = 200; +int main() +{ + int n, indice = 0; + conta * contas = new conta[50]; + + do{ + system("clear"); + cout << "#############################" << endl; + cout << "# BEM VINDO AO CAIXA XABLAU #" << endl; + cout << "#############################" << endl << endl; + menuInicial(); + n = escolheOp(); + + if(n != 1 && n != 2 && n != 3){ + cout << "Opção invalida" << endl; + system("sleep 3"); + system("clear"); + } + + switch(n){ + case 1: + logarConta(contas, indice); + break; + case 2: + criarConta(contas, &indice); + break; + } + + }while(n != 3); - if(valor % 100){ - - } + cout << indice; + return 0; } \ No newline at end of file diff --git a/teste b/teste index acfa3f1d5482627c152c5ef8fa4563c40384be97..42eed55c54aa5e1950e6f96f11c1b8d8e5b61828 100755 Binary files a/teste and b/teste differ