controle de biblioteca estudo de caso
Neste capítulo é desenvolvida uma pequena aplicação onde são empregados os quatro conceitos fundamentais de orientação a objetos: tipos abstratos de dados, encapsulamento, herança e polimorfismo. São apresentadas também algumas técnicas de modelagem especialmente úteis para programação orientada a objetos. Ao final deste capítulo o estudante deverá ser capaz de interpretar, projetar e desenvolver programas que utilizam hierarquias de classes.
9.1. Descrição do Problema
A aplicação que vamos desenvolver se destina a uma escola que possui uma biblioteca aberta aos seus alunos, professores e ao público em geral. O objetivo do sistema é manter um registro dos empréstimos efetuados, visando controlar a situação de cada volume individualmente e garantir que os empréstimos sejam efetuados de acordo com as normas da biblioteca, descritas a seguir.
Os livros só podem ser retirados da biblioteca por usuários cadastrados numa das seguintes categorias: aluno da escola, professor ou usuário externo. Os alunos devem renovar seu cadastro a cada período letivo.
O número máximo de volumes que um usuário pode retirar, num mesmo período, e o prazo de empréstimo dependem da categoria do usuário, de acordo com a seguinte tabela:
Categoria
Quantidade
Dias de Prazo
Usuários comuns
2
4
Alunos
3
7
Professores
5
14
Os limites acima são reduzidos nos seguintes casos:
(i) o aluno com cadastro vencido fica sujeito aos mesmos limites de um usuário comum, até que providencie sua renovação;
(ii) o usuário com algum prazo de devolução vencido fica impedido de retirar outros volumes, retornando à sua condição normal após a devolução do(s) livro(s) em atraso;
(iii) periódicos, como revistas e jornais, só podem ser retirados por professores, por um prazo máximo de 7 dias;
(iv) um professor pode bloquear um número qualquer de livros ou periódicos, impedindo que os mesmos sejam retirados da biblioteca durante um período de até 20 dias.
9.2. Projeto