Sistema simples de Login em Java

5 respostas Resolvido
A

Olá! Gostaria de uma ajuda com esse método de Login, não to conseguindo entender ele… No meu exercício, quando uma pessoa digitar o 3, é enviado o numero da conta e a senha para tentar fazer login e desbloquear algumas opções, como depósito e saque (é tipo um sisteminha bancário). Qualquer ajuda é bem-vinda!

public boolean autenticacao(int numeroDaConta, int senhaDaConta) {
        if (numeroDaConta == getNumeroDaConta()) {
            setAccountExists(true);
            if (senhaDaConta == getSenhaDaConta()) {
                System.out.println("logou!");
            } else {
                System.out.println("senha errada!");
            }
        }
        if (!isAccountExists()) {
            JOptionPane.showMessageDialog(null, "Essa conta não existe!");
        }
        return false;
    }

No main:

case 3:
        tempLog = Integer.parseInt(JOptionPane.showInputDialog(null, "Digite seu login"));
        tempPwd = Integer.parseInt(JOptionPane.showInputDialog(null, "Digite sua senha"));
        for (int i = 0; i < cont; i++) {
            conta[i].autenticacao(tempLog,tempPwd);
        }

Então ele percorre um vetor de objetos, não to conseguindo fazer com que ele “ignore” os erros se o número da conta selecionada for a de outra conta… enfim, espero que tenha dado pra entender, fico feliz em qualquer ajuda!

5 Respostas

peczenyj

vamos la

vc tem uma coleção de contas.

uma conta é identificada por um numero que é unico

a conta vai ter uma senha.

o que vc quer fazer uma busca em duas etapas:

  1. vc varre o seu array ate encontrar a conta que tenha o numero indicado (pode não encontrar)
  2. uma vez que vc encontrou, ai vc verifica se a senha confere.

perceba que vc tem 3 estados:

  1. conta não encontrada
  2. conta encontrada senha errada
  3. conta encontrada senha certa

vc pode considerar que os estados 1 e 2 são “impossivel de efetuar login” e o 3 é “login com sucesso” na pratica.

A

Acho que entendi, mas ainda tô em dúvida de como vou fazer. Mas agradeço já pela ajuda na lógica!

A

@peczenyj, cheguei no seguinte ponto:

public boolean autenticacao(int numeroDaConta, int senhaDaConta) {
    if (numeroDaConta == getNumeroDaConta()) {
        accountExists = true;
        if (senhaDaConta == getSenhaDaConta()) {
            return true;
        } else {
            JOptionPane.showMessageDialog(null, "A senha está errada!");
            return false;
        }
    }
    if(!accountExists){
        JOptionPane.showMessageDialog(null, "A conta não existe no sistema!");
    }
    return false;
}

Numa tentativa de fazer o esquema de “a conta não existe”. Mas não atingi esse ponto. Pode me dar uma mão com isso? Não entendi mt bem oq fazer…

rodriguesabner

A conta vem antes do número da conta, certo? Entao:

Se a conta existir (próximo passo){

} senão {

A conta não existe

}
FearX
Solucao aceita

Hm… mas nesse caso, como ele está percorrendo um array de objetos, até achar a conta ou verificar todas, ele vai dizer que não existe. Tipo, se a conta certa estiver na posição 8, do 0 ao 7 ele vai falar que não existe.

Cara, é o esquema do Boolean mesmo, mas você tem que fazer no teu for. Se depois de todas as interações não achar a conta, é pq ela n existe. Pense nisso.

Acho que o problema seu vai ser como pegar essa variável.

Criado 20 de setembro de 2018
Ultima resposta 20 de set. de 2018
Respostas 5
Participantes 4