(3 pontos) Implemente um programa utilizando a classe de produto descrita no enunciado da questão 2, que permita controlar o estoque de 5 produtos em memória. O cadastro dos 5 produtos ocorre no início da execução do programa. Depois, o sistema deve apresentar um menu que permite ao usuário realizar as operações de alteração de estoque para qualquer um dos produtos desejados.
Passo 1
Beleza, vamos lá! O enunciado pede para a gente criar um programa que gerencia o estoque de 5 produtos usando uma classe de produto. Isso envolve conceitos de Programação Orientada a Objetos (POO), onde vamos utilizar classes e objetos para representar os produtos. Vamos precisar também de estruturas de dados como listas para armazenar os produtos e implementar um menu interativo para alterar o estoque conforme a necessidade.
Passo 2
Primeiro, vamos definir a classe
Produto
. Uma classe é como um molde que define as características dos objetos que vamos criar. No nosso caso, cada produto vai ter atributos como nome
, preço
e quantidade em estoque
.class Produto:
def __init__(self, nome, preco, quantidade):
self.nome = nome
self.preco = preco
self.quantidade = quantidade
def atualizar_estoque(self, quantidade):
self.quantidade = quantidade
Aqui, o método
__init__
é o construtor da classe, que inicializa os atributos do produto. O método atualizar_estoque
vai nos ajudar a mudar a quantidade em estoque quando necessário.Passo 3
Agora, vamos criar uma lista para armazenar os 5 produtos. No início do programa, vamos pedir para o usuário inserir os detalhes de cada produto.
produtos = []
for i in range(5):
print(f"Cadastro do Produto {i+1}")
nome = input("Nome do produto: ")
preco = float(input("Preço do produto: "))
quantidade = int(input("Quantidade em estoque: "))
produto = Produto(nome, preco, quantidade)
produtos.append(produto)
print("Produto cadastrado com sucesso!\n")
Aqui, usamos um loop
for
para repetir o processo de cadastro 5 vezes. Para cada produto, solicitamos o nome, preço e quantidade, criamos um objeto Produto
e adicionamos à lista produtos
.Passo 4
Depois de cadastrar os produtos, vamos criar um menu que permite ao usuário alterar a quantidade em estoque de qualquer produto. O menu vai continuar aparecendo até que o usuário escolha sair.
while True:
print("Menu de Operações:")
print("1. Ver estoque de todos os produtos")
print("2. Atualizar estoque de um produto")
print("3. Sair")
escolha = input("Escolha uma opção: ")
if escolha == '1':
print("\nEstoque Atual:")
for idx, produto in enumerate(produtos, start=1):
print(f"{idx}. {produto.nome} - Preço: R${produto.preco:.2f} - Quantidade: {produto.quantidade}")
print()
elif escolha == '2':
try:
num = int(input("Digite o número do produto que deseja atualizar: "))
if 1 <= num <= 5:
nova_quantidade = int(input("Digite a nova quantidade: "))
produtos[num-1].atualizar_estoque(nova_quantidade)
print("Estoque atualizado com sucesso!\n")
else:
print("Número de produto inválido. Tente novamente.\n")
except ValueError:
print("Entrada inválida. Por favor, digite um número.\n")
elif escolha == '3':
print("Saindo do programa. Até mais!")
break
else:
print("Opção inválida. Por favor, escolha novamente.\n")
Neste trecho:
- Opção 1: Mostra o estoque de todos os produtos listados.
- Opção 2: Permite que o usuário escolha qual produto deseja atualizar a quantidade. Verificamos se o número escolhido está entre 1 e 5 para evitar erros.
- Opção 3: Sai do programa.
- Validação: Usamos
try
eexcept
para tratar possíveis erros de entrada, garantindo que o usuário insira números válidos.
Resposta
Aqui está o programa completo que controla o estoque de 5 produtos conforme o enunciado:
class Produto:
def __init__(self, nome, preco, quantidade):
self.nome = nome
self.preco = preco
self.quantidade = quantidade
def atualizar_estoque(self, quantidade):
self.quantidade = quantidade
def main():
produtos = []
# Cadastro dos 5 produtos
for i in range(5):
print(f"Cadastro do Produto {i+1}")
nome = input("Nome do produto: ")
preco = float(input("Preço do produto: "))
quantidade = int(input("Quantidade em estoque: "))
produto = Produto(nome, preco, quantidade)
produtos.append(produto)
print("Produto cadastrado com sucesso!\n")
# Menu de operações
while True:
print("Menu de Operações:")
print("1. Ver estoque de todos os produtos")
print("2. Atualizar estoque de um produto")
print("3. Sair")
escolha = input("Escolha uma opção: ")
if escolha == '1':
print("\nEstoque Atual:")
for idx, produto in enumerate(produtos, start=1):
print(f"{idx}. {produto.nome} - Preço: R${produto.preco:.2f} - Quantidade: {produto.quantidade}")
print()
elif escolha == '2':
try:
num = int(input("Digite o número do produto que deseja atualizar: "))
if 1 <= num <= 5:
nova_quantidade = int(input("Digite a nova quantidade: "))
produtos[num-1].atualizar_estoque(nova_quantidade)
print("Estoque atualizado com sucesso!\n")
else:
print("Número de produto inválido. Tente novamente.\n")
except ValueError:
print("Entrada inválida. Por favor, digite um número.\n")
elif escolha == '3':
print("Saindo do programa. Até mais!")
break
else:
print("Opção inválida. Por favor, escolha novamente.\n")
if __name__ == "__main__":
main()
Como usar o programa:
-
Cadastro: Ao iniciar, o programa vai pedir para você cadastrar 5 produtos, enviando o nome, preço e quantidade de cada um.
-
Menu:
- Opção 1: Mostra a lista completa de produtos com seus preços e quantidades.
- Opção 2: Permite que você atualize a quantidade em estoque de qualquer produto específico.
- Opção 3: Encerra o programa.
Exemplo de interação:
Cadastro do Produto 1
Nome do produto: Caneta
Preço do produto: 1.50
Quantidade em estoque: 100
Produto cadastrado com sucesso!
... (cadastro dos demais produtos)
Menu de Operações:
1. Ver estoque de todos os produtos
2. Atualizar estoque de um produto
3. Sair
Escolha uma opção: 1
Estoque Atual:
1. Caneta - Preço: R$1.50 - Quantidade: 100
2. Lápis - Preço: R$0.80 - Quantidade: 200
...
Menu de Operações:
1. Ver estoque de todos os produtos
2. Atualizar estoque de um produto
3. Sair
Escolha uma opção: 2
Digite o número do produto que deseja atualizar: 1
Digite a nova quantidade: 150
Estoque atualizado com sucesso!
... (continua até escolher sair)
Pronto! Com esse programa, você consegue controlar facilmente o estoque de 5 produtos, atualizando as quantidades conforme necessário.
Exercícios relacionados
(3,5 pontos) Implemente uma classe que represente um produto em estoque (código, descrição, quantidade). Esta classe deve possuir, além dos métodos necessários para a atribuição inicial de valores, outros dois que permitam alterar a quantidade do produto. O primeiro método deve servir para adicionar uma quantidade ao estoque já existente. O segundo método deve servir para remover uma quantidade ao estoque já existente. Depois de criar tal classe escreva um programa que permita informar valores iniciais para um produto, depois alterar a sua quantidade em estoque e, em seguida, apresentar as informações finais do mesmo.
Dica: exemplo da assinatura dos métodos de alteração de quantidade:
void adicionar(int quantidade);
void remover(int quantidade);
Dica: exemplo da assinatura dos métodos de alteração de quantidade:
void adicionar(int quantidade);
void remover(int quantidade);
(3,5 pontos) Crie uma classe para modelar um aluno (nome, média, frequência). A classe deve disponibilizar métodos para cadastrar os dados do aluno. Além disso, a classe deve disponibilizar um método que permita consultar se o aluno está aprovado ou reprovado. O método retornará 1 caso o aluno esteja aprovado e 0 caso o aluno esteja reprovado. O aluno aprovado é aquele que tem média igual ou superior a 6 e frequência igual ou superior a 75.
Crie então um programa, utilizando a classe criada, que permita ao usuário informar os dados de um aluno. O programa deve então exibir na tela se o aluno está aprovado ou reprovado.
Crie então um programa, utilizando a classe criada, que permita ao usuário informar os dados de um aluno. O programa deve então exibir na tela se o aluno está aprovado ou reprovado.
Crie um programa (notas_lista.py) que cria uma lista com 10 posições e peça para o usuário entrar com as 10 notas. As notas podem ser números reais.