Advertisement
LightProgrammer000

Banco

Feb 25th, 2020
699
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 10.54 KB | None | 0 0
  1. package Tarefas_1;
  2.  
  3. // Bibliotecas
  4. import java.util.Scanner;
  5. import java.text.DecimalFormat;
  6.  
  7. public class EX_13
  8. {
  9.     public static void main(String[] args)
  10.     {
  11.         try
  12.         {
  13.             exec_program();            
  14.         }
  15.  
  16.         catch (Exception e)
  17.         {
  18.             System.out.println(e);
  19.         }
  20.     }
  21.  
  22.     // Metodo: Execucao do programa principal
  23.     private static void exec_program()
  24.     {
  25.         // Variaveis: Saque
  26.         int saque;
  27.         int saque_original;
  28.        
  29.         // Variaveis: Quantidade de notas
  30.         int qtd_nota_1 = 100;
  31.         int qtd_nota_5 = 100;
  32.         int qtd_nota_10 = 100;
  33.         int qtd_nota_50 = 0;
  34.        
  35.         // Variaveis: Controle do caixa eletronico
  36.         int limite_saque = 0;
  37.         int somatorio_saque = 0;
  38.         int somatorio_caixa = qtd_nota_1 * 1 + qtd_nota_5 * 5 + qtd_nota_10 * 10 + qtd_nota_50 * 50;
  39.  
  40.         while (true)
  41.         {
  42.             saque = analise_saque();
  43.             saque_original = saque;
  44.            
  45.             if (saque == 0)
  46.             {
  47.                 continue;
  48.             }
  49.  
  50.             if (saque > somatorio_caixa)
  51.             {
  52.                 saque_insuficiente();
  53.             }
  54.            
  55.             else if (saque < 0)
  56.             {
  57.                 finalizando_operacao();
  58.                 break;
  59.             }
  60.            
  61.             else if (qtd_nota_50 == 0 && qtd_nota_10 == 0 && qtd_nota_5 == 0 && qtd_nota_1 == 0)
  62.             {
  63.                 caixa_sem_notas();
  64.                 break;
  65.             }
  66.  
  67.             else
  68.             {
  69.                 // Limites de saques
  70.                 limite_saque = limite_quantidade_saque(limite_saque);
  71.                
  72.                 // Estrutura de repeticao: Calculo das notas
  73.                 while (saque > 0)
  74.                 {
  75.                     if (saque % 50 == 0 && qtd_nota_50 > 0)
  76.                     {
  77.                         saque -= 50;
  78.                         qtd_nota_50--;
  79.                     }
  80.  
  81.                     else if (saque % 10 == 0 && qtd_nota_10 > 0)
  82.                     {
  83.                         saque -= 10;
  84.                         qtd_nota_10--;
  85.                     }
  86.  
  87.                     else if (saque % 5 == 0 && qtd_nota_5 > 0)
  88.                     {
  89.                         saque -= 5;
  90.                         qtd_nota_5--;
  91.                     }
  92.  
  93.                     else if (saque % 1 == 0 && qtd_nota_1 > 0)
  94.                     {
  95.                         saque -= 1;
  96.                         qtd_nota_1--;
  97.                     }
  98.                 }
  99.                
  100.                 // Controle do valor dentro do caixa eletronico
  101.                 somatorio_caixa = somatorio_caixa(somatorio_caixa, saque_original);
  102.                
  103.                 // Somatorio de saques
  104.                 somatorio_saque = somatorio_saque(somatorio_saque, saque_original);
  105.                
  106.                 // Recibo do caixa
  107.                 recibo(somatorio_caixa, saque_original, somatorio_saque, limite_saque, qtd_nota_1, qtd_nota_5, qtd_nota_10, qtd_nota_50);
  108.  
  109.                 // Estrutura de decisao: Limite de saques
  110.                 if ( limite_saque == 5 )
  111.                 {
  112.                     break;
  113.                 }
  114.             }
  115.         }
  116.     }  
  117.  
  118.     // Funcao: Analise de saque
  119.     private static int analise_saque()
  120.     {
  121.         // Variaveis
  122.         int saque;
  123.  
  124.         // Instanciacao
  125.         Scanner ent = new Scanner(System.in);
  126.  
  127.         // Entrada de dados
  128.         System.out.println("\n########## SAQUE ##########");        
  129.         System.out.print("# Saque ['-1' cancelar saque]: ");
  130.         saque = ent.nextInt();
  131.        
  132.         // Estrutura de repeticao: Saques acima de R$ 1000,00
  133.         while (saque > 1000)
  134.         {
  135.             // Mensagem: Erro
  136.             System.out.println("# Somente valores abaixo de R$ 1000,00 a cada saque");
  137.  
  138.             // Entrada de dados
  139.             System.out.println("\n########## SAQUE ##########");
  140.             System.out.print("# Saque ['-1' cancelar saque]: ");
  141.             saque = ent.nextInt();
  142.         }
  143.  
  144.         return saque;
  145.     }
  146.  
  147.     // Metodo: Recibo do caixa eletronico
  148.     private static void recibo(int somatorio_caixa, int saque_original, int somatorio_saque, int limite_saque, int qtd_nota_1, int qtd_nota_5, int qtd_nota_10, int qtd_nota_50)
  149.     {
  150.         // Instanciacao
  151.         DecimalFormat fmt = new DecimalFormat("R$ ###,###,###,##0.00");
  152.        
  153.         if (qtd_nota_1 == 0)
  154.         {
  155.             // Relatorio
  156.             System.out.printf("\n-------------------- RECIBO [%d] --------------------\n", limite_saque);
  157.             System.out.print("# Saque: " + fmt.format(saque_original) + "\n");
  158.             System.out.print("# Somatorio de saque: " + fmt.format(somatorio_saque) + "\n");
  159.             System.out.print("# Valor do caixa: " + fmt.format(somatorio_caixa) + "\n");
  160.             System.out.print("# Quantidade de saques: " + limite_saque + "\n");
  161.             //System.out.print("# Notas de 1 disponiveis: " + qtd_nota_1 + "\n");
  162.             System.out.print("# Notas de 5 disponiveis: " + qtd_nota_5 + "\n");
  163.             System.out.print("# Notas de 10 disponiveis: " + qtd_nota_10 + "\n");
  164.             System.out.print("# Notas de 50 disponiveis: " + qtd_nota_50 + "\n");
  165.             System.out.println("------------------------------------------------");              
  166.         }
  167.        
  168.         else if (qtd_nota_5 == 0)
  169.         {
  170.             // Relatorio
  171.             System.out.printf("\n-------------------- RECIBO [%d] --------------------\n", limite_saque);
  172.             System.out.print("# Saque: " + fmt.format(saque_original) + "\n");
  173.             System.out.print("# Somatorio de saque: " + fmt.format(somatorio_saque) + "\n");
  174.             System.out.print("# Valor do caixa: " + fmt.format(somatorio_caixa) + "\n");
  175.             System.out.print("# Quantidade de saques: " + limite_saque + "\n");
  176.             System.out.print("# Notas de 1 disponiveis: " + qtd_nota_1 + "\n");
  177.             //System.out.print("# Notas de 5 disponiveis: " + qtd_nota_5 + "\n");
  178.             System.out.print("# Notas de 10 disponiveis: " + qtd_nota_10 + "\n");
  179.             System.out.print("# Notas de 50 disponiveis: " + qtd_nota_50 + "\n");
  180.             System.out.println("------------------------------------------------");              
  181.         }
  182.        
  183.         else if (qtd_nota_10 == 0)
  184.         {
  185.             // Relatorio
  186.             System.out.printf("\n-------------------- RECIBO [%d] --------------------\n", limite_saque);
  187.             System.out.print("# Saque: " + fmt.format(saque_original) + "\n");
  188.             System.out.print("# Somatorio de saque: " + fmt.format(somatorio_saque) + "\n");
  189.             System.out.print("# Valor do caixa: " + fmt.format(somatorio_caixa) + "\n");
  190.             System.out.print("# Quantidade de saques: " + limite_saque + "\n");
  191.             System.out.print("# Notas de 1 disponiveis: " + qtd_nota_1 + "\n");
  192.             System.out.print("# Notas de 5 disponiveis: " + qtd_nota_5 + "\n");
  193.             //System.out.print("# Notas de 10 disponiveis: " + qtd_nota_10 + "\n");
  194.             System.out.print("# Notas de 50 disponiveis: " + qtd_nota_50 + "\n");
  195.             System.out.println("------------------------------------------------");              
  196.         }
  197.        
  198.         else if (qtd_nota_50 == 0)
  199.         {
  200.             // Relatorio
  201.             System.out.printf("\n-------------------- RECIBO [%d] --------------------\n", limite_saque);
  202.             System.out.print("# Saque: " + fmt.format(saque_original) + "\n");
  203.             System.out.print("# Somatorio de saque: " + fmt.format(somatorio_saque) + "\n");
  204.             System.out.print("# Valor do caixa: " + fmt.format(somatorio_caixa) + "\n");
  205.             System.out.print("# Quantidade de saques: " + limite_saque + "\n");
  206.             System.out.print("# Notas de 1 disponiveis: " + qtd_nota_1 + "\n");
  207.             System.out.print("# Notas de 5 disponiveis: " + qtd_nota_5 + "\n");
  208.             System.out.print("# Notas de 10 disponiveis: " + qtd_nota_10 + "\n");
  209.             //System.out.print("# Notas de 50 disponiveis: " + qtd_nota_50 + "\n");
  210.             System.out.println("------------------------------------------------");              
  211.         }
  212.  
  213.         else
  214.         {
  215.             // Relatorio
  216.             System.out.printf("\n-------------------- RECIBO [%d] --------------------\n", limite_saque);
  217.             System.out.print("# Saque: " + fmt.format(saque_original) + "\n");
  218.             System.out.print("# Somatorio de saque: " + fmt.format(somatorio_saque) + "\n");
  219.             System.out.print("# Valor do caixa: " + fmt.format(somatorio_caixa) + "\n");
  220.             System.out.print("# Quantidade de saques: " + limite_saque + "\n");
  221.             System.out.print("# Notas de 1 disponiveis: " + qtd_nota_1 + "\n");
  222.             System.out.print("# Notas de 5 disponiveis: " + qtd_nota_5 + "\n");
  223.             System.out.print("# Notas de 10 disponiveis: " + qtd_nota_10 + "\n");
  224.             System.out.print("# Notas de 50 disponiveis: " + qtd_nota_50 + "\n");
  225.             System.out.println("------------------------------------------------");  
  226.         }
  227.     }
  228.  
  229.     ///////////////////////////////// CONTROLE /////////////////////////////////
  230.  
  231.     private static int limite_quantidade_saque(int limite_saque)
  232.     {
  233.         return ++limite_saque;
  234.     }
  235.  
  236.     private static int somatorio_saque(int somatorio_saque, int saque_original)
  237.     {
  238.         somatorio_saque += saque_original;
  239.  
  240.         return somatorio_saque;
  241.     }
  242.  
  243.     private static int somatorio_caixa(int somatorio_caixa, int saque_original)
  244.     {
  245.         somatorio_caixa -= saque_original;
  246.        
  247.         return somatorio_caixa;
  248.     }
  249.  
  250.     ////////////////////////////////// ERROS ///////////////////////////////////
  251.  
  252.     private static void finalizando_operacao()
  253.     {
  254.         System.out.println("\n--------------------------------");
  255.         System.out.println("# Finalizando operacao no caixa");
  256.         System.out.println("--------------------------------");
  257.     }
  258.    
  259.     private static void saque_insuficiente()
  260.     {
  261.         System.out.println("\n-----------------------------");
  262.         System.out.println("# Saque insuficiente no caixa");
  263.         System.out.println("-----------------------------");
  264.     }
  265.  
  266.     private static void caixa_sem_notas()
  267.     {
  268.         System.out.println("\n-----------------------------");
  269.         System.out.println("# Caixa sem notas suficientes");
  270.         System.out.println("-----------------------------");
  271.     }
  272. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement