GERENCIAMENTO DE ESTOQUE EM PYTHON (DESAFIO #3)

SITUAÇÃO PROBLEMA DO ESTOQUE

Como gerente de um depósito, enfrento dificuldades no controle manual de estoque que resultam em divergências entre o inventário físico e os registros. A falta de um sistema organizado leva a erros frequentes na contagem de produtos, dificuldade em acompanhar entradas e saídas, e atrasos na identificação de itens com estoque esgotado. Necessito de uma solução que permita registrar, atualizar e consultar as quantidades de produtos de forma precisa e eficiente.

REQUISITOS DO PROGRAMA DO ESTOQUE

  • O programa deve ser desenvolvido em python;
  • O estoque deve permitir registrar um número ilimitado de produtos;
  • Para cada produto, deve ser possível armazenar a quantidade em estoque (número inteiro positivo);
  • O sistema deve oferecer três operações principais: adicionar produtos, remover produtos e consultar estoque;
  • Ao final de cada operação, o programa deve voltar ao menu principal até que o usuário escolha sair;
  • Quando o usuário optar por sair, o programa deve exibir uma mensagem de encerramento.

ENTRADAS

				
					Menu de Opções:
1 - Adicionar produto
2 - Remover produto
3 - Consultar produto
4 - Sair
Escolha uma opção: 1
Digite o nome do produto a ser adicionado: Café
Digite a quantidade do produto a ser adicionada: 10

				
			

SAÍDA

				
					Café adicionado ao estoque com 10 unidades.

Menu de Opções:
1 - Adicionar produto
2 - Remover produto
3 - Consultar produto
4 - Sair
Escolha uma opção: 3
Digite o nome do produto a consultar: Café
Café tem 10 unidades no estoque.

				
			

FUNÇÃO ADICIONAR PRODUTO

				
					def adicionar_produto(estoque):
    nome_produto = input("Digite o nome do produto a ser adicionado: ")
    quantidade = int(input("Digite a quantidade do produto a ser adicionada: "))

    if nome_produto in estoque:
        estoque[nome_produto] += quantidade
        return f"{quantidade} unidades de {nome_produto} adicionadas ao estoque."
    else:
        estoque[nome_produto] = quantidade
        return f"{nome_produto} adicionado ao estoque com {quantidade} unidades."
				
			

FUNÇÃO REMOVER PRODUTO

				
					def remover_produto(estoque):
    nome_produto = input("Digite o nome do produto a ser removido: ")

    if nome_produto in estoque:
        quantidade = int(input(f"Digite a quantidade de {nome_produto} a ser removida: "))
        if quantidade <= estoque[nome_produto]:
            estoque[nome_produto] -= quantidade
            if estoque[nome_produto] == 0:
                del estoque[nome_produto]
                return f"{nome_produto} removido completamente do estoque."
            return f"{quantidade} unidades de {nome_produto} removidas do estoque."
        else:
            return "Quantidade a remover excede o estoque disponível."
    else:
        return f"{nome_produto} não encontrado no estoque."
				
			

FUNÇÃO CONSULTAR PRODUTO

				
					def consultar_produto(estoque):
    nome_produto = input("Digite o nome do produto a consultar: ")

    if nome_produto in estoque:
        return f"{nome_produto} tem {estoque[nome_produto]} unidades no estoque."
    else:
        return f"{nome_produto} não encontrado no estoque."
				
			

FUNÇÃO MAIN

				
					def main():
    estoque = {}

    while True:
        print("\nMenu de Opções:")
        print("1 - Adicionar produto")
        print("2 - Remover produto")
        print("3 - Consultar produto")
        print("4 - Sair")

        opcao = input("Escolha uma opção: ")

        if opcao == "1":
            print(adicionar_produto(estoque))
        elif opcao == "2":
            print(remover_produto(estoque))
        elif opcao == "3":
            print(consultar_produto(estoque))
        elif opcao == "4":
            print("Saindo do programa...")
            break
        else:
            print("Opção inválida! Tente novamente.")

if __name__ == "__main__":
    main()
				
			

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 *