All pastes #993937 Raw Edit

Anonymous

public text v1 · immutable
#993937 ·published 2008-04-22 23:45 UTC
rendered paste body
/*
 * ACH 2001 - Introdução a Ciencia da Computação I
 * EACH-USP - Primeiro Semestre de 2008
 * Turma 04 - Professor Delano Beder
 * 
 * Primeiro Exercicio-Programa
 * Nome do Arquivo - Banco6412014.java
 * 
 * Claudio Vaz Gomes Neto           6412014
 * 
 * 22/04/08
*/

class Banco6412014 {
  
  //Declaração das variáveis da classe.
  int saldo, notas100, notas50, notas10, notas5, notas1, saque, notassaque100, notassaque50, notassaque10, notassaque5, notassaque1;
  
  //Método que carrega os valores de notas de 100, 50, 10, 5 e 1 ducas.
  public void carregaValores (int notas100, int notas50, int notas10, int notas5, int notas1) {
        
    //Declaração das variáveis "públicas" com o comando this.
    this.notas100 = notas100;
    this.notas50 = notas50;
    this.notas10 = notas10;
    this.notas5 = notas5;
    this.notas1 = notas1;
    this.saldo = saldo;
    
    //Cálculo do saldo com a quantidade das notas.
    saldo = notas100 * 100 + notas50 * 50 + notas10 * 10 + notas5 * 5 + notas1;
  }
  
    //Método privado que imprime as notas sacadas pelo método saque.
  private void imprimeSaque () {
            System.out.println ("Saque autorizado.");
            System.out.println ("Notas de 100: " + notassaque100 + "; notas de 50: " + notassaque50 + "; notas de 10: " + notassaque10 + "; notas de 5: " + notassaque5 + "; notas de 1: " + notassaque1 + ".");
    }

  //Método que recebe um valor inteiro e faz o débito desse valor do saldo total.
  public void saque (int saque) {
    //Cálculo das notas a serem sacadas de cada valor.
    notassaque100 = saque / 100;
    notassaque50 = (saque % 100) / 50;
    notassaque10 = ((saque % 100) % 50) / 10;
    notassaque5 = (((saque % 100) % 50) % 10) / 5;
    notassaque1 = ((((saque % 100) % 50) % 10) % 5);
    //Se as notas a serem sacadas de 100 forem insuficientes para o saque.
    if (notassaque100 > notas100) {
      notassaque50 = notassaque50 + (notassaque100 - notas100) * 2;  
      notassaque100 = notas100;
      
      //Se as notas a serem sacadas de 50 forem insuficientes para o saque.
      if (notassaque50 > notas50) {
        notassaque10 = notassaque10 + (notassaque50 - notas50) * 5; 
        notassaque50 = notas50;
        
        //Se as notas a serem sacadas de 10 forem insuficientes para o saque.
        if (notassaque10 > notas10) { 
        notassaque5 = notassaque5 + (notassaque10 - notas10) * 2;   
        notassaque10 = notas10;
        
        //Se as notas a serem sacadas de 5 forem insuficientes para o saque.
        if (notassaque5 > notas5) {
        notassaque1 = notassaque1 + (notassaque5 - notas5) * 5;  
        notassaque5 = notas5;
        
        //Se as notas a serem sacadas de 1 forem insuficientes para o saque.
        if (notassaque1 > notas1 || notas100 < 0 || notas50 < 0 || notas10 < 0 || notas5 < 0 || notas1 < 0) {
        System.out.println ("Saque não autorizado. Notas insuficientes.");
        }
       }
      }
     }
    }     
    else {
    //Retirada das notas de saque das notas em caixa de cada valor.
    notas100 = notas100 - notassaque100;
    notas50 = notas50 - notassaque50;
    notas10 = notas10 - notassaque10;
    notas5 = notas5 - notassaque5;
    notas1 = notas1 - notassaque1;
    imprimeSaque();
    }
    
    /*Verificação se o saldo total irá ficar negativo.
     * Se for ficar negativo, o saque não será realizado e será impresso a seguinte mensagem:
     * Saque não autorizado. Saldo insuficiente.
     */
    if ((saldo - saque) < 0) {
      System.out.println ("Saque não autorizado. Saldo insuficiente.");
    }
  }
  
  //Método que recebe a quantidade de notas de 100, 50, 10, 5 e 1 a serem depositadas.
  public void deposito (int depo100, int depo50, int depo10, int depo5, int depo1) {
    //Cálculo das quantidades das notas depois dos depósitos.
    notas100 = notas100 + depo100;
    notas50 = notas50 + depo50;
    notas10 = notas10 + depo10;
    notas5 = notas5 + depo5;
    notas1 = notas1 + depo1;
  }
    
  //Método que imprime o saldo atual e a quantidade de notas de 100, 50, 10, 5 e 1 ducas.
  public void imprime () {
    System.out.println ("Saldo atual: " + (notas100 * 100 + notas50 * 50 + notas10 * 10 + notas5 * 5 + notas1) + " ducas.");
    System.out.println ("Notas de 100 ducas: " + notas100 + "; notas de 50 ducas: " + notas50 + "; notas de 10 ducas: " + notas10 + "; notas de 5 ducas: " + notas5 + "; notas de 1 duca: " + notas1 + ".");
  }
}