[RESOLVIDO]Metódos para fazer um saque numa conta bancária

3 respostas
brunosofolia

Olá pessoal!

Bom eu to começando agora em Java.

Só que o problema é o seguinte. Eu to fazendo um exercício, ele é até do Livro - Java como Programar do Deitel, e nesse exercício ele pede pra criar um metódo que faça um saque. e se a conta não tiver saldo ele imprime "Saldo Insuficiente"

Eu fiz e ate aí beleza.
Compilei deu tudo certo.

Mas o problema é que são duas contas! account1 e account2 na primeira se o valor do saque for maior ele faz tudo certo(ele imprime a mensagem) e no segundo ele deixa a conta com saldo negativo! o que será? é no metódo?

import java.util.Scanner;

public class AccountPrincipal {

    public static void main(String args[]) {
        Account account1 = new Account(50.00);
        Account account2 = new Account(-7.53);

     [i]   //exibe o saldo inicial de cada objeto[/i]
        System.out.printf("Account1 balance: $%.2f\n", account1.getBalance());
        System.out.printf("Account2 balance: $%.2f\n", account2.getBalance());

        //Cria Scanner para obter a entrada a partir da janela de comando
        Scanner input = new Scanner(System.in);
        double depositAmmount; //quantia de depósito lida do usuário
        double debitNomount; //quantia de saque lida do usuário


        System.out.print("Entre com deposito ammount para account1: \n");
        depositAmmount = input.nextDouble(); //obtem a entrada do usuário
        System.out.printf("\nAdding $%.2f for account1\n",depositAmmount);
        account1.credit(depositAmmount); /* adiciona o deposito do usuario a 
                                        account1 */

        System.out.print("Entre com valor do saque para account1: \n");
        debitNomount = input.nextDouble(); //obtem a entrada do usuário
        if(debitNomount>account1.getBalance())
            System.out.print("Anteção!\n  Saldo Insuficiente!\n");
            else if (debitNomount<=account1.getBalance())
                   System.out.printf("\n Debitando $%.2f the account1\n",debitNomount);
        account1.debit(debitNomount); /*debita o valor do usuario account1*/



        //exibe os saldos
        System.out.printf("Saldo de Account1 $%.2f\n", account1.getBalance());
        System.out.printf("Saldo de Account2 $%.2f", account2.getBalance());
        
        System.out.print("\nEntre com deposito ammount para account2: \n");
        depositAmmount = input.nextDouble();
        System.out.printf("Adicionando $%.2f for account1\n",depositAmmount);
        account2.credit(depositAmmount);

        System.out.print("Entre como valor do saque para account2: \n");
        debitNomount = input.nextDouble(); //obtem a entrada do usuário
        if(debitNomount>account2.getBalance())
            System.out.print("Saldo Insuficiente");
           else if(debitNomount<=account2.getBalance())
                System.out.printf("Debitando $%.2f the account2\n",debitNomount);
        account2.debit(debitNomount); //debita o valor do usuário
        
        //exibe os saldos
        System.out.printf("\nSaldo de account1 $%.2f\n",account1.getBalance());
        System.out.printf("Saldo de account2 $%.2f\n",account2.getBalance());
        
        
    } // fim do metodo principal
} //fim da classe principal


+++++++++++++++++++++++++++++++++++++++++++++++++++++



public class Account {
 private double balance; //variável de instância que armazena o saldo

 //construtor
  public Account (double initialBalance)
    {
      if(initialBalance >0.0)
          balance = initialBalance;

  } //fim do construtor Account

  //credita (adiciona) valor a conta
  public void credit (double amount)
    {
      balance=balance+amount; //adiciona valor a conta

  } //fim do metódo credit
   public void debit(double nomount)
    {
       balance=balance-nomount;
      
       
   }

  public double getBalance()
    {
      return balance; //fornece o valor do saldo ao metódo chamador
  } // fim do metódo getbalance


} //fim da classe Account

3 Respostas

rafaelviny

se vc não ler as regras do forum fica complicado ajudar

use as tags, senao ninguem entende esses codigos

qual a duvida? o erro?

L

codigo com tags:

import java.util.Scanner;

public class AccountPrincipal {

public static void main(String args[]) {
Account account1 = new Account(50.00);
Account account2 = new Account(-7.53);

//exibe o saldo inicial de cada objeto
System.out.printf("Account1 balance: $%.2f\n", account1.getBalance());
System.out.printf("Account2 balance: $%.2f\n", account2.getBalance());

//Cria Scanner para obter a entrada a partir da janela de comando
Scanner input = new Scanner(System.in);
double depositAmmount; //quantia de depósito lida do usuário
double debitNomount; //quantia de saque lida do usuário


System.out.print("Entre com deposito ammount para account1: \n");
depositAmmount = input.nextDouble(); //obtem a entrada do usuário
System.out.printf("\nAdding $%.2f for account1\n",depositAmmount);
account1.credit(depositAmmount); /* adiciona o deposito do usuario a
account1 */

System.out.print("Entre com valor do saque para account1: \n");
debitNomount = input.nextDouble(); //obtem a entrada do usuário
if(debitNomount>account1.getBalance())
System.out.print("Anteção!\n Saldo Insuficiente!\n");
else if (debitNomount<=account1.getBalance())
System.out.printf("\n Debitando $%.2f the account1\n",debitNomount);
account1.debit(debitNomount); /*debita o valor do usuario account1*/



//exibe os saldos
System.out.printf("Saldo de Account1 $%.2f\n", account1.getBalance());
System.out.printf("Saldo de Account2 $%.2f", account2.getBalance());

System.out.print("\nEntre com deposito ammount para account2: \n");
depositAmmount = input.nextDouble();
System.out.printf("Adicionando $%.2f for account1\n",depositAmmount);
account2.credit(depositAmmount);

System.out.print("Entre como valor do saque para account2: \n");
debitNomount = input.nextDouble(); //obtem a entrada do usuário
if(debitNomount>account2.getBalance())
System.out.print("Saldo Insuficiente");
else if(debitNomount<=account2.getBalance())
System.out.printf("Debitando $%.2f the account2\n",debitNomount);
account2.debit(debitNomount); //debita o valor do usuário

//exibe os saldos
System.out.printf("\nSaldo de account1 $%.2f\n",account1.getBalance());
System.out.printf("Saldo de account2 $%.2f\n",account2.getBalance());


} // fim do metodo principal
} //fim da classe principal

Ele chega a imprimir a mensagem de “Debitando…”? Pq a logica parece estar certinha…

ps: O valor que vc atribuiu pro saldo da conta2 ja é um valor negativo… por isso perguntei se ta imprimindo a mensagem…

brunosofolia

Cara eu já consegui, na verdade eu tava errando era a sintaxe…mas mesmo assim vlw pelas dicas

Criado 10 de maio de 2011
Ultima resposta 23 de mai. de 2011
Respostas 3
Participantes 3