slides13parte2-ex3-livro-e-biblioteca.py
Click here to get the file
Size
2.6 kB
-
File type
text/python-source
File contents
class Livro:
codigo = None
nome = None
autor = None
__qtdeAlugueis = 0
def __init__(self, codigo, nome, autor):
self.codigo = codigo
self.nome = nome
self.autor = autor
def __cmp__(self, livro):
return cmp(self.codigo, livro.codigo)
def incrementaAluguel(self):
self.__qtdeAlugueis += 1
def getQtdeAlugueis(self):
return self.__qtdeAlugueis
class Biblioteca:
alugados = []
disponiveis = []
def inserir(self, livro):
self.disponiveis.append(livro)
def alugar(self, livro):
if livro in self.disponiveis:
for i in self.disponiveis:
if i == livro:
i.incrementaAluguel()
self.alugados.append(i)
self.disponiveis.remove(i)
break
elif livro in self.alugados:
print "O livro ja esta alugado, infelizmente voce nao podera alugar"
else:
print "O livro nao existe"
def devolver(self, codLivro):
for livro in self.alugados:
if livro.codigo == codLivro:
self.disponiveis.append(livro)
self.alugados.remove(livro)
break
else:
print "O livro nao esta alugado"
def livroMaisAlugado(self):
maior = 0
nome = None
for livro in self.disponiveis:
if livro.getQtdeAlugueis() > maior:
maior = livro.getQtdeAlugueis()
nome = livro.nome
for livro in self.alugados:
if livro.getQtdeAlugueis() > maior:
maior = livro.getQtdeAlugueis()
nome = livro.nome
if maior == 0:
print "Nenhum livro foi alugado ainda"
else:
print "O livro mais alugado e: %s (%d alugueis)"%(nome, maior)
###exemplo de execução:
##>>> l = Livro(123, "Calculo 1", "Stwart")
##>>> b = Biblioteca()
##>>> b.inserir(l)
##>>> b.alugar(l)
##>>> l2 = Livro(456, "Fisica", "Tipler")
##>>> b.inserir(l)
##>>> b.inserir(l2)
##>>> b.alugar(l)
##>>> b.alugar(l)
##O livro ja esta alugado, infelizmente voce nao podera alugar
##>>> b.devolver(l.codigo)
##>>> b.livroMaisAlugado()
##O livro mais alugado e: Calculo 1 (2 alugueis)
##>>> b.devolver(l.codigo)
##>>> b.devolver(l.codigo)
##O livro nao esta alugado
##>>> b.devolver(l2.codigo)
##O livro nao esta alugado
##>>> b.alugar(l2)
##>>> b.alugar(l2)
##O livro ja esta alugado, infelizmente voce nao podera alugar
##>>> b.devolver(l2.codigo)