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 + ".");
}
}