Danilo S. Carvalho, Ph.D. Research Associate - Artificial Intelligence / NLP

4ª Lista de Exercícios - Computação II (DCC - UFRJ) - PLE

Atenção: Escrever Javadoc para todos os programas.

  1. Com base nos dados de um sistema de biblioteca escolar neste arquivo, implemente um sistema em Java que ofereça as seguintes funcionalidades:
  • Cadastro de estudantes e livros.
  • Registro de empréstimo e devolução de livros.
  • Consulta aos N últimos empréstimos de livros.
  • Consulta aos empréstimos (fechados ou em aberto) com mais de N dias.
  • Consulta aos N estudantes que pegaram mais livros emprestados.
  • Consulta aos N livros mais emprestados.
  • Consulta aos N autores mais populares.
  • Consulta aos estilos literários mais populares.
  • Persistência automática dos dados: o usuário pode encerrar o programa a qualquer momento e retornar de onde estava.

onde N é passado pelo usuário do programa.

Regras:

  • Cada estudante possui um número de registro na biblioteca (studentId).
  • Cada estudante pode manter emprestado no máximo dois livros simultaneamente.
  • Um estudante não pode pegar emprestado mais de um exemplar do mesmo livro.
  • Cada livro possui dois exemplares para empréstimo.
  • Se todos os exemplares estão emprestados, novos empréstimos entram em uma fila.
  • Os empréstimos da fila são automáticos quando um exemplar é liberado (considere que o estudante na ponta da fila é notificado e vem correndo buscar o livro).
  • O programador deve formular uma maneira de atribuir e utilizar os pontos definidos para os estudantes e livros.

É obrigatória a aplicação de pelo menos dois padrões de projeto.

Procure utilizar o máximo de conceitos vistos na disciplina até a última aula (não contando hoje).

Parte da nota do trabalho será julgada conforme o número e corretude dos conceitos aplicados.