---
# System prepended metadata

title: Exercício para Aula ou Casa e Extra - Aula 14 - Node

---

# Exercício para Aula ou Casa e Extra - Aula 14 - Node

## Exercício de Aula e Casa: Cadastro de usuários;

Agora que sabemos como podemos pegar informações do usuário que está utilizando nosso programa, crie um programa que pergunte e salve os dados cadastrais de um usuário.

### Instruções

- Utilize como base o `script.js` neste [link](https://drive.google.com/drive/folders/1Q1JoU83ioMm6BfjNr6uZYVBq97soracT?usp=sharing);
- Altere o código a depender da necessidade;
- Siga passo a passo o algoritmo;
- A cada etapa, rode seu código e teste-o para confirmar se seu código está funcionando.
- Utilize o `script.js` como base e escreva seu código para responder o exercício lá. 

### Algoritmo

Vamos implementar um sistema de cadastro de usuários que adicione informações a cada passo.

1. Defina uma variável `cadastros`, esta variável é uma lista vazia, e eventualmente novos usuários serão adicionados nela;
2. Implemente uma função chamada `listarUsuarios`, esta função não tem argumentos, quando chamada ela imprime a lista de usuários da variável `cadastros`;
3. Altere a variável `cadastros` e adicione manualmente um usuário na lista de cadastro, `cadastros`, esse usuário é um `objeto` e possui as seguintes propriedades: `nome`, `dataDeNascimento`, `cpf`, `profissao` e por último, `deletado` que é um booleano. Todos as outras propriedades são strings.
4. Implemente uma nova função chamada `deletarUsuario`, essa função possui 1 (um) argumento que refere-se ao `cpf` e ela busca dentro da variável `cadastros` por um usuário que possui o cpf no argumento. Se existir, ela marca nesse usuário a propriedade `deletado` com o valor `true` e imprime a mensagem: `Usuário de cpf XXX foi deletado!`, caso contrário, imprime a informação `Usuário não encontrado`;
5. Agora, implemente uma função `cadastrar`, ela possui 1 (um) argumento que refere-se ao objeto `usuario`, este usuário é adicionado a lista de `cadastros`.
6. Implemente uma função interativa que recebe um `input` do usuário e permite ele fazer uma de três ações por vez: `listar`, `deletar` ou `cadastrar`;
7. Se a opção `listar` for escolhida, chame a função `listarUsuarios`;
8. Se a opção `deletar` for escolhida, chame a função `deletarUsuario` mas antes pergunte para o usuário qual CPF deve ser deletado;
9. Agora, se a opção for `cadastrar`, utilize a função `rl.question()` para obter mais informações do usuário passo a passo;
10. No primeiro passo, pergunte o nome do usuário;
11. No segundo passo, pergunte a data de nascimento;
12. No terceiro passo, pergunte a profissão;
13. No quinto passo, pergunte o CPF do usuário.
14. No último passo, chame a função `cadastrarUsuario`;
15. Depois de executar a ação (14), imprima na tela a informação: `Pronto! Usuário cadastrado` e encerre o programa. O programa pode ser encerrado com a função `rl.close()`;
16. **Extra** No passo (14), caso o usuário já esteja na lista de cadastrado, imprima um erro: `Usuário já cadastrado!`;
17. **Extra:** Implemente a a funcionalidade de `corrigir`, essa função possui 1 (um) argumento e este argumento refere-se ao cpf, quando chamada, essa função busca por todos os usuários e deleta o usuário encontrado e insere um novo com novos dados;
18. **Extra:** Modifique a função `listarUsuarios` para que ela mostre apenas os usuários que não foram excluídos (`deletado` com valor `false`).

**Observação**: As instruções extras são opcionais. Apenas as faça se você estiver com tempo livre.