Exercício 1: Sistema de Biblioteca
Desenvolva um sistema completo de gerenciamento de uma biblioteca. Este sistema deve permitir o cadastro de livros e pessoas (alunos e professores) e realizar o controle de empréstimos e devoluções de livros. Os livros devem ter informações detalhadas como título, autor, ISBN, ano de publicação e status (disponível ou emprestado). As pessoas cadastradas no sistema poderão ser alunos ou professores, cada um com seus atributos específicos, além de uma lista de livros emprestados. O sistema deve fornecer funcionalidades para adicionar novos livros ao acervo, emprestar livros para pessoas cadastradas e processar a devolução de livros. Além disso, a biblioteca deve ser capaz de listar todos os livros disponíveis para empréstimo.
- Livro:
- Atributos:
titulo
(String)autor
(String)ISBN
(String)anoPublicacao
(int)status
(boolean) – indicando se o livro está disponível ou emprestado
- Métodos:
- Construtor para inicializar todos os atributos.
- Métodos getters e setters para todos os atributos.
- Método
exibirInformacoes()
que exibe as informações do livro.
- Atributos:
- Pessoa:
- Atributos:
nome
(String)cpf
(String)livrosEmprestados
(List<Livro>)
- Métodos:
- Construtor para inicializar todos os atributos.
- Métodos getters e setters para todos os atributos.
- Método
adicionarLivro(Livro livro)
que adiciona um livro à lista de livros emprestados. - Método
removerLivro(Livro livro)
que remove um livro da lista de livros emprestados.
- Atributos:
- Aluno e Professor (herdam de Pessoa):
- Aluno:
- Atributos adicionais:
matricula
(String) - Métodos:
- Construtor que inicializa todos os atributos (incluindo os herdados).
- Métodos getters e setters para todos os atributos.
- Atributos adicionais:
- Professor:
- Atributos adicionais:
departamento
(String) - Métodos:
- Construtor que inicializa todos os atributos (incluindo os herdados).
- Métodos getters e setters para todos os atributos.
- Atributos adicionais:
- Aluno:
- Biblioteca:
- Atributos:
livros
(List<Livro>)pessoas
(List<Pessoa>)
- Métodos:
- Método
adicionarLivro(Livro livro)
que adiciona um livro ao acervo da biblioteca. - Método
emprestarLivro(Livro livro, Pessoa pessoa)
que empresta um livro para uma pessoa, alterando o status do livro e adicionando-o à lista de livros emprestados da pessoa. - Método
retornarLivro(Livro livro, Pessoa pessoa)
que retorna um livro à biblioteca, alterando o status do livro e removendo-o da lista de livros emprestados da pessoa. - Método
listarLivrosDisponiveis()
que lista todos os livros disponíveis para empréstimo.
- Método
- Atributos: