I need to register several products

3

I am creating a Product registration code, but I can only store a single product. How to improve the code?

#include<iostream>
using namespace std;

void novoProduto(){
    string nome="Patrick Oliveira de Souza";
    float custo, venda;

    system("cls");
    cout<<"\tCadastro de Produto\n\n\n";
    cout<<"\nNome do Produto: ";
    cin>>nome;
    cout<<"\nPreco de Custo: ";
    cin>>custo;
    cout<<"\nPreco de Venda: ";
    cin>>venda;
}

int main()
{
    int op;
    cout<<"\tCadastro de Produto\n\n\n";
    cout<<"\n<1>Novo Produto";
    cout<<"\n<2>Listar Produtos";
    cout<<"\n\tOpcao: ";
    cin>>op;

    switch (op){
        case 1:
            novoProduto();
            break;

        /*case 2:
            break*/


    }
    return 0;
}
    
asked by anonymous 28.06.2016 / 05:21

1 answer

2

A very basic way to add this feature:

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

class Produto { //esta é uma forma bem simplificada
    public:
        string Nome;
        float Custo; //em código real não pode usar float para valor monetário
        float Venda;
};

void novoProduto(vector<Produto> produtos) { //esta é uma forma bem ingênua de fazer isto
    produtos.push_back(Produto());
    cout << "\tNovo Produto\n";
    cout << "\nNome do Produto: ";
    cin >> produtos[produtos.size() - 1].Nome;
    cout << "\nPreco de Custo: ";
    cin >> produtos[produtos.size() - 1].Custo;
    cout << "\nPreco de Venda: ";
    cin >> produtos[produtos.size() - 1].Venda;
}

int main() {
    vector<Produto> produtos;
    int op;
    do {
        cout << "\n\tCadastro de Produto\n";
        cout << "\n<1> Novo Produto";
        cout << "\n<2> Listar Produtos";
        cout << "\n\tOpcao: ";
        cin >> op;
        system("cls");

        switch (op) {
            case 1:
                novoProduto(produtos);
                break;
        }
    } while (op != 0);
    return 0;
}

See running on ideone and on CodingGround .

Note that there have been two main changes. I created a vector to store the various products and created a class to group the data of a product. I made a series of cosmetic changes and added a loop to allow several actions in the same execution.

I made several simplifications, in real code a lot should be done differently.

    
28.06.2016 / 09:13