Projeto Biblioteca POO - PV26465
Loading...
Searching...
No Matches
Biblioteca Class Reference

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
 

Detailed Description

Classe que representa uma biblioteca e gerencia as suas operações.

Esta classe implementa as funcionalidades principais de uma biblioteca, incluindo:

  • Gerenciamento de livros, leitores e empréstimos
  • Persistência de dados em arquivos
  • Sistema de notificações e multas
  • Geração de relatórios
  • Reservas de livros
  • Edição de informações cadastrais

Constructor & Destructor Documentation

◆ Biblioteca()

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:

  • Coleccao_LIVROS: Vector que armazena apontadores para objectos do tipo Livro
  • Coleccao_LEITORES: Vector que armazena apontadores para objectos do tipo Leitor
  • Coleccao_REQ: Vector que armazena apontadores para objectos do tipo Emprestimo

◆ ~Biblioteca()

Biblioteca::~Biblioteca ( )
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.

Member Function Documentation

◆ Add_Emprestimo()

void Biblioteca::Add_Emprestimo ( Livro * L,
Leitor * LT )

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.

Parameters
LPonteiro para o objeto Livro a ser emprestado.
LTPonteiro para o objeto Leitor que está recebendo o empréstimo.

◆ Add_Leitor()

bool Biblioteca::Add_Leitor ( Leitor * LT)

Adiciona um leitor à coleção de leitores.

Parameters
LTPonteiro para o objeto Leitor a ser adicionado.
Returns
true se o leitor foi adicionado com sucesso, false caso contrário.

◆ Add_Livro()

bool Biblioteca::Add_Livro ( Livro * L)

Adiciona um livro à coleção de livros.

Parameters
LPonteiro para o objeto Livro a ser adicionado.
Returns
true se o livro foi adicionado com sucesso, false caso contrário.

◆ cancelar_reserva()

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.

Parameters
isbnO ISBN do livro a ser reservado.
idO ID do leitor que deseja cancelar a reserva.

◆ Devolver_Livro()

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.

Parameters
EPonteiro para o objeto Emprestimo que representa o empréstimo a ser devolvido.

◆ Editar_InformacoesLeitores()

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.

Parameters
idO ID do leitor cujas informações devem ser editadas.

◆ Editar_InformacoesLivros()

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.

Parameters
isbnO ISBN do livro cujas informações devem ser editadas.

◆ Gerar_RelatorioEmprestimos()

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.

◆ GerarHistoricoEmprestimosLeitor()

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.

◆ GerarRelatorioEmprestimosPorTipo()

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.

◆ GerarRelatorioMultasPendentes()

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.

◆ Listagem_Livros()

void Biblioteca::Listagem_Livros ( )

Lista todos os livros na coleção.

◆ ListarLivrosCategoria()

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.

Parameters
categoriaA categoria dos livros a serem listados.

◆ ListarReservas()

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.

◆ LoadFile()

bool Biblioteca::LoadFile ( string nf)

Carrega os dados da biblioteca a partir de um ficheiro CSV.

Parameters
nfO nome do ficheiro CSV a ser carregado.
Returns
true se o ficheiro foi carregado com sucesso, false caso contrário.

◆ Pesquisar_Livro_Tipo()

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.

Parameters
tipoO tipo de livro a ser pesquisado.

◆ Prorrogacao_Emprestimos()

void Biblioteca::Prorrogacao_Emprestimos ( string id,
string isbn )

Prorroga um empréstimo de um livro para um leitor específico.

Parameters
idO ID do leitor que está realizando a prorrogação.
isbnO ISBN do livro que está sendo prorrogado.

◆ Remover_Leitor()

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.

Parameters
idO ID do leitor a ser removido.

◆ Remover_Livro()

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.

Parameters
isbnO ISBN do livro a ser removido.

◆ reservarLivro()

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.

Parameters
isbnO ISBN do livro a ser reservado.
LTO leitor que deseja reservar o livro.

◆ SaveToFile()

bool Biblioteca::SaveToFile ( string nf)

Salva os dados da biblioteca em um ficheiro CSV.

Parameters
nfO nome do ficheiro CSV a ser salvo.
Returns
true se o ficheiro foi salvo com sucesso, false caso contrário.

◆ Sistema_Notificacoes_Atraso()

void Biblioteca::Sistema_Notificacoes_Atraso ( )

Envia notificações de atraso para os leitores.

Member Data Documentation

◆ Coleccao_LEITORES

vector<Leitor*> Biblioteca::Coleccao_LEITORES

◆ Coleccao_LIVROS

vector<Livro*> Biblioteca::Coleccao_LIVROS

◆ Coleccao_REQ

vector<Emprestimo*> Biblioteca::Coleccao_REQ

The documentation for this class was generated from the following files: