Componentes: Ester Martins Rodrigues
Objetivos: Criar um sistema em Python com Programação Orientada a Objetos para gerenciar alunos, turmas e cursos de beleza como Maquiagem, Cabeleireiro, Manicure e Design de Sobrancelha.
Metodologia de desenvolvimento: Programação orientada a objetos.
class Curso:
def __init__(self, nome, professor, descricao):
self.nome = nome
self.professor = professor
self.descricao = descricao
def descricao_conteudo(self):
return self.descricao
class Turma:
def __init__(self, curso, horario):
self.curso = curso
self.horario = horario
self.alunos = []
def adicionar_aluno(self, aluno):
self.alunos.append(aluno)
class Aluno:
def __init__(self, nome):
self.nome = nome
self.turmas = []
def matricular(self, turma):
self.turmas.append(turma)
class EscolaBeleza:
def __init__(self):
self.turmas = []
self.alunos = []
def menu(self):
while True:
print("\\n--- MENU ESCOLA DE BELEZA ---")
print("1 - Cadastrar aluno")
print("2 - Criar turma")
print("3 - Matricular aluno")
print("4 - Listar turmas")
print("5 - Sair")
opcao = input("Escolha uma opção: ")
if opcao == "1":
self.cadastrar_aluno()
elif opcao == "2":
self.criar_turma()
elif opcao == "3":
self.matricular_aluno()
elif opcao == "4":
self.listar_turmas()
elif opcao == "5":
break
else:
print("Opção inválida!")
def cadastrar_aluno(self):
nome = input("Nome do aluno: ")
aluno = Aluno(nome)
self.alunos.append(aluno)
print("Aluno cadastrado com sucesso.")
def criar_turma(self):
cursos_disponiveis = {
"1": ("Maquiagem", "Contorno, iluminação e maquiagem profissional."),
"2": ("Cabeleireiro", "Cortes, coloração e escova progressiva."),
"3": ("Manicure", "Esmaltação, cuidados com unhas e biossegurança."),
"4": ("Design de Sobrancelha", "Medição, henna e simetria facial.")
}
print("Tipos de curso:")
for codigo, (nome, _) in cursos_disponiveis.items():
print(f"{codigo} - {nome}")
tipo = input("Escolha o tipo do curso: ")
professor = input("Nome do professor: ")
horario = input("Horário da turma: ")
if tipo in cursos_disponiveis:
nome, descricao = cursos_disponiveis[tipo]
curso = Curso(nome, professor, descricao)
turma = Turma(curso, horario)
self.turmas.append(turma)
print("Turma criada com sucesso!")
else:
print("Tipo de curso inválido.")
def matricular_aluno(self):
if not self.alunos:
print("Nenhum aluno cadastrado.")
return
if not self.turmas:
print("Nenhuma turma criada.")
return
nome = input("Nome do aluno para matricular: ")
aluno = None
for a in self.alunos:
if a.nome == nome:
aluno = a
break
if aluno is None:
print("Aluno não encontrado.")
return
print("Turmas disponíveis:")
for i, turma in enumerate(self.turmas):
print(f"{i} - {turma.curso.nome} com {turma.curso.professor} às {turma.horario}")
try:
idx = int(input("Escolha o número da turma: "))
turma = self.turmas[idx]
turma.adicionar_aluno(aluno)
aluno.matricular(turma)
print("Aluno matriculado com sucesso.")
except (ValueError, IndexError):
print("Turma inválida.")
def listar_turmas(self):
if not self.turmas:
print("Nenhuma turma criada.")
return
for i, turma in enumerate(self.turmas):
print(f"\\n{i} - Curso: {turma.curso.nome}")
print(f" Professor: {turma.curso.professor}")
print(f" Horário: {turma.horario}")
print(f" Conteúdo: {turma.curso.descricao_conteudo()}")
print(f" Alunos: {[aluno.nome for aluno in turma.alunos]}")