Cadastro de usuários em Java

Preciso de ajuda pra resolver esse exercício com código em Java e não estou conseguindo desenvolvê-lo:

Desenvolva uma aplicação de gerenciamento de dados de usuários que atenda aos seguintes requisitos: 1) Um usuário deverá ter os seguintes dados armazenados: login, senha, nome, idade;

  1. As seguintes operações deverão ser suportadas pela aplicação: criação de um novo usuário, atualização de dados de um usuário cadastrado, remoção de um usuário cadastrado, visualização de dados de um usuário cadastrado, listagem de todos os usuários existentes;

  2. Os dados deveram ser armazenados em estruturas do tipo Collection do java ou em arrays.

Algumas coisas eu consegui começar, mas não consegui ir adiante.

OBJETO:

package aplicacaolpoo;

import javax.swing.JOptionPane;

public class Registering {

String [ ] c = new String [3];
private String l, s, n, id;

public void SetL (String l) {
    this.l = l;
}

public String getL() {
    return l;
}

public void SetS (String s) {
    this.s = s;
}

public String getS() {
    return s;
}

public void SetN (String n) {
    this.n = n;
}

public String getN() {
    return n;
}

public void SetId (String id) {
    this.id = id;
}

public String getId() {
    return id;
}

public void fazerCadastro(String c[]) {
    
    for(int i = 1; i <= 3; i++){
        n = JOptionPane.showInputDialog("Digite o seu nome: ");
        id = JOptionPane.showInputDialog("Digite a sua idade: ");
        l = JOptionPane.showInputDialog("Crie um nome de usuário: ");
        s = JOptionPane.showInputDialog("Crie uma senha para o login: ");
    }
}

public void usuariosCadastrados() {
    JOptionPane.showMessageDialog(null,"Os usuários cadastrados e seus dados são: " + c[0] + "\n" + c[1] + "\n" +c[2]/* + "\n" +c[3] + "\n" +c[4]*/);
}

}

INSTANCIAÇÃO DO OBJETO:

package aplicacaolpoo;
public class Registered {

public static void main(String [] args) {
    
    Registering r1 = new Registering ();
    
    r1.fazerCadastro();
    r1.usuariosCadastrados();
}

}

Eu não consegui sair disso e o que eu consegui fazer ainda não me retorna o que deveria.
Desde já agradeço a ajuda.

É mais fácil seguir o enunciado:

Então crie a classe usuário contendo os atributos a serem armazenados, nunca use l,s ou n:

public class Usuario {
    String login;
    String senha;
    String nome;
    int idade;

    // setters and getters
}

Aqui não é possível determinar um nome para a classe para fazer as operações, então usarei o nome que vc indicou no código postado:

public class Registering {
    public Usuário criarNovoUsuario() {
    }
    public void atualizarUsuario(Usuario usuario) {
    }
    public void removerUsuario(Usuário usuario) {
    }
    public Usuário[] listarUsuarios() {
    }
}

Os parâmetros e retornos das funções podem ser outras.

Recomendo o uso de listas:

public class Registering {
    ArrayList<Usuario> listaDeUsuarios = new ArrayList<>();
    public Usuario criarNovoUsuario() {
    }
    public void atualizarUsuario(Usuário usuario) {
    }
    public void removerUsuario(Usuário usuario) {
    }
    public Usuario[] listarUsuarios() {
        return listaDeUsuarios.toArray(new Usuário[listaDeUsuarios.size()]);
    }
}

No main, não mudaria muito do que vc fez.

1 curtida

Então deixa eu ver se eu entendi direito:
Eu vou ter que criar três classes pra esse exercício? Uma classe chamada Usuario, uma classe chamada Registering e outra classe chamada Registered? Seria isso?
Porque a classe Registering (Registrando, Cadastrando) eu criei pra poder entrar com os dados do usuário (Nome, idade, login e senha) e a classe Registered (Registrado, Cadastrado) eu criei com a intenção de instanciar a classe Registering que faz o mesmo papel da classe Usuario que você citou logo acima. Poderia me dar esse exercício todo respondido e separadas as classes pra servir de exemplo pra outros que eu tenho aqui pra fazer, por favor?
Desculpa eu estar perguntando tanto, mas é a primeira vez que eu estou tentando resolver esse tipo de exercício e estou me enrolando todo.

Me passa teu email que te mando as classes pronta

Opa, eae? O comentário do amigão Diego ta super completo… Vou te dar uma dica: Faz o diagrama de classe antes, eu geralmente me perco quando recebo um problema como esse… Fazendo o diagrama de classe você entra no “conceito de abstração da OO” e tudo acaba ficando mais claro!

No próprio wikipédia ensina como funciona um diagrama de classe: https://pt.wikipedia.org/wiki/Diagrama_de_classes

Bons estudos amigão!

achristim@hotmail.com

EU entendo, mas o problema é que eu estou pior do que cego em tiroteio… rsrsrsrs. E como é a primeira vez que faço algo do tipo, eu sempre preciso de um exemplo feito pra eu ter uma ideia de como fazer o resto do exercício. O que eu não sei, é como referenciar cada método dentro da lista e como usar as variáveis nos métodos. Claro, com exceção do método que eu criei pra coletar dados do usuário.

me envia tambem, gabrielesousadonascimento@gmail.com

por favorrr .-.

achristim@hotmail.com

david.suporte.net@gmail.com

me manda ae brother pfv
preciso desse exemplo

Amanhã cedo mando para vcs analisarem e estudar.

Não, a classe Usuário é um tipo de classe que armazena informação de apenas um Usuário. Registering seria uma classe que armazena informações de vários usuários, também dei a funcionalidade da entrada dos dados. O Registered seria uma classe que inicia e manipula o Registering. Na verdade a estrutura poderia ser de vários jeitos. Talvez fosse até mais simples fazer um pouco diferente, mas o que fiz foi só um exemplo.

O que falta ali são só as entradas e a manipulação da lista, exemplo no criarNovoUsuario:

Usuário usuário = new Usuário();
usuário.setNome(JOptionPane.showInputDialog("Nome: ");
// outros
listaDeUsuarios.add(usuario);
return usuário;

recomendo que crie uma forma para imprimir os dados no usuário e no registerign:

class Registerign {
    void imprimir() {
       for (int i = 0; i < lista.size; i+=1 {
           Usuário usuário = lista.get(i);
           usuário.imprimir();
       }
    }
}

class Usuário() {
    void imprimir() {
       System.out.println("Login:" + getLogin());;
       // outros
    }
}

Eu vou usar o que foi feito aqui e vou tentar desenvolver o resto. Muito obrigado…

Valeu.

email enviado agora estudem.