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