Simulador de banco

Publicado por Danilo Lima 14/03/2007 (última atualização em 09/12/2009)

[ Hits: 33.266 ]

Homepage: http://danilo.site88.net

Download banco2.exe

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ões atualizadas deste script

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.

Download banco.c


Esconder código-fonte

/*
  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();
} 

Scripts recomendados

Conversão binário - decimal

Jogo da Velha (corrigido)

Utilização de Ponteiros

Histograma de uma frase

Ordenação Topológica com Digrafos


  

Comentários
[1] Comentário enviado por albertguedes em 14/03/2007 - 16:46h

É um programa muito divertido, simulações é o meu tipo de programação preferido, e se quiser dar uma esquentada no "negócio", tente fazer com que os clientes façam retiradas e saques aleatórios com as devidas taxas que os bancos cobram para ver o quanto lucram num mes. O resultado pode não ser tão divertido.
Valeu pelo programa Danilo.

[2] Comentário enviado por diegoamaral91 em 21/09/2012 - 11:44h

Como faço para inserir um arquivo .txt nesse software?
Para que salve pelo menos 1 dado de agencia, conta, CPF, Nome, para que eu possa executar as outras funções do programa?


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts