Componentes: André Ferreira e Heloisa Savioli
Objetivos: Criar um sistema interativo parecido com o tinder mas para gatos. e leve para uso de uma ONG de gatos, organizar os dados dos gatos de forma prática. Facilitar a adoção responsável, com informações claras. A proposta é resolver um problema real por meio da programação, unindo causa social e desenvolvimento de software.
Metodologia de desenvolvimento: Linguagem Python, Aplicação de IPO (Programação Orientada a Objetos).
#classe base para aplicar polimorfismo
class Animal:
def __init__(self, nome, idade, cor):
self.nome = nome
self.idade = idade
self.cor = cor
def exibir(self):
print(f"Nome: {self.nome}, Idade: {self.idade}, Cor: {self.cor}")
#caracteristicas
class Gato(Animal):
def __init__(self, nome, idade, cor, vacinado, descricao):
super().__init__(nome, idade, cor)
self.vacinado = vacinado
self.descricao = descricao
# sobrescrevendo o método exibir polimorfismo
def exibir(self):
print(f"\nNome: {self.nome}\nIdade: {self.idade}\nCor: {self.cor}")
print(f"Vacinado: {'Sim' if self.vacinado else 'Não'}\nDescrição: {self.descricao}")
#aba do "tinder/match"
class TinderGatos:
def __init__(self, gatos):
self.gatos = gatos
self.likes = []
def iniciar(self):
for gato in self.gatos:
gato.exibir()
if input("Gostou? (s/n): ").lower() == 's':
self.likes.append(gato)
print(f"\nVocê curtiu {len(self.likes)} gato(s).")
#info de contato
class Instituicao:
def __init__(self, nome, contato):
self.nome = nome
self.contato = contato
def mostrar_contato(self):
print(f"\n{self.nome} - Contato: {self.contato}")
def menu():
gatos = []
ong = Instituicao("Gatinhos do Bem", "(47) 99999-9999")
#repetição de qual opção escolher
while True:
print("\n1-Cadastrar 2-Listar 3-Alterar 4-Excluir 5-Tinder 6-Buscar 7-Contato 0-Sair")
op = input("Opção: ")
if op == "1":
nome = input("Nome: ")
idade = int(input("Idade: "))
cor = input("Cor: ")
vac = input("Vacinado (s/n): ").lower() == 's'
desc = input("Descrição: ")
gatos.append(Gato(nome, idade, cor, vac, desc))
elif op == "2":
[g.exibir() for g in gatos] if gatos else print("Nenhum gato.")
elif op == "3":
nome = input("Nome do gato a alterar: ")
for g in gatos:
if g.nome == nome:
g.nome = input("Novo nome: ")
g.idade = int(input("Nova idade: "))
g.cor = input("Nova cor: ")
g.vacinado = input("Vacinado (s/n): ").lower() == 's'
g.descricao = input("Nova descrição: ")
break
else:
print("Gato não encontrado.")
elif op == "4":
nome = input("Nome do gato a excluir: ")
for g in gatos:
if g.nome == nome:
gatos.remove(g)
break
else:
print("Gato não encontrado.")
elif op == "5":
TinderGatos(gatos).iniciar() if gatos else print("Sem gatos.")
elif op == "6":
cor = input("Cor desejada: ").lower()
try:
idade = int(input("Idade máxima: "))
except:
print("Idade inválida."); continue
vac = input("Vacinado? (s/n): ").lower() == 's'
encontrados = [g for g in gatos if g.cor.lower() == cor and g.idade <= idade and g.vacinado == vac]
[g.exibir() for g in encontrados] if encontrados else print("Nenhum gato encontrado.")
elif op == "7":
ong.mostrar_contato()
elif op == "0":
print("Saindo..."); break
else:
print("Opção inválida.")
if __name__ == "__main__":
menu()