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).