Agenda de contato e arquivo com contatos

Alguém pode fazer esse exercício? Se possível em 1 programa e em C.

Implemente uma agenda de contatos com as seguintes condições:

  1. Para cada contato, armazene o nome, o celular e a data de nascimento.
  2. Implemente um menu com as seguintes opções:
  3. Inserir contato.
  4. Procurar contato pelo nome. A procura deve funcionar com partes do nome, por exemplo, o contato
    “Joao Paulo da Silva” deve ser exibido para as seguintes strings de busca: “da Sil”, “Paulo”, “ao P”,
    “Joao”.
  5. Excluir contato. O usuário irá informar o nome do contato que deseja excluir. Para excluir um contato,
    primeiramente deve-se procurar o contato conforme explicado no item anterior (item 2 acima).
  6. Implemente uma função específica para realizar cada uma das opções do menu.
  7. O vetor de contatos deve ser alocado dinamicamente (utilizando as funções malloc e realloc) e não deve ser
    uma variável global.
    Após implementar o programa acima, faça:
    Utilizar um arquivo para armazenar os contatos da agenda, com as seguintes condições:
  8. Ao iniciar o programa, carregue, do arquivo, todos os contatos da agenda.
  9. Ao fechar o programa, salve, no arquivo, todos os contatos da agenda.
  10. Salve a agenda em arquivo texto e em arquivo binário.
  11. Ao iniciar o programa, pergunte ao usuário se ele deseja carregar a agenda do arquivo texto ou do arquivo
    binário.

Aqui no GUJ não temos intenção (e nem vontade) de fazer o trabalho de outras pessoas. A gente pode te ajudar com suas dúvidas e dificuldades, com a finalidade de que a pessoa evolua pessoalmente e profissionalmente.

Talvez, alguém anime fazer como um freelance, mas é bem difícil.