Componentes: Ancelino Margotti, Eyshila Loureiro Vepech
Objetivos: O objetivo deste projeto foi a construção de um sistema para a administração de uma livraria, contendo o login do administrador, cadastro de livros físicos e digitais e exibição dos dados dos livros cadastrados, utilizando-se dos principais pilares do paradigma da programação orientada a objetos.
Metodologia de desenvolvimento: Para o desenvolvimento deste projeto, a programação orientada a objetos foi desenvolvida na linguagem Python. Os conceitos usados para a construção do programa foram classes, objetos, herança e encapsulamento.
código
class Livro:
def __init__(self, titulos, autores, isbns, precos):
self.titulo = titulos
self.autor = autores
self.isbn = isbns
self.preco = precos
def exibir_detalhes_fisico(self):
print(f"Título: {self.titulo}")
print(f"Autor: {self.autor}")
print(f"ISBN: {self.isbn}")
print(f"Preço: R${self.preco:.2f}")
class LivroDig(Livro):
def __init__(self, formatos, titulo, autor, isbn, preco):
super(). __init__(titulo, autor, isbn, preco)
self.form = formatos
def exibir_detalhes_digital(self):
print(f"Título: {self.titulo}")
print(f"Autor: {self.autor}")
print(f"Formato de arquivo: {self.form} ")
print(f"ISBN: {self.isbn}")
print(f"Preço: R${self.preco:.2f}")
class Admin:
def __init__(self, admin, registro):
self.__admin = admin
self.__registroadm = registro
def set_admin(self, xs):
self.__admin = xs
def get_admin(self):
return self.__admin
def set_registroadm(self, ys):
self.__registroadm = ys
def get_registroadm(self):
return self.__registroadm
class Livraria:
def __init__(self, nome):
self.nome = nome
self.catalogo_fisico = []
self.catalogo_digital = []
def adicionar_livro(self, livro):
self.catalogo_fisico.append(livro)
def adicionar_livro_digital(self, livrodig):
self.catalogo_digital.append(livrodig)
def listar_livros(self):
print("-" * 20)
print(f"Catálogo da {self.nome}:")
print("-" * 20)
for livro in self.catalogo_fisico:
livro.exibir_detalhes_fisico()
print("-" * 20)
for livro in self.catalogo_digital:
livro.exibir_detalhes_digital()
print("-" * 20)
class Sistemalivraria:
def __init__(self):
self.livraria = Livraria("Livraria")
self.admin1 = Admin("carlos", "10020030040")
x = input("Digite o nome do administrador: ")
self.admin1.set_admin(x)
y = input("Digite o registro do administrador: ")
self.admin1.set_registroadm(y)
def executarsistema(self):
while True:
self.exibir_menu()
escolha = input("Escolha uma opção: ")
if escolha == "1":
self.exibir_menu2()
escolha2 = input("Escolha uma opção: ")
elif escolha == "2":
print("\n")
print("-" * 20)
print("Editado pelo administrador:")
print(self.admin1.get_admin())
print("Registro do administrador:")
print(self.admin1.get_registroadm())
self.livraria.listar_livros()
if escolha2 == "3":
titulo = input("\nDigite o título do livro: ")
autor = input("Digite o autor do livro: ")
isbn = input("Digite o ISBN do livro: ")
preco = float(input("Digite o preço do livro: "))
novo_livro = Livro(titulo, autor, isbn, preco)
self.livraria.adicionar_livro(novo_livro)
print("Livro adicionado com sucesso!")
elif escolha2 == "4":
titulo = input("\nDigite o título do livro Digital: ")
autor = input("Digite o autor do livro Digital: ")
formato = input("Digite o formato do arquivo: ")
isbn = input("Digite o ISBN do livro Digital: ")
preco = float(input("Digite o preço do livro Digital: "))
novo_livro_dig = LivroDig(formato, titulo, autor, isbn, preco)
self.livraria.adicionar_livro_digital(novo_livro_dig)
print("Livro Digital adicionado com sucesso!")
elif escolha == "0":
print("Saindo do programa. Até mais!")
break
else:
print("Opção inválida. Tente novamente.")
@staticmethod
def exibir_menu():
print("\nMenu:")
print("1. Adicionar Livro")
print("2. Listar Livros")
print("0. Sair")
@staticmethod
def exibir_menu2():
print("\nQual o tipo de livro?")
print("3 Livro Físico")
print("4 Livro Digital")
if __name__ == '__main__':
sistema = Sistemalivraria()
sistema.executarsistema()