Este sistema de gerenciamento de tarefas é um programa em C que permite aos usuários gerenciar uma lista de tarefas. As funcionalidades incluem cadastrar, listar, editar, remover, marcar como concluída, e gerar relatórios de tarefas. As tarefas são armazenadas em memória e podem ser salvas e carregadas de um arquivo.
Representa uma data no formato dia, mês e ano.
- Atributos:
int dia
: Dia do mês (1 a 31).int mes
: Mês do ano (1 a 12).int ano
: Ano.
Representa uma tarefa com título, descrição, prioridade, data limite, estado de conclusão, e um identificador único.
- Atributos:
int id
: Identificador único da tarefa.char titulo[TAM_TITULO]
: Título da tarefa.char descricao[TAM_DESCRICAO]
: Descrição da tarefa.int prioridade
: Prioridade da tarefa (1 a 5).Data data_limite
: Data limite para a conclusão da tarefa.int concluida
: Indica se a tarefa foi concluída (0 para não, 1 para sim).
A função principal que controla o fluxo do programa e interage com o usuário.
- Funcionalidades:
- Apresenta o menu de opções ao usuário.
- Executa as operações de gerenciamento de tarefas com base na escolha do usuário.
- Libera a memória alocada para a lista de tarefas ao final.
Cadastra uma nova tarefa na lista.
-
Parâmetros:
Tarefa **lista_tarefas
: Ponteiro para o ponteiro da lista de tarefas.int *n_tarefas
: Ponteiro para o número total de tarefas.int *proximo_id
: Ponteiro para o próximo ID disponível para a tarefa.
-
Funcionamento:
- A tarefa é alocada dinamicamente e inicializada com as informações fornecidas pelo usuário.
- O ID da tarefa é incrementado automaticamente.
Lista todas as tarefas armazenadas.
-
Parâmetros:
Tarefa *lista_tarefas
: Ponteiro para a lista de tarefas.int n_tarefas
: Número total de tarefas.
-
Funcionamento:
- Imprime os detalhes de todas as tarefas, incluindo título, descrição, prioridade, data limite e status de conclusão.
Edita uma tarefa existente na lista.
-
Parâmetros:
Tarefa *lista_tarefas
: Ponteiro para a lista de tarefas.int n_tarefas
: Número total de tarefas.
-
Funcionamento:
- O usuário seleciona uma tarefa para editar com base no ID.
- Os dados da tarefa são atualizados conforme a entrada do usuário.
Remove uma tarefa da lista.
-
Parâmetros:
Tarefa **lista_tarefas
: Ponteiro para o ponteiro da lista de tarefas.int *n_tarefas
: Ponteiro para o número total de tarefas.
-
Funcionamento:
- O usuário seleciona uma tarefa para remover com base no ID.
- A lista de tarefas é realocada para remover a tarefa selecionada.
Marca uma tarefa como concluída.
-
Parâmetros:
Tarefa *lista_tarefas
: Ponteiro para a lista de tarefas.int n_tarefas
: Número total de tarefas.
-
Funcionamento:
- O usuário seleciona uma tarefa para marcar como concluída.
- O status da tarefa é alterado para concluída.
Gera relatórios das tarefas.
-
Parâmetros:
Tarefa *lista_tarefas
: Ponteiro para a lista de tarefas.int n_tarefas
: Número total de tarefas.
-
Funcionamento:
- Relatórios são gerados com base nas tarefas armazenadas, como listar tarefas concluídas ou tarefas por prioridade.
Libera a memória alocada para a lista de tarefas.
-
Parâmetros:
Tarefa *lista_tarefas
: Ponteiro para a lista de tarefas.
-
Funcionamento:
- Libera a memória alocada dinamicamente para a lista de tarefas.
Lê uma data do usuário.
- Retorno:
- Retorna uma estrutura
Data
com o dia, mês e ano fornecidos pelo usuário.
- Retorna uma estrutura
Imprime uma data formatada.
-
Parâmetros:
Data data
: Estrutura de dados que contém dia, mês e ano.
-
Funcionamento:
- A data é impressa no formato
dd/mm/aaaa
.
- A data é impressa no formato
Carrega tarefas de um arquivo.
-
Parâmetros:
Tarefa **lista_tarefas
: Ponteiro para o ponteiro da lista de tarefas.char *nome_arquivo
: Nome do arquivo de onde as tarefas serão carregadas.
-
Retorno:
- Retorna o número total de tarefas carregadas.
-
Funcionamento:
- O arquivo de tarefas é lido e as tarefas são carregadas na memória.
Salva as tarefas em um arquivo.
-
Parâmetros:
Tarefa *lista_tarefas
: Ponteiro para a lista de tarefas.int n_tarefas
: Número total de tarefas.char *nome_arquivo
: Nome do arquivo onde as tarefas serão salvas.
-
Funcionamento:
- As tarefas são salvas no arquivo especificado.
Arquivo de cabeçalho que define as estruturas de dados e declara as funções utilizadas no programa.
Implementa as funções declaradas em biblioteca.h
.
Contém a função principal e o fluxo de execução do programa.