6
respostas

[Dúvida] como posso resolver em c++,está dando erro quando vou execultar o código.

Senhor Armando tem uma vendinha na quitanda e ele quer começar a informatizar seu negócio . Ele quer fazer um mini sistema de vendas para ajudar ele a ter um controle melhor, para isso ele deseja ter um sistema que atenda os seguintes requisitos:

Adicionar um produto novo ao seu estoque:

Sempre que um produto chegar na sua quitanda ele deseja adicionar ao seu programa e deixar salvo no computador.

Adicionar quantia as novas ao estoque:

Sempre que chegar mercadoria nova, adicionar a quantidade respectiva

Adicionar um cliente

Seu Armando quer ter um controle de quem compra com ele, para isso ele quer fazer um perfil de seus clientes.

Verificar o preço de um produto pelo seu código:

Todo produto na vendinha deve ter um código para identifica-lo, e assim ficar fácil de consultar seu preço.

Verificar quantos produtos tem em estoque

Verificar quantos produtos ainda tem em estoque.

Realizar uma venda:

O programa deve ser capaz de passar todos os produtos que o cliente foi comprar, exibir no final quanto foi o valor da compra. Lembrar também de retirar do estoque o que for vendido.

6 respostas

Boa tarde, Consegue fornecer o código que tentou executar e qual erro retornou ?

#include

#include #include #include #include using namespace std; // Classe para representar um produto class Produto { public: string nome; string codigo; float preco; int quantidade; Produto(string nome, string codigo, float preco, int quantidade) { this->nome = nome; this->codigo = codigo; this->preco = preco; this->quantidade = quantidade; } }; // Classe para representar um cliente class Cliente { public: string nome; string endereco; string telefone; Cliente(string nome, string endereco, string telefone) { this->nome = nome; this->endereco = endereco; this->telefone = telefone; } }; // Função para adicionar um novo produto void adicionarProduto(vector& produtos) { string nome, codigo; float preco; int quantidade; cout << "Nome do produto: "; cin >> nome; cout << "Código do produto: "; cin >> codigo; cout << "Preço do produto: "; cin >> preco; cout << "Quantidade inicial: "; cin >> quantidade; produtos.push_back(Produto(nome, codigo, preco, quantidade)); } // Função para atualizar a quantidade de um produto no estoque void atualizarQuantidadeProduto(vector& produtos) { string codigo; int novaQuantidade; cout << "Código do produto: "; cin >> codigo; for (Produto& produto : produtos) { if (produto.codigo == codigo) { cout << "Nova quantidade: "; cin >> novaQuantidade; produto.quantidade = novaQuantidade; cout << "Quantidade atualizada com sucesso!" << endl; return; } } cout << "Produto não encontrado!" << endl; } // Função para remover um produto do estoque void removerProduto(vector& produtos) { string codigo; cout << "Código do produto: "; cin >> codigo; for (auto it = produtos.begin(); it != produtos.end(); ++it) { if ((*it).codigo == codigo) { produtos.erase(it); cout << "Produto removido com sucesso!" << endl; return; } } cout << "Produto não encontrado!" << endl; } // Função para adicionar um novo cliente void adicionarCliente(map<string, Cliente>& clientes) { string nome, endereco, telefone; cout << "Nome do cliente: "; cin >> nome; cout << "Endereço: "; cin >> endereco; cout << "Telefone (opcional): "; cin >> telefone; clientes[nome] = Cliente(nome, endereco, telefone); } // Função para editar as informações de um cliente void editarCliente(map<string, Cliente>& clientes) { string nomeBusca; string nomeNovo, enderecoNovo, telefoneNovo; cout << "Nome do cliente a ser editado: "; cin >> nomeBusca; if (clientes.count(nomeBusca) == 0) { cout << "Cliente não encontrado!" << endl; return; } cout << "Novo nome (opcional): "; cin.ignore(); // Limpa o buffer de entrada getline(cin, nomeNovo); if (!nomeNovo.empty()) { clientes[nomeNovo] = clientes[nomeBusca]; clientes.erase(nomeBusca); nomeBusca = nomeNovo; } cout << "Novo endereço (opcional): "; getline(cin, enderecoNovo); if (!enderecoNovo.empty()) { clientes[nomeBusca].endereco = enderecoNovo; } cout << "Novo telefone (opcional): "; getline(cin, telefoneNovo); if (!telefoneNovo.empty()) { clientes[nomeBusca].telefone = telefoneNovo; } cout << "Informações do cliente atualizadas com sucesso!" << endl; } // Função para remover um cliente void removerCliente(map<string, Cliente>& clientes) { string nome; cout << "Nome do cliente: "; cin >> nome;

Bom, Nesse código que você mandou, existem algumas inconsistências. No caso, você esta importando os #includes sem efetivamente importar as bibliotecas que deseja, você precisa importar as bibliotecas da forma a baixo.

#include <iostream>
#include <vector>
#include <map>
#include <string>

Namespace: O uso de using namespace std; está correto, mas ele deve estar no início do código para ser eficaz.

Construtor: A falta de um construtor padrão para a classe Cliente.

Especificações: Aparentemente no código esta faltando algumas partes da especificação que você forneceu no inicio do post.

Falta de função principal: O código fornecido esta faltando a função main(), para realizar a execução do programa e exibir o menu para o usuário.

Uso de contêineres: Utilização de vector para armazenar produtos e map para armazenar clientes, garantindo eficiência e facilidade na manipulação dos dados.

Segue o código funcionando, caso queira ver como deveria ser feita a implementação. Lembrando que, o código não esta com todas as implementações da especificação passada no titulo do post. Vou precisar quebrar ele em duas repostas, pois ultrapassa o número de caracteres permitidos por resposta.

#include <iostream>
#include <vector>
#include <map>
#include <string>
using namespace std;

// Classe para representar um produto
class Produto {
public:
    string nome;
    string codigo;
    float preco;
    int quantidade;

    Produto(string nome, string codigo, float preco, int quantidade) {
        this->nome = nome;
        this->codigo = codigo;
        this->preco = preco;
        this->quantidade = quantidade;
    }
};

// Classe para representar um cliente
class Cliente {
public:
    string nome;
    string endereco;
    string telefone;

    // Construtor padrão
    Cliente() {}

    Cliente(string nome, string endereco, string telefone) {
        this->nome = nome;
        this->endereco = endereco;
        this->telefone = telefone;
    }
};

// Função para adicionar um novo produto
void adicionarProduto(vector<Produto>& produtos) {
    string nome, codigo;
    float preco;
    int quantidade;

    cout << "Nome do produto: ";
    cin >> nome;
    cout << "Código do produto: ";
    cin >> codigo;
    cout << "Preço do produto: ";
    cin >> preco;
    cout << "Quantidade inicial: ";
    cin >> quantidade;

    produtos.push_back(Produto(nome, codigo, preco, quantidade));
}

// Função para consultar as informações de um produto pelo código
void consultarProduto(const vector<Produto>& produtos) {
    string codigo;

    cout << "Código do produto: ";
    cin >> codigo;

    bool encontrado = false;

    for (const Produto& produto : produtos) {
        if (produto.codigo == codigo) {
            cout << "\n=== Informações do Produto ===\n";
            cout << "Nome: " << produto.nome << endl;
            cout << "Código: " << produto.codigo << endl;
            cout << "Preço: R$ " << produto.preco << endl;
            cout << "Quantidade em estoque: " << produto.quantidade << endl;
            encontrado = true;
            break;
        }
    }

    if (!encontrado) {
        cout << "Produto não encontrado!" << endl;
    }
}

// Função para atualizar a quantidade de um produto no estoque
void atualizarQuantidadeProduto(vector<Produto>& produtos) {
    string codigo;
    int novaQuantidade;

    cout << "Código do produto: ";
    cin >> codigo;

    for (Produto& produto : produtos) {
        if (produto.codigo == codigo) {
            cout << "Nova quantidade: ";
            cin >> novaQuantidade;
            produto.quantidade = novaQuantidade;
            cout << "Quantidade atualizada com sucesso!" << endl;
            return;
        }
    }

    cout << "Produto não encontrado!" << endl;
}

// Função para remover um produto do estoque
void removerProduto(vector<Produto>& produtos) {
    string codigo;

    cout << "Código do produto: ";
    cin >> codigo;

    for (auto it = produtos.begin(); it != produtos.end(); ++it) {
        if ((*it).codigo == codigo) {
            produtos.erase(it);
            cout << "Produto removido com sucesso!" << endl;
            return;
        }
    }

    cout << "Produto não encontrado!" << endl;
}

// Função para adicionar um novo cliente
void adicionarCliente(map<string, Cliente>& clientes) {
    string nome, endereco, telefone;

    cout << "Nome do cliente: ";
    cin >> nome;
    cout << "Endereço: ";
    cin >> endereco;
    cout << "Telefone (opcional): ";
    cin >> telefone;

    clientes.emplace(nome, Cliente(nome, endereco, telefone));
}

// Função para editar as informações de um cliente
void editarCliente(map<string, Cliente>& clientes) {
    string nomeBusca, nomeNovo, enderecoNovo, telefoneNovo;

    cout << "Nome do cliente a ser editado: ";
    cin >> nomeBusca;

    if (clientes.count(nomeBusca) == 0) {
        cout << "Cliente não encontrado!" << endl;
        return;
    }

    cout << "Novo nome (opcional): ";
    cin.ignore(); // Limpa o buffer de entrada
    getline(cin, nomeNovo);

    if (!nomeNovo.empty()) {
        clientes[nomeNovo] = clientes[nomeBusca];
        clientes.erase(nomeBusca);
        nomeBusca = nomeNovo;
    }

    cout << "Novo endereço (opcional): ";
    getline(cin, enderecoNovo);

    if (!enderecoNovo.empty()) {
        clientes[nomeBusca].endereco = enderecoNovo;
    }

    cout << "Novo telefone (opcional): ";
    getline(cin, telefoneNovo);

    if (!telefoneNovo.empty()) {
        clientes[nomeBusca].telefone = telefoneNovo;
    }

    cout << "Informações do cliente atualizadas com sucesso!" << endl;
}


// Função para remover um cliente
void removerCliente(map<string, Cliente>& clientes) {
    string nome;

    cout << "Nome do cliente: ";
    cin >> nome;

    if (clientes.erase(nome) == 0) {
        cout << "Cliente não encontrado!" << endl;
    } else {
        cout << "Cliente removido com sucesso!" << endl;
    }
}

// Função principal
int main() {
    vector<Produto> produtos;
    map<string, Cliente> clientes;

    int opcao;

    do {
        cout << "\n=== Menu ===\n";
        cout << "1. Adicionar produto\n";
        cout << "2. Consultar informações de produto por código\n";
        cout << "3. Atualizar quantidade de produto\n";
        cout << "4. Remover produto\n";
        cout << "5. Adicionar cliente\n";
        cout << "6. Editar informações de cliente\n";
        cout << "7. Remover cliente\n";
        cout << "8. Sair\n";
        cout << "Escolha uma opção: ";
        cin >> opcao;

        switch (opcao) {
            case 1:
                adicionarProduto(produtos);
                break;
            case 2:
                consultarProduto(produtos);
                break;
            case 3:
                atualizarQuantidadeProduto(produtos);
                break;
            case 4:
                removerProduto(produtos);
                break;
            case 5:
                adicionarCliente(clientes);
                break;
            case 6:
                editarCliente(clientes);
                break;
            case 7:
                removerCliente(clientes);
                break;
            case 8:
                cout << "Saindo...\n";
                break;
            default:
                cout << "Opção inválida! Tente novamente.\n";
                break;
        }
    } while (opcao != 8);

    return 0;
}

Qualquer dúvida continuo a disposição para ajudar. Bons estudos! :)