Pessoal por que o saldo não diminui?

4 respostas
Raff
pessoal eu fiz um classe Cliente esse cliente tem os metodos sacar(), depositar(), gerarArquivo(), lerArquivo(), tbm tem metodos set's() e get's() e tem metodos de subSaldo() e addSaldo() em fim ( tem mais metodos... ) eu gostaria de saber, por que quando eu mando uma messagem ao Objeto cliente para ele sacar o valor não se altera, depois quando eu mostro o valor não foi alterado, estou com dúvida nisso pessoal, nada está querendo alterar, não sei o motivo :oops: se alguem souber agradeço !!! o codigo segue logo abaixo
package caixaeletronico;

/**
 *
 * @author Rafael S.Durelli
 */
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.nio.Buffer;
import java.util.Scanner ;
import java.io.File ;
import java.io.PrintWriter ;
public class Cliente {
    
    private String nome ; // vai ser o login do cliente..
    private String senha ;
    private double saldo ;
    private String conta ;
    private String agencia ;
    private File file ;
    private String ler ;
    
   
    
    public Cliente(String nome, String senha, double valor, String conta, String agencia){
  
        setNome(nome) ;
        setSenha(senha) ;
        setSaldo(valor) ;
        setConta(conta) ;
        setAgencia(agencia) ;
        
        
    }
    
    public void depositar(double valor){
    
        int teste = verificaSenha() ;
        if( teste == 1 ){
         if( valor &lt= 0 ){
        
            System.out.println("Valor invalido para depositar, valor negativo") ;
            
        }
        else
            if( valor &lt 200 ){
            
            System.out.println("Valor inválido para depositar o valor tem quer ser a cima de 200 reais") ;
            }
            else{
                
               addSaldo(valor) ;
               System.out.println("Valor depositado com sucesso.") ;
            }
        
        }
        else{
            
            System.out.println("Senha Ou Login inválido você erro mais de 3 vezes byby") ;
        }
    }
    
    public void sacar( double valor  ){
 
        
        
        if( valor &lt= 0 ){
        
            System.out.println("Valor inválido para sacar.");
        }
         if( valor &gt getSaldo() ){
            
            System.out.println("Valor inválido para sacar.") ;
        }
        int teste = verificaSenha() ;
        if( teste == 1 ){
              if( valor &lt= getSaldo() ){
            
            subSaldo(valor) ;
            System.out.println("Valor sacado com sucesso") ;
            
        }
       }
        else
        {
            System.out.println("Senha Ou Login inválido você erro mais de 3 vezes byby") ;
        }
        
    }
    
    public int verificaSenha(){
    
        Scanner scanner = new Scanner(System.in) ;
        boolean teste = true ;
        
     do{   
        System.out.println("Digite o seu LOGIN") ;
        String login = scanner.nextLine() ;
        System.out.println("Digite a sua SENHA") ;
        String senha1 = scanner.nextLine() ;
        
        if( login.equals(getNome()) && senha1.equals(getSenha() ) ){
        
            teste = false ;
            return 1 ;  
        }
        else
        {
            System.out.println("Senha ou Login incorreto") ;
            System.out.println("Por favor tente novamente") ;
            System.out.println("Aguarde um momento....") ;
        }
        
    }while(teste );
        
        return 0 ;
    }
    
    public void alteraSenha(){
        
        Scanner scanner = new Scanner( System.in ) ;
        
        boolean teste = true ;
        
        do{
            System.out.println(" Digite uma nova senha ");
            String novaSenha1 = scanner.nextLine() ;
            System.out.println(" Confirme a senha  ") ;
            String novaSenha2 = scanner.nextLine() ;
            if( novaSenha1.equals(novaSenha2) ){
            
                setSenha( novaSenha1 ) ;
                teste = false ;
            }
            else
            {
                System.out.println(" A senha não está correta ") ;
            }
        
            }while(teste == true) ;
        
            System.out.println(" A senha foi alterada Com Sucesso. ") ;
        
        }
    
    public void gerarArquivo(){
    
        //gravando os dados em um arquivo .txt
        try {
            
            file = new File("Banco.txt") ;
            PrintWriter pw = new PrintWriter(file) ;
            pw.print("NOME ") ;
            pw.print(getNome()) ;
            pw.println() ;
            pw.print("SALDO ") ;
            pw.print(getSaldo()) ;
            pw.println() ;
            pw.print("CONTA ") ;
            pw.print(getConta()) ;
            pw.println() ;
            pw.print("AGÊNCIA ") ;
            pw.print(getAgencia()) ;
            pw.close() ;
            
        } catch (IOException e) {
            
            e.printStackTrace() ;
            
        }
        
        
    }
    
    public void lerArquivo(){
    
        ler = null ;
        
        StringBuilder stringBuilder = new StringBuilder() ;
        
        try {
                   
            BufferedReader br = new BufferedReader(new FileReader("Banco.txt") ) ;
            
            for(String str ;  ( str = br.readLine() ) != null  ; stringBuilder.append(str+"\n")) ;
            
            
         
        } catch (FileNotFoundException e) {
            
            e.printStackTrace() ;
            
        }
        catch( IOException e ){
        
            e.printStackTrace() ;
         }
     
        System.out.println(stringBuilder.toString()) ;
      
        
    }
    
    public void dados(){
    
    
            System.out.println("Nome :"+getNome()) ;
            System.out.println("Agência :"+getAgencia()) ;
            System.out.println("Saldo :"+getSaldo()) ;
            System.out.println("Conta :"+getConta()) ;
    }
    
    
    public double getSaldo(){
    
        return this.saldo ;
    }
    
    public void setSaldo(double saldo){
    
        this.saldo = saldo ;
    }
    public void addSaldo(double saldo){
    
        this.saldo += saldo ;
    }
    
    public void subSaldo(double valor){
    
        this.saldo -= valor ;
    }
    
    public String getNome(){
    
        return this.nome ;
        
    }
    public void setNome(String nome){
    
        this.nome = nome ;
                
    }
    
    public void setSenha(String senha){
    
        this.senha = senha ;
    }
    
    public String getSenha(){
    
        return this.senha ;
    }
    
    public String getConta(){
    
            return this.conta ;
    }
    
    public void setConta(String conta){
    
        this.conta = conta ;
    }
    
    public String getAgencia(){
    
            return this.agencia ;
    }
    
    public void setAgencia(String agencia){
    
        this.agencia = agencia ;
    }
    
  
    
    
    
}

4 Respostas

bebad

o problema é q vc ta misturando a logica com uma classe de getter e setter,

divide isso, faz um psvm e testa isso fora, em outra classe,
eu to testando aki dps eu falo
abras

lina

Você está sobreescrevendo o valor… eu acho…

assim: Dentro do método depositar(), você passa o valor para deposito e logo em seguida,
você adiciona esse valor ao saldo. isso na primeira vez.

Depois ele vai lá e deposita novamente um valor… quando você adiciona ele de novo, esse
valor depositado agora esta sobreescrevendo o de antes e não somando. valor+valor = saldoAtual.

Não sei, deve ser isso…

Tchauzin!

bebad

Cara eu peguei todo o seu codigo e refiz tudo…

fiz 3 classes aqui, é assim que vc deve fazer, e nao essa salada q vc me apresentou.

me passa teu email q eu mando blz
abrass…

Raff

Ai bebad meu e-mail é [email removido]

Criado 13 de março de 2007
Ultima resposta 13 de mar. de 2007
Respostas 4
Participantes 3