import json
import os
lista = []
ARQUIVO_LISTA = "lista.json"
def carregar_lista():
global lista
if os.path.exists(ARQUIVO_LISTA):
try:
with open(ARQUIVO_LISTA, "r", encoding="utf-8") as arquivo:
dados = json.load(arquivo)
lista = sorted(list(set(dados)))
except Exception:
lista = []
def salvar_lista():
try:
with open(ARQUIVO_LISTA, "w") as f:
json.dump(lista, f, indent=4, ensure_ascii=False)
except Exception as e:
print(f"Erro ao salvar a lista: {e}")
def cabecalho(texto, char="-", largura=50, limpar=True):
if limpar:
os.system("cls" if os.name == "nt" else "clear")
print(char * largura)
print(texto.center(largura))
print(char * largura)
def menu():
while True:
cabecalho("Lista de Convidados!")
print("1 - Adicionar convidado")
print("2 - Remover convidado")
print("3 - Listar convidados")
print("4 - Sair do programa")
try:
opcao = int(input("Escolha uma opção: "))
if opcao == 1:
adicionar_convidado()
elif opcao == 2:
remover_convidado()
elif opcao == 3:
listar_convidados()
elif opcao == 4:
sair()
else:
print("Opção inválida. Tente novamente.")
except ValueError:
print("Opção inválida. Tente novamente.")
def adicionar_convidado():
cabecalho("Adicionar Convidado")
nome = input("Digite o nome do convidado: ").strip().title()
if not nome:
print("Nome inválido. Por favor, digite um nome válido.")
elif nome in lista:
print("O convidado já está na lista.")
else:
lista.append(nome)
salvar_lista()
print(f"O convidado '{nome}' foi adicionado com sucesso.")
input("Pressione ENTER para continuar...")
def remover_convidado():
cabecalho("Remover Convidado")
if not lista:
print("A lista de convidados está vazia. Não há convidados para remover.")
input("Pressione ENTER para continuar...")
return
else:
print("Lista de Convidados:")
for i, convidado in enumerate(lista, start=1):
print(f"{i}. {convidado}")
try:
indice = int(input("Digite o número do convidado que deseja remover: ")) - 1
if 0 <= indice < len(lista):
nome_removido = lista.pop(indice)
salvar_lista()
print(f"O convidado '{nome_removido}' foi removido com sucesso.")
else:
print("Número de convidado inválido.")
except ValueError:
print("Entrada inválida. Por favor, digite um número.")
input("Pressione ENTER para continuar...")
def listar_convidados():
cabecalho("Lista de Convidados")
if not lista:
print("A lista de convidados está vazia.")
else:
print("Lista de Convidados:")
for i, convidado in enumerate(lista, start=1):
print(f"{i}. {convidado}")
input("Pressione ENTER para continuar...")
def sair():
salvar_lista()
os.system("cls" if os.name == "nt" else "clear")
print("Dados salvos. Programa Fechado.")
exit()
def main():
carregar_lista()
menu()
if __name__ == "__main__":
main()