Advertisement
Guest User

trabalhoBanco

a guest
Jul 26th, 2014
238
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 24.80 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <conio.h>
  3. #include <stdlib.h>
  4. #include <ctype.h>
  5.  
  6. struct conta{
  7.              int numConta;
  8.              char nomeCliente[30];
  9.              char CPFCliente[14];
  10.              char enderecoCliente[40];
  11.              float saldoConta;
  12. };
  13.  
  14. struct movimentacoes{
  15.                     char tipoMov;
  16.                     char data[10];
  17.                     float valorMov;
  18.                     int numCR;
  19.                     int numCD;
  20.                     int numCO;
  21. };
  22.  
  23.     int contaExistente;
  24.     int contaEscolhida;
  25.     char confirmacao;
  26.     float valorTemp;
  27.    
  28.     conta c;
  29.     conta cTemp;
  30.    
  31.     FILE* arqConta;
  32.     FILE *arqContaTemp;
  33.    
  34.     movimentacoes m;
  35.     FILE *arqMov;
  36.    
  37. int verificaContaExistente(int contaEscolhida){
  38.    
  39.     arqConta = fopen("contas.txt", "rb");
  40.              
  41.         contaExistente = 0;
  42.                
  43.                 while(fread(&c, sizeof(c), 1, arqConta) == 1){
  44.                   if (contaEscolhida == c.numConta) {
  45.                      contaExistente = 1;
  46.                      break;
  47.                   }
  48.                }
  49.                
  50.                fclose(arqConta);
  51.        
  52.         return(contaExistente);
  53.    
  54. }
  55.  
  56. float atualizarSaldo(float valorTemp){  //atualiza o saldo, nesse caso, quando é um decréscimo
  57.    
  58.     arqConta = fopen("contas.txt", "rb");
  59.     arqContaTemp = fopen("contasTemp.txt", "wb");
  60.                
  61.                 while(fread(&c, sizeof(c), 1, arqConta) == 1){
  62.                     if(c.numConta == contaEscolhida){
  63.                         c.saldoConta = c.saldoConta - valorTemp;
  64.                         fwrite(&c, sizeof(c), 1, arqContaTemp);
  65.                     }
  66.                     else{
  67.                         fwrite(&c, sizeof(c), 1, arqContaTemp);
  68.                     }
  69.                }
  70.                
  71.                fclose(arqConta);
  72.                fclose(arqContaTemp);
  73.                
  74.     arqConta = fopen("contas.txt", "wb");
  75.     arqContaTemp = fopen("contasTemp.txt", "rb");
  76.              
  77.              while (fread(&c, sizeof(c), 1, arqContaTemp)){
  78.                    
  79.              fwrite(&c, sizeof(c), 1, arqConta);
  80.                            
  81.              }
  82.              
  83.              fclose(arqConta);
  84.              fclose(arqContaTemp);
  85.    
  86. }
  87.  
  88. float atualizarSaldo2(float valorTemp){ //atualiza o saldo, nesse caso, quando é um acréscimo
  89.    
  90.     arqConta = fopen("contas.txt", "rb");
  91.     arqContaTemp = fopen("contasTemp.txt", "wb");
  92.                
  93.                 while(fread(&c, sizeof(c), 1, arqConta) == 1){
  94.                     if(c.numConta == contaEscolhida){
  95.                         c.saldoConta = c.saldoConta + valorTemp;
  96.                         fwrite(&c, sizeof(c), 1, arqContaTemp);
  97.                     }
  98.                     else{
  99.                         fwrite(&c, sizeof(c), 1, arqContaTemp);
  100.                     }
  101.                }
  102.                
  103.                fclose(arqConta);
  104.                fclose(arqContaTemp);
  105.                
  106.     arqConta = fopen("contas.txt", "wb");
  107.     arqContaTemp = fopen("contasTemp.txt", "rb");
  108.              
  109.              while (fread(&c, sizeof(c), 1, arqContaTemp)){
  110.                    
  111.              fwrite(&c, sizeof(c), 1, arqConta);
  112.                            
  113.              }
  114.              
  115.              fclose(arqConta);
  116.              fclose(arqContaTemp);
  117.    
  118. }
  119.  
  120. void mostrarConta(int contaEscolhida){  //mostra todos os dados da conta
  121.      arqConta = fopen("contas.txt", "rb");
  122.              
  123.              while(fread(&c, sizeof(c), 1, arqConta) == 1){
  124.                  
  125.                   if(c.numConta == contaEscolhida){
  126.                  
  127.                   printf("\nNumero da conta: %d", c.numConta);
  128.                   printf("\nNome do cliente: %s", c.nomeCliente);
  129.                   printf("\nCPF do cliente: %s", c.CPFCliente);
  130.                   printf("\nEndereco do cliente: %s", c.enderecoCliente);
  131.                   printf("\nSaldo atual: %.2f\n", c.saldoConta);
  132.                   break;
  133.                   }
  134.             }
  135.             fclose(arqConta);
  136. }
  137.  
  138. void mostrarContaMov(int contaEscolhida){   //mostra apenas o nome e o CPF do cliente (quando é movimentação)
  139.    
  140.     arqConta = fopen("contas.txt", "rb");
  141.              
  142.              while(fread(&c, sizeof(c), 1, arqConta) == 1){
  143.                  
  144.                   if(c.numConta == contaEscolhida){
  145.                  
  146.                   printf("\nNome do cliente: %s", c.nomeCliente);
  147.                   printf("\nCPF do cliente: %s", c.CPFCliente);
  148.                   break;
  149.                  
  150.                   }
  151.             }
  152.             fclose(arqConta);
  153.  
  154. }
  155.  
  156. void incluirConta(){
  157.    
  158.     printf("\t\tInclusao de Conta\n\n");
  159.    
  160.             do {
  161.                 printf("Digite o numero da conta: ");
  162.                 scanf("%d", &c.numConta);
  163.                
  164.                
  165.                 do{
  166.                     if(c.numConta <= 0){
  167.                      printf("Numero de conta invalido!");
  168.                      }
  169.                 }while(c.numConta <= 0); //o numero da conta não pode ser negativo                
  170.                
  171.                 arqConta = fopen("contas.txt", "rb");
  172.                
  173.                 contaExistente = 0;
  174.                
  175.                 while(fread(&cTemp, sizeof(cTemp), 1, arqConta) == 1){
  176.                   if (cTemp.numConta == c.numConta) {
  177.                      
  178.                      contaExistente = 1;
  179.                      break;
  180.                   }
  181.                }
  182.                
  183.                fclose(arqConta);
  184.                
  185.                if (contaExistente == 1) {
  186.                   printf("\nNumero de conta ja existente. Digite um numero de conta diferente.\n\n");
  187.                }
  188.                
  189.             } while (contaExistente == 1);
  190.            
  191.             printf("Nome do cliente: ");
  192.             fflush(stdin);
  193.             gets(c.nomeCliente);
  194.            
  195.             printf("CPF: ");
  196.             gets(c.CPFCliente);
  197.            
  198.             printf("Endereco: ");
  199.             gets(c.enderecoCliente);
  200.            
  201.             c.saldoConta = 0;
  202.             printf("\nSaldo Inicial da Conta: R$ %4.2f", c.saldoConta);
  203.            
  204.             arqConta = fopen("contas.txt", "ab");
  205.            
  206.             fwrite(&c, sizeof(c), 1, arqConta);
  207.            
  208.             fclose(arqConta);
  209.              
  210.             printf("\nConta salva com sucesso!\n\n");
  211. }
  212.  
  213. void excluirConta(){
  214.    
  215.     printf("\t\tExclusao de Conta\n\n");
  216.              
  217.              printf("Digite o numero da conta que deseja excluir: ");
  218.              scanf("%d", &contaEscolhida);
  219.              
  220.              verificaContaExistente(contaEscolhida);
  221.                
  222.             if (contaExistente == 0) {
  223.                 printf("\nO numero de conta digitado nao existe. Repita a operacao.\n\n");
  224.                  
  225.             }
  226.              
  227.             else{
  228.              
  229.              mostrarConta(contaEscolhida);
  230.              
  231.              do{
  232.                
  233.              printf("\n\nRealmente deseja excluir essa conta? Sim [S] /  Nao [N]: ");
  234.              fflush(stdin);
  235.              scanf("%c", &confirmacao);
  236.              confirmacao = toupper(confirmacao);
  237.              
  238.              }while ((confirmacao != 'S')&&(confirmacao != 'N'));
  239.              
  240.              if(confirmacao == 'S'){
  241.            
  242.              arqConta = fopen("contas.txt", "rb");
  243.              arqContaTemp = fopen("contasTemp.txt", "wb");
  244.              
  245.              while (fread(&c, sizeof(c), 1, arqConta)){
  246.                    
  247.              if(c.numConta != contaEscolhida){
  248.                            
  249.                            fwrite(&c, sizeof(c), 1, arqContaTemp);
  250.                            
  251.                            }
  252.              }
  253.              fclose(arqConta);
  254.              fclose(arqContaTemp);
  255.              
  256.              arqConta = fopen("contas.txt", "wb");
  257.              arqContaTemp = fopen("contasTemp.txt", "rb");
  258.              
  259.              while (fread(&c, sizeof(c), 1, arqContaTemp)){
  260.                    
  261.              fwrite(&c, sizeof(c), 1, arqConta);
  262.                            
  263.              }
  264.              
  265.              fclose(arqConta);
  266.              fclose(arqContaTemp);
  267.              
  268.              printf("\nConta excluida com sucesso!\n\n");
  269.              
  270.              }//fim do if de confirmação
  271.              
  272.              else{
  273.              
  274.              printf("\nOperacao Cancelada\n\n");
  275.              
  276.                 } //fim do else de confirmacao
  277.              
  278.             }//fim da operacao de exclusao
  279. }
  280.  
  281. void alterarConta(){
  282.    
  283.     printf("\t\tAlteracao de Conta\n\n");
  284.              
  285.              printf("Digite o numero da conta que deseja alterar: ");
  286.              scanf("%d", &contaEscolhida);
  287.              
  288.              verificaContaExistente(contaEscolhida);
  289.                
  290.             if (contaExistente == 0) {
  291.                 printf("\nO numero de conta digitado nao existe. Repita a operacao.\n\n");
  292.             }
  293.            
  294.             else{
  295.              
  296.             mostrarConta(contaEscolhida);
  297.            
  298.             do{
  299.                
  300.              printf("\n\nRealmente deseja alterar essa conta? Sim [S] /  Nao [N]: ");
  301.              fflush(stdin);
  302.              scanf("%c", &confirmacao);
  303.              confirmacao = toupper(confirmacao);
  304.              
  305.              }while ((confirmacao != 'S')&&(confirmacao != 'N'));
  306.              
  307.              if(confirmacao == 'S'){
  308.              
  309.              arqConta = fopen("contas.txt", "rb");
  310.              arqContaTemp = fopen("contasTemp.txt", "wb");
  311.              
  312.              while (fread(&c, sizeof(c), 1, arqConta)){
  313.                    
  314.              if(c.numConta == contaEscolhida){
  315.                            
  316.                               printf("Nome do cliente: ");
  317.                               fflush(stdin);
  318.                               gets(c.nomeCliente);
  319.            
  320.                               printf("CPF: ");
  321.                               gets(c.CPFCliente);
  322.            
  323.                               printf("Endereco: ");
  324.                               gets(c.enderecoCliente);
  325.                              
  326.                               fwrite(&c, sizeof(c), 1, arqContaTemp);
  327.                            
  328.                               }
  329.                            
  330.              else{
  331.                  
  332.                   fwrite(&c, sizeof(c), 1, arqContaTemp);
  333.                  
  334.                   }
  335.              }
  336.              fclose(arqConta);
  337.              fclose(arqContaTemp);
  338.              
  339.              arqConta = fopen("contas.txt", "wb");
  340.              arqContaTemp = fopen("contasTemp.txt", "rb");
  341.              
  342.              while (fread(&c, sizeof(c), 1, arqContaTemp)){
  343.                    
  344.              fwrite(&c, sizeof(c), 1, arqConta);
  345.                            
  346.              }
  347.              
  348.              fclose(arqConta);
  349.              fclose(arqContaTemp);
  350.              
  351.              printf("\nConta alterada com sucesso!\n\n");
  352.              
  353.                 }//fim do if da confirmacao
  354.                
  355.             else{
  356.              
  357.              printf("\nOperacao Cancelada\n\n");
  358.              
  359.                 } //fim do else de confirmacao
  360.              
  361.             }//fim da operacao de alteracao
  362. }
  363.  
  364. void listarContas(){
  365.    
  366.     printf("\t\tListagem de Contas e Saldos\n\n");
  367.              
  368.              arqConta = fopen("contas.txt", "rb");
  369.              
  370.              while(fread(&c, sizeof(c), 1, arqConta) == 1){
  371.                  
  372.                   printf("\nNumero da conta: %d", c.numConta);
  373.                   printf("\nNome do cliente: %s", c.nomeCliente);
  374.                   printf("\nCPF do cliente: %s", c.CPFCliente);
  375.                   printf("\nEndereco do cliente: %s", c.enderecoCliente);
  376.                   printf("\nSaldo atual: %.2f\n", c.saldoConta);
  377.             }
  378.            
  379.             fclose(arqConta);
  380.            
  381.             printf("\nListagem realizada com sucesso!\n\n");
  382.    
  383. }
  384.  
  385. void fazerSaque(){
  386.        
  387.         printf("Digite o numero da conta: ");
  388.         scanf("%d", &contaEscolhida);
  389.        
  390.         verificaContaExistente(contaEscolhida);
  391.                
  392.         if (contaExistente == 0){
  393.             printf("\nO numero de conta digitado nao existe. Repita a operacao.\n\n");
  394.             getch();
  395.         }
  396.              
  397.         else{
  398.                
  399.         mostrarContaMov(contaEscolhida);
  400.        
  401.         do{
  402.         printf("\n\nDigite o valor do saque: ");
  403.         scanf("%f", &valorTemp);
  404.        
  405.         if(valorTemp <= 0){
  406.                      printf("Valor de saque invalido!");
  407.                      }
  408.        
  409.         }while(valorTemp <= 0);
  410.        
  411.                 arqConta = fopen("contas.txt", "rb");
  412.                
  413.                 while(fread(&c, sizeof(c), 1, arqConta) == 1){
  414.                     if(c.numConta == contaEscolhida){
  415.                             if (c.saldoConta < valorTemp) {
  416.                                 printf ("Voce nao pode sacar um valor superior ao saldo disponivel!\n");
  417.                                 getch();
  418.                             }
  419.                             else{
  420.                                     printf("Digite a data atual: ");
  421.                                     fflush(stdin);
  422.                                     gets(m.data);
  423.                                    
  424.                                     do{
  425.                
  426.                                         printf("\n\nRealmente deseja realizar o saque? Sim [S] /  Nao [N]: ");
  427.                                         fflush(stdin);
  428.                                         scanf("%c", &confirmacao);
  429.                                         confirmacao = toupper(confirmacao);
  430.              
  431.                                     }while ((confirmacao != 'S') && (confirmacao != 'N'));
  432.                                    
  433.                                     if(confirmacao == 'S'){
  434.                                    
  435.                                     m.valorMov = valorTemp;
  436.                                     m.tipoMov = 'S';
  437.                                     m.numCR = contaEscolhida;
  438.                                     atualizarSaldo(valorTemp);
  439.                                     arqMov = fopen("movimentacoes.txt", "ab");
  440.                                     fwrite(&m, sizeof(m), 1, arqMov);
  441.                                    
  442.                                     printf("\nSaque realizado com sucesso!\n\n");
  443.                                    
  444.                                     fclose(arqMov);
  445.                                     }//fim do if de confirmacao
  446.                                    
  447.                                      else{
  448.              
  449.                                         printf("\nOperacao Cancelada\n\n");
  450.              
  451.                                         } //fim do else de confirmacao
  452.                                    
  453.                             }
  454.                     }
  455.                }
  456.                
  457.                fclose(arqConta);
  458.              
  459.     }//fim do else de conta existente
  460.  
  461. }
  462.  
  463. void fazerDeposito(){
  464.  
  465.        
  466.        
  467.         printf("Digite o numero da conta: ");
  468.         scanf("%d", &contaEscolhida);
  469.        
  470.         arqConta = fopen("contas.txt", "rb");
  471.         contaExistente = 0;
  472.                
  473.                 while(fread(&c, sizeof(c), 1, arqConta) == 1){
  474.                   if (contaEscolhida == c.numConta) {
  475.                      
  476.                      contaExistente = 1;
  477.                      break;
  478.                   }
  479.                }
  480.                
  481.                fclose(arqConta);
  482.                
  483.         if (contaExistente == 0){
  484.             printf("\nO numero de conta digitado nao existe. Repita a operacao.\n\n");
  485.             getch();
  486.         }
  487.              
  488.         else{
  489.                
  490.         mostrarContaMov(contaEscolhida);
  491.        
  492.         do{
  493.         printf("\n\nDigite o valor do deposito: ");
  494.         scanf("%f", &valorTemp);
  495.        
  496.         if(valorTemp <= 0){
  497.                      printf("Valor de deposito invalido!");
  498.                      }
  499.        
  500.         }while(valorTemp <= 0);
  501.        
  502.        
  503.                 arqConta = fopen("contas.txt", "rb");
  504.                
  505.                 while(fread(&c, sizeof(c), 1, arqConta) == 1){
  506.                     if(c.numConta == contaEscolhida){
  507.                            
  508.                                     printf("Digite a data atual: ");
  509.                                     fflush(stdin);
  510.                                     gets(m.data);
  511.                                    
  512.                                     do{
  513.                                         printf("\n\nRealmente deseja realizar o deposito? Sim [S] /  Nao [N]: ");
  514.                                         fflush(stdin);
  515.                                         scanf("%c", &confirmacao);
  516.                                         confirmacao = toupper(confirmacao);
  517.              
  518.                                     }while ((confirmacao != 'S') && (confirmacao != 'N'));
  519.                                    
  520.                                     if(confirmacao == 'S'){
  521.                                    
  522.                                     m.valorMov = valorTemp;
  523.                                     m.tipoMov = 'D';
  524.                                     m.numCR = contaEscolhida;  
  525.                                     atualizarSaldo2(valorTemp);
  526.                                     arqMov = fopen("movimentacoes.txt", "ab");
  527.                                     fwrite(&m, sizeof(m), 1, arqMov);
  528.                                     fclose(arqMov);
  529.                                    
  530.                                     printf("\nDeposito realizado com sucesso!\n\n");
  531.                                    
  532.                                     }//fim do if de confirmacao
  533.                                    
  534.                                      else{
  535.              
  536.                                         printf("\nOperacao Cancelada\n\n");
  537.              
  538.                                         } //fim do else de confirmacao
  539.                     }
  540.                }
  541.                
  542.                fclose(arqConta);
  543.              
  544.     }//fim do else de conta existente
  545.  
  546. }
  547.  
  548. void fazerTransferencia(){
  549.    
  550.     printf("\n\nDigite o numero da conta de origem: ");
  551.     scanf("%d", &contaEscolhida);
  552.    
  553.     verificaContaExistente(contaEscolhida);
  554.    
  555.      if (contaExistente == 0) {
  556.             printf("\n\nO numero de conta de origem nao existe. Repita a operacao.\n\n");
  557.         }
  558.        
  559.     else{
  560.    
  561.     int origem = contaEscolhida;
  562.        
  563.     mostrarContaMov(contaEscolhida);
  564.    
  565.     printf("\n\nDigite o numero da conta de destino: ");
  566.     scanf("%d", &contaEscolhida);
  567.    
  568.     verificaContaExistente(contaEscolhida);
  569.    
  570.      if (contaExistente == 0) {
  571.             printf("\n\nO numero de conta de destino nao existe. Repita a operacao.\n\n");
  572.         }
  573.        
  574.         else{
  575.        
  576.         int destino = contaEscolhida;
  577.    
  578.         mostrarContaMov(contaEscolhida);
  579.        
  580.         do{
  581.         printf("\n\nDigite o valor da transferencia: ");
  582.         scanf("%f", &valorTemp);
  583.        
  584.         if(valorTemp <= 0){
  585.                      printf("Valor da transferencia invalido!");
  586.                      }
  587.        
  588.         }while(valorTemp <= 0);
  589.    
  590.         arqConta = fopen("contas.txt", "rb");
  591.                    
  592.                     while(fread(&c, sizeof(c), 1, arqConta) == 1){
  593.                         if(c.numConta == origem){
  594.                                 if (c.saldoConta < valorTemp) {
  595.                                     printf ("\nNao se pode transferir um valor superior ao saldo disponivel na conta de origem!\n");
  596.                                     fclose(arqConta);
  597.                                     getch();
  598.                                 }
  599.                                 else{
  600.                                         printf("Digite a data atual: ");
  601.                                         fflush(stdin);
  602.                                         gets(m.data);
  603.                                        
  604.                                         do{
  605.                    
  606.                                             printf("\n\nRealmente deseja realizar a transferencia? Sim [S] /  Nao [N]: ");
  607.                                             fflush(stdin);
  608.                                             scanf("%c", &confirmacao);
  609.                                             confirmacao = toupper(confirmacao);
  610.                  
  611.                                         }while ((confirmacao != 'S') && (confirmacao != 'N'));
  612.                                        
  613.                                         if(confirmacao == 'S'){
  614.                                        
  615.                                         m.valorMov = valorTemp;
  616.                                         m.tipoMov = 'T';
  617.                                         m.numCR = ' ';
  618.                                         m.numCO = origem;
  619.                                         m.numCD = destino;
  620.                                        
  621.                                         arqMov = fopen("movimentacoes.txt", "ab");
  622.                                         fwrite(&m, sizeof(m), 1, arqMov);
  623.                                        
  624.                                         //atualizar origem saldo1 e destino saldo2
  625.                                         contaEscolhida = origem;
  626.                                         atualizarSaldo(valorTemp);
  627.                                         contaEscolhida = destino;
  628.                                         atualizarSaldo2(valorTemp);
  629.                                        
  630.                                         printf("\nTransferencia realizada com sucesso!\n\n");
  631.                                        
  632.                                         fclose(arqMov);
  633.                    
  634.                                         }//fim do if de confirmacao
  635.                                        
  636.                                          else{
  637.              
  638.                                              printf("\nOperacao Cancelada\n\n");
  639.                                              
  640.                                                 } //fim do else de confirmacao
  641.                                        
  642.                                 }
  643.                         }
  644.                    }
  645.                    
  646.         }
  647.     }
  648. }
  649.  
  650. void listarExtrato(){
  651.    
  652.     printf("\n\nDigite o numero da conta: ");
  653.     scanf("%d", &contaEscolhida);
  654.    
  655.     verificaContaExistente(contaEscolhida);
  656.    
  657.      if (contaExistente == 0) {
  658.             printf("\nO numero de conta solicitado nao existe. Repita a operacao.\n\n");
  659.             getch();
  660.         }
  661.        
  662.     else{
  663.         system("CLS");
  664.         printf("\t\t\tExtrato da Conta: %d \n", contaEscolhida);
  665.        
  666.          arqConta = fopen("contas.txt", "rb");
  667.          
  668.          int contMov = 0;
  669.              
  670.              while(fread(&c, sizeof(c), 1, arqConta) == 1){
  671.                
  672.                  
  673.                   if(c.numConta == contaEscolhida){
  674.                  
  675.                   printf("\n\nNome do cliente: %s", c.nomeCliente);
  676.                   printf("\nCPF do cliente: %s", c.CPFCliente);
  677.                  
  678.                   arqMov = fopen("movimentacoes.txt", "rb");
  679.                  
  680.                   while(fread(&m, sizeof(m), 1, arqMov) == 1){
  681.                    
  682.                     if(m.numCR == c.numConta){
  683.                        
  684.                         printf("\n\nTipo de movimentacao: ");
  685.                         switch(m.tipoMov){
  686.                             case 'S': printf("Saque");break;
  687.                             case 'D': printf("Deposito");break;
  688.                             }
  689.                            
  690.                         printf("\nData: %s", m.data);
  691.                         printf("\nValor: %4.2f\n\n", m.valorMov);
  692.                         contMov++;
  693.                        
  694.                     }//quando e saque ou deposito
  695.                    
  696.                     if(m.numCO == c.numConta){
  697.                        
  698.                         printf("\n\nTipo de movimentacao: Transferencia (origem)");
  699.                            
  700.                         printf("\nData: %s", m.data);
  701.                         printf("\nValor: %4.2f", m.valorMov);
  702.                         printf("\nConta destino: %d\n\n", m.numCD);
  703.                         contMov++;
  704.                        
  705.                     }//quando e transferencia origem
  706.                    
  707.                     if(m.numCD == c.numConta){
  708.                        
  709.                         printf("\n\nTipo de movimentacao: Transferencia (destino)");
  710.                            
  711.                         printf("\nData: %s", m.data);
  712.                         printf("\nValor: %4.2f", m.valorMov);
  713.                         printf("\nConta de origem: %d\n\n", m.numCO);
  714.                         contMov++;
  715.                        
  716.                     }//quando e transferencia origem
  717.                                        
  718.                   }//fim do while das movimentacoes
  719.                  
  720.                     if(contMov == 0){
  721.                         printf("\nA conta escolhida ainda nao efetuou movimentacoes!\n\n\n");
  722.                     }
  723.                  
  724.                   }//fim do if de conta escolhida
  725.             }//fim do while
  726.             fclose(arqMov);
  727.             fclose(arqConta);
  728.                  
  729.     }
  730.      
  731. }//fim da funcao
  732.  
  733. /* --------------------------------- MENU ------------------------------------*/
  734.  
  735. int main(){
  736.    
  737.     int opcao;
  738.  
  739.     do{
  740.         system("CLS");
  741.         printf("1. Incluir nova conta\n");
  742.         printf("2. Excluir conta\n");
  743.         printf("3. Alterar conta\n");
  744.         printf("4. Movimentacoes bancarias\n");
  745.         printf("5. Listar contas e saldos existentes\n");
  746.         printf("6. Listar extrato\n");
  747.         printf("0. Sair\n");
  748.  
  749.         printf("\nOpcao: ");
  750.         scanf("%d", &opcao);
  751.  
  752.         switch(opcao){
  753.                      
  754.         case 0:
  755.            
  756.             printf("\nSaindo do programa!\n\n");
  757.             break;
  758.  
  759.         case 1:
  760.            
  761.             system("CLS");
  762.             incluirConta();
  763.            
  764.             break;
  765.  
  766.         case 2:
  767.              
  768.              system("CLS");
  769.              excluirConta();
  770.              break;
  771.            
  772.         case 3:
  773.              
  774.              system("CLS");
  775.              alterarConta();
  776.                          
  777.              break;
  778.            
  779.         case 4:
  780.              system("CLS");
  781.              char opMovimentacao;
  782.    
  783.                 printf("[S] Saque");
  784.                 printf("[D] Deposito");
  785.                 printf("[T] Transferencia");
  786.    
  787.                 printf("\nEscolha o tipo de movimentacao: ");
  788.                 fflush(stdin);
  789.                 scanf("%c", &opMovimentacao);
  790.                 opMovimentacao = toupper(opMovimentacao);
  791.    
  792.                 if(opMovimentacao == 'S'){
  793.                     fazerSaque();
  794.                 }
  795.        
  796.                 else if(opMovimentacao == 'D'){
  797.                      fazerDeposito();          
  798.                 }
  799.                
  800.                 else if(opMovimentacao == 'T'){
  801.                      fazerTransferencia();
  802.                 }
  803.                
  804.                 else{
  805.                     printf("\nOpcao Invalida!\n\n");
  806.                 }
  807.                break;
  808.         case 5:
  809.              
  810.              system("CLS");
  811.              listarContas();
  812.              break;
  813.            
  814.         case 6:
  815.              system("CLS");
  816.              listarExtrato();
  817.              break;
  818.  
  819.         default:
  820.                
  821.             printf("\nOpcao invalida!\n\n");
  822.            
  823.             break;
  824.         }
  825.  
  826.         system("PAUSE");
  827.     }while(opcao != 0);
  828.  
  829.     return EXIT_SUCCESS;
  830. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement