Simulador de banco
Publicado por Danilo Lima 14/03/2007 (última atualização em 09/12/2009)
[ Hits: 33.572 ]
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();
} 
2 Programinhas em C para conversão de bases
[C++] remover todos os multiplos de 3
Parte 6 - Sessão de estudo sobre VETORES
Utilizando ponteiros na manipulação de strings
Texto colorido em C para Linux
IA Turbina o Desktop Linux enquanto distros renovam forças
Como extrair chaves TOTP 2FA a partir de QRCODE (Google Authenticator)
Linux em 2025: Segurança prática para o usuário
Desktop Linux em alta: novos apps, distros e privacidade marcam o sábado
IA chega ao desktop e impulsiona produtividade no mundo Linux
Atualizando o Fedora 42 para 43
Como saber se o seu e-mail já teve a senha vazada?
Como descobrir se a sua senha já foi vazada na internet?
E aí? O Warsaw já está funcionando no Debian 13? (12)
copiar library para diretorio /usr/share/..... su com Falha na a... (1)
Problema em SSD ao dar boot LinuxMint LMDE FAYE 64 (3)









