Ir ao conteúdo
  • Cadastre-se

C++ O meu codigo da dando erro e não sei mais o que fazer.


Mr-86

Posts recomendados

#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
Link para o comentário
Compartilhar em outros sites

@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;
}

 

Link para o comentário
Compartilhar em outros sites

9 horas atrás, Flávio Pedroza disse:
if(nome == prod[i]){
                achou = true;
                break;
             }

Não é assim que se compara strings em C. Utiliza strcmp.

https://wagnergaspar.com/como-comparar-duas-strings-com-a-funcao-strcmp-na-linguagem-de-programacao-c/

Ignore meu comentário. Percebi agora que você está usando c++, então está correto.

  • Amei 1
Link para o comentário
Compartilhar em outros sites

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

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!