domingo, 20 de maio de 2012

Vetores - Desafio 2

Apostila de Vetores - Desafio 2

(Atualizado para incluir estrutura de verificação de código de mercadoria incorreto)

2. Em um sistema para o controle de estoque de mercadorias de uma loja são dados os códigos das mercadorias e as respectivas quantidades existentes. Elabore um programa para atualização do estoque, tal que:
  • Seja lido estoque inicial (máximo 100 mercadorias). Pergunte ao usuário se ainda existem mercadorias a serem lidas. 
  • Sejam lidos os pedidos dos clientes, constituídos, cada um do número do cliente, código da mercadoria e quantidade desejada(variáveis simples). Obs. a condição de parada para a leitura dos pedidos dos clientes é perguntar ao usuário se ainda existe pedidos. 
  • Seja verificado, para cada pedido, se ele pode ser integralmente atendido. Em caso negativo, Seja impresso o número do cliente e a mensagem “NÃO TEMOS A MERCADORIA EM ESTOQUE SUFICIENTE” 
  • Seja atualizado estoque após cada operação 
  • Seja listado estoque final 
Passos de Execução do Programa (algoritmo de alto nível)
  1. Leitura do estoque inicial 
  2. Leitura do pedido do cliente 
  3. Verificação da quantidade no estoque
  4. Atualização do estoque 
  5. Listagem do estoque final

Algoritmo


Programa ControleEstoque
     Declare mercadoria, estoque: vetor [1.. 100] de char
     Declare i, q, cliente, mercadoriapedido, quantidadepedido: inteiro
     Declare op1, op2, codigocerto: caracter
Inicio
         q ← 0
         op1 ← 's'
         Enquanto (op1 = 's') Faça                                     {Leitura do estoque inicial}
         Inicio_enquanto
                  Leia (mercadoria[q])
                  Leia (estoque[q])
                  q ← q + 1
                  Escreva ('Existem outras mercadorias? s/n')
                  Leia (op1)
         Fim_enquanto
         op2  ← 's'
         Enquanto (op2 = 's') Faça                                     {Leitura do pedido do cliente}
         Inicio_enquanto
                  codigocerto ← 'n'
                  Leia (cliente)
                  Leia (mercadoriapedido) 
                  Para i  ← até q Faça                                   {Verificação do estoque}
                  Inicio_para
                           Se (mercadoriapedido = mercadoria[i])
                           Entao  codigocerto ← 's'
                                       Leia (quantidadepedido)
                                       Se (quantidadepedido <= estoque[i])   {Atualização de estoque}
                                       Entao estoque[i]  estoque[i] - quantidadepedido
                                       Senao Escreva (cliente, 'Nao temos a mercadoria em estoque')
                  Fim_para
                  Se (codigocerto = 'n')                                  {Verificacao de codigo inexistente}
                  Entao Escreva ('Codigo inexistente')
                  Escreva ('Existem mais pedidos? s/n')
                  Leia (op2)
         Fim_enquanto
         Para i ← até q Faça                                             {Listagem do estoque final}
         Incio_para
                 Escreva (mercadoria[i], " : ", estoque[i])
         Fim_para
Fim

Código compilado no Dev-C++ 4.9.9.2



#include <iostream>
#include <stdio.h>

using namespace std;

main()
{
      int mercadoria[100], estoque[100];
      int i, q, cliente, mercadoriapedido, quantidadepedido;
      char op1, op2, codigocerto;
      q = 0;
      op1 = 's';
      cout << ">>>>>>>>>> PROGRAMA CONTROLE DE ESTOQUE <<<<<<<<<<" << "\n\n\n";
      cout << "CADASTRO DE ESTOQUE" << "\n";
      while (op1 == 's') //leitura do estoque inicial
            {
            cout << "\n" << "Codigo da mercadoria: ";
            cin >> mercadoria[q];
            cout << "Quantidade da mercadoria: ";
            cin >> estoque[q];
            q = q + 1;
            cout << "\n" << "Existem outras mercadorias?(s/n) ";
            cin >> op1;
            }
      system("cls");
      op2 = 's';
      while (op2 == 's') //leitura do pedido do cliente
            {
            codigocerto = 'n';
            cout << ">>>>>>>>>> PROGRAMA CONTROLE DE ESTOQUE <<<<<<<<<<" << "\n\n\n";
            cout << "CADASTRO DE PEDIDOS " << "\n\n";
            cout << "Numero do cliente: ";
            cin >> cliente;
            cout << "\n" << "Codigo da mercadoria: ";
            cin >> mercadoriapedido;
            for (i = 0; i < q; i++) //verificacao da quantidade no estoque
                {
                if (mercadoriapedido == mercadoria[i])
                   {
                   codigocerto = 's';
                   cout << "Quantidade desejada: "; //leitura da quantidade
                   cin >> quantidadepedido;
                   if (quantidadepedido <= estoque[i])
                      {
                      estoque[i] = estoque[i] - quantidadepedido; //atualizacao de estoque
                      }
                   else
                       {
                       cout << "\n" << "Cliente " << cliente;
                       cout << " : NAO TEMOS A MERCADORIA " << mercadoriapedido << " EM ESTOQUE SUFICIENTE" << "\n";
                       }
                   }
                }
            if (codigocerto == 'n') //verificacao de codigo de mercadoria inexistente
               {
               cout << "\n" << "CODIGO DE MERCADORIA INEXISTENTE" << "\n";
               }
            cout << "\n" << "Existem mais pedidos?(s/n) ";
            cin >> op2;
            system("cls");
            }
      cout << ">>>>>>>>>> PROGRAMA CONTROLE DE ESTOQUE <<<<<<<<<<" << "\n\n\n";
      cout << "ESTOQUE FINAL" << "\n\n";
      for (i = 0; i < q; i++) //listagem do estoque final
          {
          cout << "Mercadoria " << mercadoria[i] << " : " << estoque[i] << " unidades" << endl;
          }
      cout << "\n";
      system("PAUSE");
}

Nenhum comentário:

Postar um comentário