• Python

2022.1 Prova 1 - Questão 2: Máquina de Venda Automática#

Faça um programa que implementa o sistema de uma máquina de venda automática. Você deve implementar as seguintes funcionalidades:

  • ['c'] Cadastrar produto
  • ['r'] Reabastecer estoque
  • ['l'] Listar produtos disponíveis no estoque
  • ['v'] Vender produto (só existe a opção de vender um produto por vez)
  • ['i'] Imprimir valor em caixa
  • ['s'] Sair

A interação com o programa ocorre por meio de comandos de 1 caractere representando cada ação ('c', 'r', 'l', 'v', 'i', 's'). Depois que o usuário define a ação desejada, o programa pergunta informações adicionais, quando necessário, conclui a operação, imprime 'Ação finalizada' e aguarda o usuário digitar a próxima ação.

Abaixo apresentamos a descrição e um exemplo de cada nível de proficiência.

Importante

As mensagens devem ser exatamente iguais às dos exemplos. Tome cuidado com letras maiúsculas, acentos e sinais de pontuação.

[BÁSICO] Controle de estoque#

Para o nível básico o programa deve ser capaz de reabastecer produtos (opção 'r'), listar os produtos disponíveis ('l') e sair 's'. O programa sempre inicia com o produto 'chocolate' já cadastrado com o preço 4.5, mas sem o produto no estoque.

Como a ação de cadastrar produtos ainda não será implementada, no nível básico seu programa deve ser capaz apenas de reabastecer a quantidade de chocolate, mostrar a quantidade de produtos disponíveis e sair. A seguir descrevemos cada uma das ações.

Neste nível o único produto existente é o chocolate. É suficiente se o seu programa funcionar apenas para esse produto fixo.

Reabastecer produtos#

Para reabastecer um produto o usuário deve digitar o nome do produto previamente cadastrado e a quantidade que deseja adicionar. No nível básico o usuário sempre digitará 'chocolate', pois é o único produto cadastrado.

Listar produtos disponíveis#

O programa deve imprimir os produtos disponíveis, um por linha, no seguinte formato: 'NOME (quantidade)'. Por exemplo: 'chocolate (12)'. Se não houver nenhum produto disponível, o programa deve imprimir 'Não há produtos disponíveis'.

Sair#

O programa encerra e imprime a mensagem 'Fim'.

Consulte o exemplo de interação com o programa (nível básico).

[PROFICIENTE] Cadastro de novos produtos#

No nível proficiente você deve aceitar o cadastro de novos produtos e atualizar o que for necessário para que as opções já implementadas continuem funcionando (reabastecer e listar produtos).

Cadastrar produto#

Para cadastrar um produto o usuário deve digitar o nome do novo produto e o seu preço. A quantidade inicial de um produto cadastrado é zero.

Consulte o exemplo de interação com o programa (nível proficiente).

Ordem da lista

A ordem da lista de produtos na opção 'l' não importa. Basta que cada produto seja impresso em uma linha separada.

[AVANÇADO] Controle de vendas#

Para o nível avançado você deve implementar as ações de vender um produto e imprimir o saldo atual.

Vender produto#

Para vender um produto o usuário deve digitar o nome do produto desejado. A quantidade deve ser diminuida em 1 unidade. O programa deve verificar se o produto existe e se há pelo menos uma unidade disponível para a venda. Caso contrário, o programa deve imprimir 'O produto NOME não existe' ou 'O produto NOME não está disponível', respectivamente (substituindo NOME' pelo nome do produto digitado).

Imprimir saldo#

A opção de imprimir o saldo deve mostra o valor total de todas as vendas realizadas desde o início do programa. O saldo deve ser impresso da seguinte formar 'O saldo atual é R$ SALDO' onde SALDO é o valor com exatamente duas casas decimais.

Validação de comando#

Você também deve validar a ação emitida pelo usuário. Se a ação escolhida não existir (ou seja, não for nenhuma destas: 'c', 'r', 'l', 'v', 'i', 's') o programa deve imprimir 'Ação inválida' e perguntar novamente a ação desejada.

Consulte o exemplo de interação com o programa (nível avançado).