Ministério da Educação
Brasil um país de todos
Personal tools
You are here: Home Members Cicero Garrozi Disciplinas 2014 em diante Introdução à Programação Arquivos 2015-2 Algoritmos slides13parte2-ex3-livro-e-biblioteca.py
Navigation
Log in


Forgot your password?
 
Document Actions

slides13parte2-ex3-livro-e-biblioteca.py

by Cicero Garrozi last modified 2014-07-15 07:36

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)

Powered by Plone CMS, the Open Source Content Management System

This site conforms to the following standards: