# 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.