Projeto Biblioteca POO - PV26465
|
Classe que representa uma biblioteca e gerencia as suas operações. More...
#include <Biblioteca.h>
Public Member Functions | |
Biblioteca () | |
Construtor da classe Biblioteca. | |
virtual | ~Biblioteca () |
Destrutor da classe Biblioteca. | |
bool | SaveToFile (string nf) |
Salva os dados da biblioteca em um ficheiro CSV. | |
bool | LoadFile (string nf) |
Carrega os dados da biblioteca a partir de um ficheiro CSV. | |
void | Prorrogacao_Emprestimos (string id, string isbn) |
Prorroga um empréstimo de um livro para um leitor específico. | |
void | Sistema_Notificacoes_Atraso () |
Envia notificações de atraso para os leitores. | |
void | Listagem_Livros () |
Lista todos os livros na coleção. | |
bool | Add_Leitor (Leitor *LT) |
Adiciona um leitor à coleção de leitores. | |
bool | Add_Livro (Livro *L) |
Adiciona um livro à coleção de livros. | |
void | Add_Emprestimo (Livro *L, Leitor *LT) |
Adiciona um empréstimo de livro para um leitor. | |
void | Devolver_Livro (Emprestimo *E) |
Devolve um livro emprestado à biblioteca. | |
void | Gerar_RelatorioEmprestimos () |
Gera um relatório dos empréstimos atuais na biblioteca. | |
void | Editar_InformacoesLeitores (string id) |
Edita as informações de um leitor na coleção de leitores. | |
void | Editar_InformacoesLivros (string isbn) |
Edita as informações de um livro na coleção de livros. | |
void | Pesquisar_Livro_Tipo (string tipo) |
Pesquisa livros na coleção pelo tipo especificado. | |
void | ListarLivrosCategoria (string categoria) |
Lista todos os livros de uma determinada categoria. | |
void | Remover_Leitor (string id) |
Remove um leitor da coleção de leitores. | |
void | Remover_Livro (string isbn) |
Remove um livro da coleção de livros. | |
void | reservarLivro (string isbn, Leitor *LT) |
Realiza a reserva de um livro para um leitor. | |
void | cancelar_reserva (string isbn, string id) |
Cancela a reserva de um livro para um leitor. | |
void | ListarReservas () |
Lista todas as reservas atuais na biblioteca. | |
void | GerarRelatorioMultasPendentes () |
Gera um relatório de multas pendentes. | |
void | GerarRelatorioEmprestimosPorTipo () |
Gera um relatório de empréstimos por tipo de livro. | |
void | GerarHistoricoEmprestimosLeitor (Leitor *LT) |
Gera um histórico de empréstimos de um leitor. | |
Public Attributes | |
vector< Livro * > | Coleccao_LIVROS |
vector< Leitor * > | Coleccao_LEITORES |
vector< Emprestimo * > | Coleccao_REQ |
Classe que representa uma biblioteca e gerencia as suas operações.
Esta classe implementa as funcionalidades principais de uma biblioteca, incluindo:
Biblioteca::Biblioteca | ( | ) |
Construtor da classe Biblioteca.
Este construtor é responsável por inicializar uma nova instância da classe Biblioteca. Não recebe parâmetros e não realiza nenhuma inicialização específica, uma vez que as colecções de livros, leitores e empréstimos são inicializadas automaticamente como vectores vazios.
As colecções que são inicializadas são:
|
virtual |
Destrutor da classe Biblioteca.
Este destrutor é responsável por limpar a memória dinamicamente alocada associada à instância da classe Biblioteca. Ele itera através das colecções de livros, leitores e empréstimos, deletando cada objecto alocado dinamicamente e limpando as colecções.
Adiciona um empréstimo de livro para um leitor.
Esta função tenta adicionar um empréstimo de um livro para um leitor específico. Primeiro, verifica se o livro e o leitor existem. Se o livro não tiver cópias disponíveis, o usuário é perguntado se deseja realizar uma reserva. Se o empréstimo for bem-sucedido, ele é adicionado à coleção de empréstimos ativos.
bool Biblioteca::Add_Leitor | ( | Leitor * | LT | ) |
Adiciona um leitor à coleção de leitores.
LT | Ponteiro para o objeto Leitor a ser adicionado. |
bool Biblioteca::Add_Livro | ( | Livro * | L | ) |
Adiciona um livro à coleção de livros.
L | Ponteiro para o objeto Livro a ser adicionado. |
void Biblioteca::cancelar_reserva | ( | string | isbn, |
string | id ) |
Cancela a reserva de um livro para um leitor.
Esta função percorre a coleção de livros e procura um livro com o ISBN fornecido. Se encontrar, verifica se o livro está associado a uma reserva. Se estiver, imprime uma mensagem de erro indicando que o livro não pode ser reservado devido a empréstimos pendentes. Caso contrário, remove a reserva do livro.
isbn | O ISBN do livro a ser reservado. |
id | O ID do leitor que deseja cancelar a reserva. |
void Biblioteca::Devolver_Livro | ( | Emprestimo * | E | ) |
Devolve um livro emprestado à biblioteca.
Esta função realiza a devolução de um livro emprestado, removendo o empréstimo da coleção de empréstimos ativos da biblioteca e do leitor associado. Se o empréstimo não for encontrado ou for inválido, uma mensagem de erro é exibida. Caso o livro seja devolvido com atraso, uma multa é calculada e exibida.
E | Ponteiro para o objeto Emprestimo que representa o empréstimo a ser devolvido. |
void Biblioteca::Editar_InformacoesLeitores | ( | string | id | ) |
Edita as informações de um leitor na coleção de leitores.
Esta função percorre a coleção de leitores (Coleccao_LEITORES) e procura um leitor com o ID fornecido. Se encontrar, chama a função editarInformacoes() desse leitor para permitir a edição das suas informações. Caso contrário, imprime uma mensagem a indicar que o leitor não foi encontrado.
id | O ID do leitor cujas informações devem ser editadas. |
void Biblioteca::Editar_InformacoesLivros | ( | string | isbn | ) |
Edita as informações de um livro na coleção de livros.
Esta função percorre a coleção de livros e procura um livro com o ISBN fornecido. Se encontrar, chama a função editarInformacoesLivro() desse livro para permitir a edição das suas informações. Caso contrário, imprime uma mensagem a indicar que o livro não foi encontrado.
isbn | O ISBN do livro cujas informações devem ser editadas. |
void Biblioteca::Gerar_RelatorioEmprestimos | ( | ) |
Gera um relatório dos empréstimos atuais na biblioteca.
Esta função imprime na consola um relatório detalhado dos empréstimos atuais, incluindo o título do livro (ISBN), o nome do leitor e as datas de empréstimo e devolução.
O relatório é formatado com uma linha de separação entre cada empréstimo.
void Biblioteca::GerarHistoricoEmprestimosLeitor | ( | Leitor * | LT | ) |
Gera um histórico de empréstimos de um leitor.
Esta função imprime na consola um histórico detalhado dos empréstimos de um leitor, incluindo o título do livro (ISBN), o nome do leitor e as datas de empréstimo e devolução.
O relatório é formatado com uma linha de separação entre cada empréstimo.
void Biblioteca::GerarRelatorioEmprestimosPorTipo | ( | ) |
Gera um relatório de empréstimos por tipo de livro.
Esta função gera um relatório detalhado das quantidades de empréstimos por tipo de livro e tipo de leitor. O relatório é formatado com uma linha de separação entre cada tipo de livro.
void Biblioteca::GerarRelatorioMultasPendentes | ( | ) |
Gera um relatório de multas pendentes.
Esta função imprime na consola um relatório detalhado das multas pendentes, incluindo o título do livro (ISBN), o nome do leitor e as datas de reserva.
O relatório é formatado com uma linha de separação entre cada reserva.
void Biblioteca::Listagem_Livros | ( | ) |
Lista todos os livros na coleção.
void Biblioteca::ListarLivrosCategoria | ( | string | categoria | ) |
Lista todos os livros de uma determinada categoria.
Esta função percorre a coleção de livros e exibe as informações dos livros que pertencem à categoria especificada. Se não houver livros na coleção ou se nenhum livro corresponder à categoria fornecida, uma mensagem apropriada será exibida.
categoria | A categoria dos livros a serem listados. |
void Biblioteca::ListarReservas | ( | ) |
Lista todas as reservas atuais na biblioteca.
Esta função imprime na consola um relatório detalhado das reservas atuais, incluindo o título do livro (ISBN), o nome do leitor e as datas de reserva.
O relatório é formatado com uma linha de separação entre cada reserva.
bool Biblioteca::LoadFile | ( | string | nf | ) |
Carrega os dados da biblioteca a partir de um ficheiro CSV.
nf | O nome do ficheiro CSV a ser carregado. |
void Biblioteca::Pesquisar_Livro_Tipo | ( | string | tipo | ) |
Pesquisa livros na coleção pelo tipo especificado.
Esta função exibe informações sobre todos os livros na coleção que correspondem ao tipo fornecido. Se nenhum livro for encontrado, uma mensagem apropriada será exibida.
tipo | O tipo de livro a ser pesquisado. |
void Biblioteca::Prorrogacao_Emprestimos | ( | string | id, |
string | isbn ) |
Prorroga um empréstimo de um livro para um leitor específico.
id | O ID do leitor que está realizando a prorrogação. |
isbn | O ISBN do livro que está sendo prorrogado. |
void Biblioteca::Remover_Leitor | ( | string | id | ) |
Remove um leitor da coleção de leitores.
Esta função percorre a coleção de leitores e procura um leitor com o ID fornecido. Se encontrar, verifica se o leitor possui empréstimos ativos. Se não possuir, remove o leitor da coleção. Caso contrário, imprime uma mensagem de erro indicando que o leitor não pode ser removido devido a empréstimos pendentes.
id | O ID do leitor a ser removido. |
void Biblioteca::Remover_Livro | ( | string | isbn | ) |
Remove um livro da coleção de livros.
Esta função percorre a coleção de livros e procura um livro com o ISBN fornecido. Se encontrar, verifica se o livro está associado a um empréstimo ativo. Se estiver, imprime uma mensagem de erro indicando que o livro não pode ser removido devido a empréstimos pendentes. Caso contrário, remove o livro da coleção.
isbn | O ISBN do livro a ser removido. |
void Biblioteca::reservarLivro | ( | string | isbn, |
Leitor * | LT ) |
Realiza a reserva de um livro para um leitor.
Esta função percorre a coleção de livros e procura um livro com o ISBN fornecido. Se encontrar, verifica se o livro está associado a um empréstimo ativo. Se estiver, imprime uma mensagem de erro indicando que o livro não pode ser reservado devido a empréstimos pendentes. Caso contrário, reserva o livro para o leitor.
isbn | O ISBN do livro a ser reservado. |
LT | O leitor que deseja reservar o livro. |
bool Biblioteca::SaveToFile | ( | string | nf | ) |
Salva os dados da biblioteca em um ficheiro CSV.
nf | O nome do ficheiro CSV a ser salvo. |
void Biblioteca::Sistema_Notificacoes_Atraso | ( | ) |
Envia notificações de atraso para os leitores.
vector<Leitor*> Biblioteca::Coleccao_LEITORES |
vector<Livro*> Biblioteca::Coleccao_LIVROS |
vector<Emprestimo*> Biblioteca::Coleccao_REQ |