Componentes: Daniel Henrique Schiehl, Danielle Denck e Ioran Bento de Lima
Objetivos: O objetivo do código é ser um sistema de agendamento para uma barbearia que permita ao cliente marcar horários e o barbeiro consultar agendamentos para facilitar a gestão de agendamentos para a barbearia, permitindo cadastrar e listar dados de agendamentos.
Metodologia de desenvolvimento: Análise de Requisitos: Identificar as necessidades da barbearia em termos de agendamento de clientes.
Definir os serviços oferecidos (corte de cabelo, barba, sobrancelha) e os horários disponíveis.
Modelagem do Sistema: Definir as classes principais: Cliente e Barbearia.
Estabelecer os atributos e métodos de cada classe, garantindo o uso de encapsulamento.
Implementar herança onde aplicável.
import time
import os
class Pessoa:
def __init__(self):
self._nome = None
def pegar_nome(self):
nome = input("\t NOME: ")
self._nome = nome.upper()
def limpar_tela(self):
if os.name == 'nt': # Para Windows
os.system('cls')
class Cliente(Pessoa):
def __init__(self):
super().__init__()
self.__valor = None
self.__horario = None
self.__dia = None
self.__agendamentos_cliente = [] # Lista para armazenar os agendamentos do cliente
def menu_cliente(self):
self.limpar_tela()
self.pegar_nome()
time.sleep(1)
while True:
opcao = input('''
=========================================================
============== BEM-VINDO À MINHA BARBEARIA ==============
[1] AGENDAR
[2] SAIR
=========================================================
ESCOLHA UMA OPÇÃO: ''')
time.sleep(1)
if opcao == '1':
self.__agendar()
time.sleep(2)
self.limpar_tela()
x = input('''
=========================================================
[1] VER AGENDAMENTO
[2] SAIR
=========================================================
ESCOLHA UMA OPÇÃO: ''')
if x == '1':
self.__mostrar_meus_agendamentos()
time.sleep(2)
break
elif x == "2":
time.sleep(2)
break
elif opcao == '2':
print("\t SAINDO... OBRIGADO PELA VISITA!")
time.sleep(1)
break
else:
print("\t OPÇÃO INVÁLIDA. TENTE NOVAMENTE.")
def __agendar(self):
self.__escolher_corte()
self.__escolher_dia()
self.__escolher_horario()
agendamento = f'DIA: {self.__dia} - HORÁRIO: {self.__horario} - SERVIÇO: {self.__valor}'
self.__agendamentos_cliente.append(agendamento) # Salva localmente para o cliente
Barbearia.lista_agendamentos.append(
f'CLIENTE: {self._nome} - {agendamento}'
) # Adiciona ao sistema geral da barbearia
print("\t AGENDAMENTO CONCLUIDO!")
def __mostrar_meus_agendamentos(self):
if self.__agendamentos_cliente:
print("\n\t ========================= MEUS AGENDAMENTOS =========================")
for agendamento in self.__agendamentos_cliente:
print(f"\t {agendamento}")
print("\t =====================================================================")
else:
print("\t VOCÊ AINDA NÃO POSSUI AGENDAMENTO.")
def __escolher_corte(self):
time.sleep(1)
corte = input('''
========================================
1 - CABELO (R$20,00)
2 - BARBA (R$30,00)
3 - SOBRANCELHA (R$10,00)
========================================
ESCOLHA UMA OPÇÃO: ''')
cortes = {
"1": "CABELO (R$20,00)",
"2": "BARBA (R$30,00)",
"3": "SOBRANCELHA (R$10,00)"
}
self.__valor = cortes.get(corte)
if not self.__valor:
print("\t OPÇÃO INVÁLIDA. ESCOLHA NOVAMENTE.")
self.__escolher_corte()
def __escolher_dia(self):
time.sleep(1)
dia = input('''
========================================
1 - SEGUNDA-FEIRA
2 - TERÇA-FEIRA
3 - QUARTA-FEIRA
4 - QUINTA-FEIRA
5 - SEXTA-FEIRA
========================================
QUAL DIA DESEJA MARCAR: ''')
dias_semana = {
"1": "SEGUNDA-FEIRA",
"2": "TERÇA-FEIRA",
"3": "QUARTA-FEIRA",
"4": "QUINTA-FEIRA",
"5": "SEXTA-FEIRA"
}
self.__dia = dias_semana.get(dia)
if not self.__dia:
print("\t OPÇÃO INVÁLIDA. ESCOLHA NOVAMENTE.")
self.__escolher_dia()
def __escolher_horario(self):
time.sleep(1)
horario = input('''
========================================
1 - 09:00
2 - 10:00
3 - 11:00
4 - 13:00
5 - 14:00
6 - 15:00
7 - 16:00
8 - 17:00
========================================
QUAL HORÁRIO DESEJA MARCAR: ''')
horarios = {
"1": "09:00",
"2": "10:00",
"3": "11:00",
"4": "13:00",
"5": "14:00",
"6": "15:00",
"7": "16:00",
"8": "17:00"
}
self.__horario = horarios.get(horario)
if not self.__horario:
print("\t OPÇÃO INVÁLIDA. ESCOLHA NOVAMENTE.")
self.__escolher_horario()
class Barbearia:
lista_agendamentos = [] # Lista global para armazenar todos os agendamentos
def __init__(self):
self.limpar_tela()
def menu_barbeiro(self):
while True:
time.sleep(1)
opcao = input('''
=========================================================
============== SISTEMA DO BARBEIRO =======================
[1] LISTAR TODOS OS AGENDAMENTOS
[2] SAIR
=========================================================
ESCOLHA UMA OPÇÃO: ''')
if opcao == '1':
self.__listar_agendamentos()
time.sleep(2)
elif opcao == '2':
print("\t ENCERRANDO O SISTEMA...")
time.sleep(1)
self.limpar_tela()
break
else:
print("\t OPÇÃO INVÁLIDA. TENTE NOVAMENTE.")
@staticmethod
def __listar_agendamentos():
if Barbearia.lista_agendamentos:
print("\n\t ====================== LISTA DE AGENDAMENTOS =================================")
for agendamento in Barbearia.lista_agendamentos:
print(f"\t {agendamento}")
print("\t ==============================================================================")
else:
print("\t NENHUM AGENDAMENTO REALIZADO AINDA.")
time.sleep(1)
def limpar_tela(self):
if os.name == 'nt': # Para Windows
os.system('cls')
# Início do programa
def iniciar_sistema():
while True:
opcao = input('''
=========================================================
============== SISTEMA DA BARBEARIA =====================
[1] ACESSAR COMO CLIENTE
[2] ACESSAR COMO BARBEIRO
[3] SAIR
=========================================================
ESCOLHA UMA OPÇÃO: ''')
time.sleep(1)
if opcao == '1':
cliente = Cliente()
cliente.menu_cliente()
elif opcao == '2':
barbearia = Barbearia()
barbearia.menu_barbeiro()
elif opcao == '3':
print("\t ENCERRANDO... ATÉ LOGO!")
break
else:
print("\t OPÇÃO INVÁLIDA. TENTE NOVAMENTE.")
# Executa o sistema
iniciar_sistema()