tarefas
|

GERENCIADOR DE TAREFAS EM PYTHON (DESAFIO #3)

SITUAÇÃO PROBLEMA

Como desenvolvedor, você percebeu a necessidade de um programa que auxilie na gestão do tempo e na organização das tarefas diárias. Para isso, você decidiu criar um “Gerenciador de Tarefas” em Python que utiliza os módulos time, math e random para fornecer funcionalidades como cronômetro, cálculo de estatísticas das tarefas e sugestão aleatória de atividades.

REQUISITOS DO PROGRAMA

  • Cronômetro de Tarefas: Permitir que o usuário inicie um cronômetro para medir o tempo gasto em uma tarefa específica.
  • Estatísticas de Tarefas: Calcular e exibir estatísticas como tempo médio gasto por tarefa, tempo total dedicado.
  • Sugestão Aleatória de Tarefas: Com base em uma lista de tarefas pendentes, sugerir aleatoriamente uma tarefa para o usuário iniciar.
  • Registro de Tarefas: Manter um registro das tarefas concluídas com seus respectivos tempos e horários de início e término.

ENTRADAS

  • Nome da Tarefa: Identificação da tarefa a ser realizada.
  • Comando para Iniciar/Parar Cronômetro: Controle do tempo dedicado a cada tarefa.

FUNCIONALIDADES

  • Iniciar Cronômetro: Registrar o horário de início de uma tarefa.
  • Parar Cronômetro: Calcular o tempo total gasto na tarefa e registrá-lo.
  • Exibir Estatísticas: Utilizar o módulo math para calcular e exibir:
    • Tempo médio gasto por tarefa.
    • Tempo total dedicado a todas as tarefas.
  • Sugerir Tarefa Aleatória: Utilizar o módulo random para selecionar e exibir uma tarefa pendente para o usuário.
  • Registrar Tarefas Concluídas: Armazenar informações sobre as tarefas concluídas, incluindo nome, tempo gasto e horários de início e término.

MAPA MENTAL DO DESAFIO

				
					Gerenciador de Tarefas em Python
├── Cronômetro de Tarefas
│   ├── Iniciar Cronômetro
│   └── Parar Cronômetro
├── Estatísticas de Tarefas
│   ├── Tempo Médio por Tarefa
│   ├── Tempo Total Dedicado
├── Sugestão Aleatória de Tarefas
│   └── Selecionar Tarefa Pendente Aleatoriamente
└── Registro de Tarefas
    ├── Nome da Tarefa
    ├── Tempo Gasto
    ├── Horário de Início
    └── Horário de Término

				
			

MÓDULO DO CRONÔMETRO

				
					# Importa o módulo time, que permite medir o tempo decorrido.
import time  

# Define uma função chamada iniciar_parar.
def iniciar_parar():  
    # Exibe uma mensagem informando que o cronômetro foi iniciado.
    print("O cronômetro iniciou!")  

    # Registrar o tempo inicial
    # Captura o tempo atual em segundos desde a época (01/01/1970).
    inicio = time.time()  

    # Aguarda o usuário pressionar ENTER para continuar.
    parar = input("Digite ENTER para encerrar o cronômetro")  
    # Exibe a entrada do usuário (não é necessário, pode ser removido).
    print(parar)  

    # Registrar o tempo final
    # Captura o tempo atual novamente, registrando o tempo final.
    fim = time.time()  

    # Calcula a duração total da contagem, 
    #subtraindo o tempo inicial do final.
    duracao = fim - inicio  

    # Exibe o tempo decorrido, arredondado para duas casas decimais.
    print(f"Tempo gasto na tarefa: {round(duracao, 2)} segundos")  

    # Retorna a duração da contagem como resultado da função.
    return duracao  

				
			

MÓDULO DE ESTATÍSTICA

				
					# Define uma função chamada media que recebe dois 
#tempos como parâmetros.
def media(tarefa1, tarefa2):  
    # Calcula a média dos dois tempos fornecidos.
    resultado = (tarefa1 + tarefa2) / 2  

    # Exibe o tempo médio arredondado para duas casas decimais.
    print(f"Tempo médio: {round(resultado, 2)} segundos")  
    
    # Retorna o valor da média calculada.
    return resultado  

				
			

MÓDULO DE SUGESTÃO

				
					# Importa o módulo random, que permite gerar números aleatórios.
import random  

# Define a função sugerir_tarefa, que sugere uma tarefa aleatória 
#ao usuário.
def sugerir_tarefa():  
    # Define três possíveis tarefas como strings.
    t1 = "Ler um artigo"  
    t2 = "Fazer um exercício de Python"  
    t3 = "Revisar anotações"  
    
    # Gera um número aleatório entre 1 e 3.
    opcao = random.randint(1, 3)  
    
    # Verifica qual número foi sorteado e exibe a 
    #tarefa correspondente.
    if (opcao == 1):  
        print(f"Sugestão de tarefa: {t1}")  
    elif (opcao == 2):  
        print(f"Sugestão de tarefa: {t2}")  
    else:  # Se não for 1 nem 2, será 3.
        print(f"Sugestão de tarefa: {t3}")  

				
			

ARQUIVO PRINCIPAL (main.py)

				
					
import cronometro  # Importa módulo personalizado para controle do cronômetro
import estatisticas  # Importa módulo personalizado para cálculos estatísticos
import sugestao  # Importa módulo personalizado para sugestão de tarefas

# Função principal
def main():
    print("Bem-vindo ao Gerenciador de Tarefas!")  # Exibe mensagem de boas-vindas
    print("1 - Iniciar cronômetro e registrar tempo")  # Opção 1: Cronômetro
    print("2 - Calcular estatísticas de duas tarefas")  # Opção 2: Estatísticas
    print("3 - Sugerir uma tarefa aleatória")  # Opção 3: Sugestão de tarefa
    print("4 - Sair")  # Opção 4: Sair do programa
    
    while True:  # Loop infinito até que o usuário escolha sair
        escolha = input("Escolha uma opção: ")  # Solicita uma opção ao usuário
        
        if escolha == "1":
            cronometro.iniciar_cronometro()  # Inicia o cronômetro e armazena a duração
        
        elif escolha == "2":
            t1 = float(input("Digite o tempo da primeira tarefa (segundos): "))  # Recebe tempo da primeira tarefa
            t2 = float(input("Digite o tempo da segunda tarefa (segundos): "))  # Recebe tempo da segunda tarefa
            estatisticas.calcular_estatisticas(t1, t2)  # Calcula estatísticas com os tempos fornecidos
        
        elif escolha == "3":
            sugestao.sugerir_tarefa()  # Chama a função que sugere uma tarefa aleatória
        
        elif escolha == "4":
            print("Saindo do programa...")  # Exibe mensagem de saída
            break  # Encerra o loop
        
        else:
            print("Opção inválida! Tente novamente.")  # Mensagem de erro para entrada inválida

# Executando o programa
if __name__ == "__main__":
    main()  # Chama a função principal

				
			

Caso o Python ainda não esteja instalado em seu dispositivo, clique no botão abaixo para realizar a instalação.

Posts Similares

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *