1
resposta

Resolução de Desafio: Simulador de pedidos em uma cafeteria

O processo do Simulador de Pedidos em uma Cafeteria inicia-se com a coleta de informações básicas sobre o produto, onde o usuário deve inserir o nome do item, o seu respectivo preço e a quantidade solicitada. Logo após o preenchimento desses dados, o sistema apresenta um resumo do pedido para visualização. Neste estágio, ocorre uma verificação onde o usuário decide se deseja adicionar mais itens; caso a resposta seja positiva, o sistema reinicia o ciclo de entrada de dados desde o nome do item. Caso o usuário decida não adicionar mais produtos, o fluxo avança para a fase de identificação, solicitando o preenchimento do CPF do cliente. Com o CPF informado, o sistema realiza uma consulta para verificar se o cliente já possui cadastro. Se o cliente for cadastrado, aplica-se automaticamente um desconto de 10% sobre o valor total; caso contrário, é aplicado o valor cheio da compra. Após a definição do valor final, os dados do pedido são devidamente salvos no sistema. Por fim, o simulador exibe os detalhes completos do pedido concluído e encerra a operação.

O sistema inicia coletando o nome, preço e quantidade do item, exibindo um resumo logo após. O usuário pode optar por adicionar novos itens, retornando ao início, ou prosseguir para a identificação via CPF. Se o cliente for cadastrado, o sistema aplica 10% de desconto; caso contrário, cobra-se o valor cheio. Por fim, os dados são salvos no banco de dados, o sistema exibe os detalhes finais do pedido e a operação é encerrada no nó de finalização.
Início do Fluxo
Título do Sistema: Sistema de Registro de Pedidos - Cafeteria.

Entrada de Dados do Item:
Input 1: Pergunta o nome do item.

Input 2: Pergunta o preço do item.

Input 3: Pergunta a quantidade desejada.

Processamento Inicial: O sistema exibe o resumo do pedido com as informações inseridas.

Ponto de Decisão: Adicionar Itens
Decisão: "Adicionar Itens ao Pedido?"

Caminho "Sim": O fluxo retorna ao primeiro input ("Qual o Nome do Item?"), permitindo a repetição do ciclo de entrada para novos produtos.

Caminho "Não": O fluxo prossegue para a identificação do cliente.

Identificação e Regras de Negócio
Input de Identificação: Solicitação do CPF do cliente.

Ponto de Decisão: Fidelidade: "Cliente Cadastrado?"

Caminho "Sim": É aplicada a regra de negócio Aplicar Desconto de 10%.

Caminho "Não": É aplicada a regra de negócio Aplicar Valor Cheio.

Finalização e Saída
Armazenamento: Os dados do pedido (com ou sem desconto) são salvos no sistema (representado pelo ícone de documento/banco de dados).

Saída de Dados: O sistema exibe os detalhes finais do pedido para conferência.

Encerramento: O processo é finalizado no nó "Fim".

programa
{
    funcao inicio()
    {
        // Variáveis
        cadeia nome_item, cpf
        real preco_item, total_pedido = 0.0, valor_final
        inteiro quantidade
        caracter adicionar_mais

        escreva("=== Sistema de Registro de Pedidos - Cafeteria ===\n")

        // Entrada de itens (Loop)
        faca 
        {
            escreva("\nQual o Nome do Item? ")
            leia(nome_item)
            escreva("Qual o Preço do Item? ")
            leia(preco_item)
            escreva("Qual a Quantidade? ")
            leia(quantidade)

            total_pedido = total_pedido + (preco_item * quantidade)

            escreva("\nDeseja adicionar mais itens? (S/N): ")
            leia(adicionar_mais)
        } enquanto (adicionar_mais == 'S' ou adicionar_mais == 's')

        // Regra de Negócio: Desconto baseado no CPF
        escreva("\nInforme o CPF do Cliente para identificação: ")
        leia(cpf)

        // Regra de Negócio: Se o CPF for "123", o sistema reconhece como cadastrado
        se (cpf == "123.456.789-00" ou cpf == "123") 
        {
            escreva("\n[SISTEMA]: Cliente cadastrado localizado!")
            escreva("\nRegra aplicada: Desconto de 10% aplicado.")
            valor_final = total_pedido * 0.90
        }
        senao 
        {
            escreva("\n[SISTEMA]: CPF não localizado na base de fidelidade.")
            escreva("\nRegra aplicada: Valor Cheio.")
            valor_final = total_pedido
        }

        // Finalização
        escreva("\n\n------- DETALHES DO PEDIDO -------")
        escreva("\nCliente (CPF): ", cpf)
        escreva("\nTotal Bruto: R$ ", total_pedido)
        escreva("\nTotal com Desconto: R$ ", valor_final)
        escreva("\n----------------------------------\n")
    }
}
1 resposta

Oi, Calos Adriano!

Sua solução está bem consistente. Você seguiu corretamente o fluxo do problema, aplicou bem o laço de repetição com faca...enquanto e estruturou a regra de desconto de forma clara. A leitura e escrita dos dados também estão organizadas, o que facilita o entendimento.

Como melhoria, você pode adicionar validações simples nas entradas, como evitar preço negativo ou quantidade zero. Também pode evoluir separando partes do código em funções, o que ajuda na organização conforme o sistema cresce.

No geral, está correto e bem implementado. Bom trabalho.

Bons estudos!

Sucesso

Imagem da comunidade