Simulador de banco
Publicado por Danilo Lima 14/03/2007 (última atualização em 09/12/2009)
[ Hits: 33.227 ]
Homepage: http://danilo.site88.net
Download banco.c (versão 2)
Script simples, com as funções básicas de um banco.
Ainda é a versão 1.0, mas possui funções de cadastro de clientes, consulta a saldos, retiradas, depósitos e transferências.
Versão 2 - Enviado por Danilo Lima em 06/11/2009
Changelog: Versão 1.1 com alguns bug tirados. Quem quiser incrementar os cadastros, novas funções, fique a vontade.
/* Name: Banco 1.0 Copyright: limadaguia Author: Danilo Lima da Guia Date: 22/02/07 18:53 */ # include "stdio.h" # include "string.h" # include "dos.h" int n,i; struct cliente { char nome[20]; char cpf[11]; char conta[6]; char agencia[6]; char senha[6]; float saldo; }usuario[20]; /*****************************************/ cadastrarCliente (){ int i=1; printf ("\n\t\t===== CADASTRO DE CLIENTES ===== \n"); printf ("\nQuantos clientes deseja cadastrar? "); scanf ("%d", &n); for (i=1;i<=n;i++) { puts (""); printf ("\n*-- NOME--* "); scanf ("%s", &usuario[i].nome); printf ("\n*--CPF--* "); scanf ("%s", &usuario[i].cpf); printf ("\n*--AGENCIA--* "); scanf ("%s", &usuario[i].agencia); printf ("\n*--NUMERO DA CONTA--* "); scanf ("%s", &usuario[i].conta); printf ("\n*--SENHA--* "); scanf ("%s", &usuario[i].senha); usuario[i].saldo = 0; } //for printf ("\n\n*-- operacao realizada com sucesso !!!--*"); sleep (2500) ; } /*****************************************************/ deposito (){ int a,b,c,x; float dep; char agn[6], conta[6], senha[6]; printf ("\n\t\t===== DEPOSITO ===== \n"); printf ("\n*--DIGITE A SUA AGENCIA--* "); scanf ("%s", &agn); printf ("\n*--NUMERO DA CONTA--* "); scanf ("%s", &conta); for (i=1;i<=n;i++) { a = strcmp(agn,usuario[i].agencia); b = strcmp(conta,usuario[i].conta); if ( (a == 0) && (b == 0) ) { x=1; printf ("\n CLIENTE : %s", usuario[i].nome) ; printf ("\n CPF : %s", usuario[i].cpf) ; printf ("\n\n*--QUANTIDADE DO DEPOSITO--*"); scanf ("%f", &dep) ; if (dep >= 0) { usuario[i].saldo = usuario[i].saldo + dep; }//if2 else { printf ("\n\a *-- erro: O DEPOSITO TEM QUE SER POSITIVO --* "); break; }//else }//if1 } //for if(x!=1) printf ("\n\a\a *-- erro: DADOS INCORRETOS ! --*"); printf ("\n\n*-- aguarde... --*"); sleep (2500) ; } //fecha deposito /**************************************************/ consultaSaldo (){ char agn[6], conta[6], senha[6]; int a,b,c,x; printf ("\n\t\t===== SALDO =====\n"); printf ("\n*--DIGITE A SUA AGENCIA--* "); scanf ("%s", &agn); printf ("\n*--NUMERO DA CONTA--* "); scanf ("%s", &conta); printf ("\n *--DIGITE A SUA SENHA--* "); scanf ("%s", &senha); for (i=1;i<=n;i++) { a = strcmp(agn,usuario[i].agencia); b = strcmp(conta,usuario[i].conta); c = strcmp(senha,usuario[i].senha); if ( (a == 0) && (b == 0) && (c == 0) ) { x=1; printf ("\n CLIENTE : %s", usuario[i].nome) ; printf ("\n CPF : %s", usuario[i].cpf) ; printf ("\n\n *--SEU SALDO E : %f reais --*", usuario[i].saldo) ; }//if }//for if (x != 1) { printf ("\n\a\a *-- erro: DADOS INCORRETOS ! --*"); } printf ("\n\n*-- aguarde... --*"); sleep (2500) ; }// fecha consultaSaldo /***********************************************/ transfere (){ char agn[6], conta[6], senha[6],agn2[6],conta2[6]; int a,b,c,d,e,j,x,l; float val; printf ("\n\t\t ===== TRANSFERENCIA ===== \n"); printf ("\n*--DIGITE A SUA AGENCIA--* "); scanf ("%s", &agn); printf ("\n*--NUMERO DA CONTA--* "); scanf ("%s", &conta); printf ("\n *--DIGITE A SUA SENHA--*: "); scanf ("%s", &senha); for (i=1;i<=n;i++) { a = strcmp(agn,usuario[i].agencia); b = strcmp(conta,usuario[i].conta); c = strcmp(senha,usuario[i].senha); if ( (a == 0) && (b == 0) && (c == 0) ) { l=1; printf ("\n CLIENTE : %s", usuario[i].nome) ; printf ("\n CPF : %s", usuario[i].cpf) ; } //if1 if (l != 1){ printf ("\a\a*-- erro: DADOS INCORRETOS ! --*"); printf ("\n\n aguarde..."); sleep (1800); system ("cls"); main(); } } //for 1 printf ("\n*--DIGITE A AGENCIA DO BENEFICIADO--* "); scanf ("%s", &agn2); printf ("\n*--NUMERO DA CONTA DO BENEFICIADO--* "); scanf ("%s", &conta2); for (j=1;j<=n;j++) { d = strcmp(agn2,usuario[j].agencia); e = strcmp(conta2,usuario[j].conta); if ((d == 0) && (e == 0)) { printf ("\n *--CLIENTE BENEFICIADO--* %s", usuario[j].nome) ; printf ("\n*--VALOR DA TRANSFERENCIA--*"); scanf ("%f", &val); for (i=1;i<=n;i++) { if (usuario[i].saldo >= val) { x=1; usuario[j].saldo = usuario[j].saldo + val; usuario[i].saldo = usuario[i].saldo - val; }//if 3 else { x=0; } }//for3 if (x != 0){printf ("\a\a *-- erro: SALDO INSUFICIENTE! --*");} }//if 2 }//for2 printf ("\n\n*-- aguarde... --*"); sleep (2500) ; } saque (){ int a,b,c,x; float saq; char agn[6], conta[6], senha[6]; printf ("\n\t\t===== SAQUE ===== \n"); printf ("\n*--DIGITE A SUA AGENCIA--* "); scanf ("%s", &agn); printf ("\n*--NUMERO DA CONTA--* "); scanf ("%s", &conta); for (i=1;i<=n;i++) { a = strcmp(agn,usuario[i].agencia); b = strcmp(conta,usuario[i].conta); if ( (a == 0) && (b == 0) ) { printf ("\n CLIENTE : %s", usuario[i].nome) ; printf ("\n CPF : %s", usuario[i].cpf) ; printf ("\n\n*--VALOR DA RETIRADA--*"); scanf ("%f", &saq) ; if ((saq > 0) && (saq <= usuario[i].saldo) ) { x=1; usuario[i].saldo = usuario[i].saldo - saq; }//if2 }//if1 } //for if (x != 1){ printf ("\n\a\a*-- erro: SALDO INSUFICIENTE ! --*"); } printf ("\n\n*-- aguarde... --*"); sleep (2500) ; }//fecha saque menu (){ printf ("Selecione a opcao desejada...\n"); puts (""); puts ("1 - NOVO CLIENTE") ; puts ("2 - DEPOSITO") ; puts ("3 - CONSULTA SALDO") ; puts ("4 - TRANSFERENCIA") ; puts ("5 - RETIRADA"); puts ("6 - Sair"); } main() { int op; menu (); scanf ("%d", &op); switch (op) { case 1: system ("cls") ; cadastrarCliente (); system ("cls"); main(); case 2: system ("cls") ; deposito (); system ("cls"); main(); case 3: system ("cls") ; consultaSaldo (); system ("cls"); main(); case 4: system ("cls") ; transfere(); system ("cls"); main(); case 5: system ("cls") ; saque (); system ("cls"); main(); case 6: exit (1); } getch(); }
Calcular potência de um número
Função simples sendo chamada dentro da main
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Efeito "livro" em arquivos PDF
Como resolver o erro no CUPS: Unable to get list of printer drivers
Flatpak: remover runtimes não usados e pacotes
Mudar o gerenciador de login (GDM para SDDM e vice-versa) - parte 2
Como atualizar o Debian 8 para o 10 (10)
Dica sobre iptables ACCEPT e DROP (6)
NGNIX - Aplicar SNAT para evitar roteamento assimetrico (29)
[Python] Automação de scan de vulnerabilidades
[Python] Script para analise de superficie de ataque
[Shell Script] Novo script para redimensionar, rotacionar, converter e espelhar arquivos de imagem
[Shell Script] Iniciador de DOOM (DSDA-DOOM, Doom Retro ou Woof!)
[Shell Script] Script para adicionar bordas às imagens de uma pasta