Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

0
respostas

Resolução de Atividades - 05 Organizando notas de um concurso de redação

PARTE 2


main.py


from models.aluno import Aluno

def exibir_apresentacao():

    """Exibe no console uma apresentação ao programa"""

    print ("\nOlá, seja bem-vindo ao sistema de gerenciamento de notas do Concurso Nacional de Redação\n")

def selecao_opcoes():

    """Permite o usuário escolher uma opção dentre as disponíveis"""

    opcao_usuario = input (
        "Selecione as seguintes opções:" \
        "\n1 - Adicionar aluno" \
        "\n2 - Remover aluno" \
        "\n3 - Mostrar a lista de alunos" \
        "\n4 - Adicionar nota;" \
        "\n5 - Remover nota;" \
        "\n6 - Mostrar as notas de um aluno;" \
        "\n7 - Sair. \n Digite o número da opção desejada: ")
    
    return opcao_usuario

def confirmador():

    """ Trava o sistema até o usuário digitar uma tecla para que o texto do console não passe muito depressa"""

    input("\nAperte qualquer tecla para continuar")
    print("\n\n\n")

def inserir_id():

    """ Permite ao usuário inserir o ID do aluno que deseja adicionar uma nota """

    id_aluno = input ("Digite o ID do aluno: ")

    aluno_selecionado = Aluno.buscar_aluno_por_id (id_aluno)

    return aluno_selecionado

def main():

    while True:

        exibir_apresentacao()

        try: 
            opcao_usuario = int (selecao_opcoes())

            if opcao_usuario == 1:

                Aluno.adicionar_aluno()
                confirmador()

            elif opcao_usuario == 2:

                Aluno.remover_aluno()
                confirmador()

            elif opcao_usuario == 3:

                Aluno.mostrar_lista_alunos()
                confirmador()

            elif opcao_usuario == 4:

                aluno_selecionado = inserir_id()

                if aluno_selecionado == None:
                
                    print("Aluno não encontrado. Tente novamente")

                else:

                    nota = float (input ("Digite a nota que deseja adicionar: "))

                    aluno_selecionado.adicionar_nota(nota)
                    
                confirmador()

            elif opcao_usuario == 5:

                aluno_selecionado = inserir_id()

                if aluno_selecionado == None:
                
                    print("Aluno não encontrado. Tente novamente")

                else:

                    nota = float (input ("Digite a nota que deseja remover: "))

                    aluno_selecionado.remover_nota(nota)
                    
                confirmador()

            elif opcao_usuario == 6:

                aluno_selecionado = inserir_id()

                if aluno_selecionado == None:
                
                    print("Aluno não encontrado. Tente novamente")

                else:

                    print(f"Aluno: {aluno_selecionado.nome.upper()} \
                        \n Notas:")
                    
                    aluno_selecionado.notas.sort()       

                    for nota in aluno_selecionado.notas:

                        print (f" - {nota}")

                confirmador()

            elif opcao_usuario == 7:

                print ("\n\nObrigado por utilizar nossos serviços. Até mais!")
                break

            else:

                print ("Opção inválida. Por favor, tente novamente.")

        except ValueError:

            print ("Digite um número válido. Por favor, tente novamente.")
        

if __name__ == "__main__":

    main()