Ir ao conteúdo

Posts recomendados

Postado
#include <iostream>
#include <cstring>

using namespace std;

int main()
{
   string nome, j, prod[20]={};
   char p;
   int n=0, i, resp, quant, vendas, qtde[20]={0};
   float pagamento, troco, lucro=0, preco[20]={0};
   bool achou = false;

do{
   do{
      cout << "qual acao deseja realizar ??" << endl << "1 Cadrastar um produto " << endl << "2 Procurar um produto" << endl << "3 Vender um produto " << endl << "4 Relatorio " << endl << "0 Encerrar programa" << endl;
      cin >> resp;
   }while(resp != 1 && resp !=2 && resp !=3 && resp !=4 && resp != 0);

   switch(resp){
       case 1:{
        do{
         cin.ignore();
         cout << "!!ANTES DO CADRASTAMENRTO VERIFICAR SE O PRODUTO JA EXISTE!!" << endl << "Insira o nome do produto para verificacao: ";
         getline(cin, nome);
        }while(nome == " ");

         for(i=0; i<20; i++){
            if(nome == prod[i]){
                cout << "O produto ja existe!!";
                break;
            }
         }
         for(i=n; i<20; i++){

            do{
             cout << "O produto ja foi cadastrado, coloque a quantida e o preco dele: ";
             cin >> qtde[i] >> preco[i];
            }while(qtde[i] > 50 && preco[i] < 0.01);

             prod[i] = nome;
             n++;
             break;
            }
           //SUBSTITUIR O "CIN" POR COMANDO CORRETO
       break;}

       case 2:{
           cout << "ESCREVA O NOME DO PRODUTO A SER PROCURADO!!" << endl;
           getline(cin, nome);
           cin.ignore();


           for(i=0; i<20; i++){
             if(nome == prod[i]){
                achou = true;
                break;
             }
           }

           if(achou == true){
            cout << "O produto " << prod[i] << endl << "Qtde dele em estoque " << qtde[i] << endl << "O preco por unidade R$" << preco[i] << endl;
            cout << "Quer continaur o programa ??" << endl;
            cin >> p;
           }else{
             cout << "Item não encontrado" << endl;
           }

       break;}

       case 3:{
           cin.ignore();
           cout << "Qual item que sera vendido ?? " << endl;
           getline(cin, nome);

           for(i=0; i<20; i++){
             if(nome == prod[i]){
                    cout << "Qual a quantidade ?? no estoque a disponivel: " << qtde[i] << endl;
                    cin >> quant;
               if(quant <= qtde[i]){
                cout << "O valor a se pagar e de R$: " << preco[i]*quant << endl;
                cin >> pagamento;
                troco = pagamento - (quant * preco[i]);

                lucro = preco[i]*quant;

                cin.ignore();
                cout << "pagamento realizado com sucesso, troco foi de R$: " << troco << endl << "Para prosseguir precione ENTER:";
                getline(cin, j);

                qtde[i] = qtde[i] - quant;
                vendas = quant;
                break;
               }else{
                   cin.ignore();
                   cout << "não á essa quantia do produto no estoque";
                   getline(cin, j);
                   break;
               }
             }
             if(achou == false){
                cin.ignore();
                cout << "O produto não foi encontrado " << endl;
                getline(cin, j);
                break;
             }
           }
       break;}

       case 4:{
          do{
           cout << "Qual relatorio deseja ver ?? " << endl << "1 Relatorio de produtos em falta no estoque " << endl << "2 Relatorio de vendas do mercado" << endl;
           cin >> resp;
          }while(resp != 1 && resp != 2);

          switch(resp){
           case 1:{
             for(i=0; i<20; i++){
               if(qtde[i] > 0){
                if(qtde[i] < 10){
                    cout << "Produto " << prod[i] << " esta com o estoque abaixo de 10 " << " Quantidade disponivel de " << qtde[i] << endl;
                    achou = true;
                }
               }
             }
             if(achou == false){
                cin.ignore();
                cout << "não á produtos com estoque inferior a 10 ";
                getline(cin, j);
             }

           break;}

           case 2 :{
             cin.ignore();
             cout << "O mercado vendeu " << vendas << endl << "O lucro foi de R$: " << lucro << endl;
             getline(cin, j);
           break;}

         break;}

       break;}
   }
  system("cls");
  achou = false;
}while(resp != 0);

cout << "Programa encerrado ";

    return 0;
}

To tendo uma problema muito grande no case 2 do primeiro switch, ele simplesmente pula as informações que eram pra ser exibidas.

  • Curtir 1
Postado

@Mr-86    não observei esse erro no código não ,  funcionou bem :

#include <iostream>
#include <cstring>
using namespace std;
int main()
{
    string nome, j, prod[20] = {""};
    char p;
    int n=0, i, resp, quant, vendas, qtde[20]= {0};
    float pagamento, troco, lucro=0, preco[20]= {0};
    bool achou = false;
    do
    {
        do
        {
            cout << "qual acao deseja realizar ??" << endl;
            cout << "1 Cadrastar um produto      " << endl;
            cout << "2 Procurar um produto       " << endl;
            cout << "3 Vender um produto         " << endl;
            cout << "4 Relatorio                 " << endl;
            cout << "0 Encerrar programa         " << endl;
            cin  >>  resp;
        }
        while( resp < 0 or resp > 4 );
        switch(resp)
        {
        case 1:   /// { não precisam dessas chaves
            do
            {
                cin.ignore();
                cout << "!!ANTES DO CADRASTAMENRTO VERIFICAR SE O PRODUTO JA EXISTE!!" << endl;
                cout << "Insira o nome do produto para verificacao: ";
                getline(cin, nome);
            }
            while( nome == "" );
            for( i=0; i<20; i++ )
            {
                if( nome == prod[i] )
                {
                    cout << "O produto ja existe ! ! . . ." << endl;
                    break;
                }
            }
            for(i=n; i<20; i++)
            {

                do
                {
                    cout << "O produto ja foi cadastrado, coloque a quantida e o preco dele: ";
                    cin >> qtde[i] >> preco[i];
                }
                while(qtde[i] > 50 && preco[i] < 0.01);

                prod[i] = nome;
                n++;
                break;
            }
            //SUBSTITUIR O "CIN" POR COMANDO CORRETO
            break;

        case 2:
        {
            cout << "ESCREVA O NOME DO PRODUTO A SER PROCURADO!!" << endl;
            getline(cin, nome);
            cin.ignore();
            for(i=0; i<20; i++)
            {
                if(nome == prod[i])
                {
                    achou = true;
                    break;
                }
            }
            cout << "passou do loop for" << endl;
            if(achou == true)
            {
                cout << "O produto " << prod[i] << endl << "Qtde dele em estoque " << qtde[i] << endl << "O preco por unidade R$" << preco[i] << endl;
                cout << "Quer continaur o programa ??" << endl;
                cin >> p;
            }
            else
            {
                cout << "Item não encontrado" << endl;
            }

            break;
        }

        case 3:
        {
            cin.ignore();
            cout << "Qual item que sera vendido ?? " << endl;
            getline(cin, nome);

            for(i=0; i<20; i++)
            {
                if(nome == prod[i])
                {
                    cout << "Qual a quantidade ?? no estoque a disponivel: " << qtde[i] << endl;
                    cin >> quant;
                    if(quant <= qtde[i])
                    {
                        cout << "O valor a se pagar e de R$: " << preco[i]*quant << endl;
                        cin >> pagamento;
                        troco = pagamento - (quant * preco[i]);

                        lucro = preco[i]*quant;

                        cin.ignore();
                        cout << "pagamento realizado com sucesso, troco foi de R$: " << troco << endl << "Para prosseguir precione ENTER:";
                        getline(cin, j);

                        qtde[i] = qtde[i] - quant;
                        vendas = quant;
                        break;
                    }
                    else
                    {
                        cin.ignore();
                        cout << "não á essa quantia do produto no estoque";
                        getline(cin, j);
                        break;
                    }
                }
                if(achou == false)
                {
                    cin.ignore();
                    cout << "O produto não foi encontrado " << endl;
                    getline(cin, j);
                    break;
                }
            }
            break;
        }

        case 4:
        {
            do
            {
                cout << "Qual relatorio deseja ver ?? " << endl << "1 Relatorio de produtos em falta no estoque " << endl << "2 Relatorio de vendas do mercado" << endl;
                cin >> resp;
            }
            while(resp != 1 && resp != 2);

            switch(resp)
            {
            case 1:
            {
                for(i=0; i<20; i++)
                {
                    if(qtde[i] > 0)
                    {
                        if(qtde[i] < 10)
                        {
                            cout << "Produto " << prod[i] << " esta com o estoque abaixo de 10 " << " Quantidade disponivel de " << qtde[i] << endl;
                            achou = true;
                        }
                    }
                }
                if(achou == false)
                {
                    cin.ignore();
                    cout << "não á produtos com estoque inferior a 10 ";
                    getline(cin, j);
                }

                break;
            }

            case 2 :
            {
                cin.ignore();
                cout << "O mercado vendeu " << vendas << endl << "O lucro foi de R$: " << lucro << endl;
                getline(cin, j);
                break;
            }

            break;
            }

            break;
        }
        }
        system("cls");
        achou = false;
    }
    while(resp != 0);

    cout << "Programa encerrado ";

    return 0;
}

 

Postado

@Mr-86 Há várias formas de fazer esse tipo de exercício, mas acho que devia tentar usar funções para facilitar a manutenção do código. Poderia criar uma para o menu, outra para cadastrar, listar, calcular o total, etc. Struct também pode ser usada para organizar os dados.

  • Curtir 2

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...