Projeto — Cafeteria Escolar Gamificada
Desenvolvi um aprimoramento do projeto anterior da cafeteria escolar, agregando os novos conteúdos estudados ao longo do módulo de Python. O sistema passou a integrar cadastro de estudantes, autorização familiar, registro de compras, pontuação saudável, recompensas, histórico de consumo e comunicação automatizada com as famílias.
Nesse aprimoramento, utilizei conteúdos como:
- variáveis;
- input();
- conversão de tipos (int() e float());
- condicionais (if, elif e else);
- operadores lógicos;
- operadores relacionais;
- operadores de atribuição (+=);
- laços de repetição (while e for);
- dicionários;
- listas;
- cálculo de valores;
- acumuladores;
- organização de dados.
O objetivo foi construir um sistema mais próximo de uma situação real, utilizando os conceitos estudados para modelar regras de funcionamento de uma cafeteria escolar gamificada.
Programa em Python
clientes = {}
cardapio_saudavel = {
"agua": 4,
"fruta": 6,
"suco natural": 9,
"iogurte": 10,
"tapioca": 12,
"sanduiche natural": 15
}
cafeteria_aberta = "sim"
while cafeteria_aberta == "sim":
nome = input("Nome do estudante: ").lower()
if nome not in clientes:
print("Estudante não cadastrado.")
turma = input("Turma: ")
responsavel = input("Nome do responsável: ")
whatsapp_familia = input("WhatsApp da família: ")
autorizacao = input(
"Família autoriza compras? (sim/não): "
).lower()
clientes[nome] = {
"turma": turma,
"responsavel": responsavel,
"whatsapp_familia": whatsapp_familia,
"autorizacao": autorizacao,
"visitas": 0,
"pontos": 0,
"historico": []
}
if clientes[nome]["autorizacao"] != "sim":
print("Compra não autorizada pela família.")
else:
clientes[nome]["visitas"] += 1
total = 0
pontos_compra = 0
pedido = {}
quantidade = int(
input("Quantos itens foram comprados? ")
)
for i in range(quantidade):
item = input(
f"Nome do item {i + 1}: "
).lower()
valor = float(
input("Valor do item: ")
)
pedido[item] = valor
total += valor
if item in cardapio_saudavel:
pontos_compra += valor
clientes[nome]["pontos"] += pontos_compra
bonus = "Nenhum"
valor_gratis = 0
if clientes[nome]["pontos"] >= 1000:
escolha = input(
"Escolha um item saudável gratuito: "
).lower()
if escolha in cardapio_saudavel:
valor_gratis = cardapio_saudavel[escolha]
clientes[nome]["pontos"] -= 1000
bonus = "Item saudável gratuito"
valor_final = total - valor_gratis
compra = {
"pedido": pedido,
"total": total,
"bonus": bonus,
"valor_final": valor_final,
"pontos_ganhos": pontos_compra
}
clientes[nome]["historico"].append(compra)
print("\\n--- RESUMO DA COMPRA ---")
print(f"Estudante: {nome}")
print(
f"Turma: {clientes[nome]['turma']}"
)
print(f"Total: R$ {total:.2f}")
print(f"Bônus: {bonus}")
print(
f"Valor final: R$ {valor_final:.2f}"
)
print(
f"Pontos atuais: "
f"{clientes[nome]['pontos']}"
)
print("\\n--- MENSAGEM PARA A FAMÍLIA ---")
print(
f"Olá, família de {nome}."
)
print(
f"Foi registrada uma compra "
f"na cafeteria escolar no valor "
f"de R$ {valor_final:.2f}."
)
print(
f"Pontuação atual: "
f"{clientes[nome]['pontos']} pontos."
)
cafeteria_aberta = input(
"\\nDeseja atender outro estudante? "
"(sim/não): "
).lower()