online compiler and debugger for c/c++

code. compile. run. debug. share.
Source Code   
Language
#include <iostream> #include "miniprojeto.h" using namespace std; int main() { int op; unsigned int c; char n[51]; char m[51]; char t[51]; double p; lista_produto a; lista_vendas b; lista_itens_vendas d; while(1) { cout << "-------------------------------------------------" << endl; cout << "|\tPrograma de Gestao de Supermercados\t|"<< endl; cout << "-------------------------------------------------" << endl << endl; cout << "Autores: \n\tJoao Moitas 2018297016\n\tJose Silva 2018296125" << endl; cout << "Comece por selecionar uma das seguintes opções" << endl << endl; cout << "1-> Produtos" << endl; cout << "2-> Venda" << endl; cout << "3-> Inventario" << endl; cout << "4-> Faturacao" << endl; cout << "5-> Sair" << endl << endl; cin >> op; switch (op) { case 1: { int op2; cout<< "o que pretende fazer?" << endl; cout << "1- Inserir produto." << endl; cout << "2- Modificar PVP." << endl; cout << "3- Apagar Produto." << endl; cin >> op2; switch (op2) { case 1: { cout<<"insira um novo produto:\n"; cout<<"codigo:"; cin>>c; cout<<endl; cout<<"nome:"; cin>>n; cout<<endl; cout<<"marca:"; cin>>m; cout<<endl; cout<<"tipo:"; cin>>t; cout<<endl; cout<<"preco:"; cin>>p; cout<<endl; a.novoProduto(c,n,m,t,p); cout<< "Adicionado com sucesso:"; a.mostraProduto(c); cout<<endl; break; } case 2: { unsigned int c2; cout<<"Qual e o produto que quer mudar:"<<endl; a.mostraProdutos(); cout<<"Codigo:"; cin>>c2; cout<<endl; a.modificaPVP(c2); a.mostraProduto(c2); break; } case 3: { unsigned int c3; cout<<"Qual e o produto que quer eliminar:"<<endl; a.mostraProdutos(); cout<<"Codigo:"; cin>>c3; a.elimina(c3); break; } break; } break; } case 2: { unsigned int cV; cout<<"Insira um codigo para esta venda:"; cin>>cV; b.novaVenda(cV,&a,&d); break; } case 3: { int op3; cout<<"1) Inventario Total\n"; cout<<"2) Inventario Parcial\n"; cout<<"Escolha:"; cin>>op3; switch (op3) { case 1: { a.mostraProdutos(); break; } case 2: { char nome[51]; cout<<"Qual e o produto que quer procurar(nome):"; cin>>nome; break; //fazer funçao de pesquisa por nome } break; } break; } case 4: { b.mostraVendas(); } case 5: { cout<<"\nGoodbye"<<endl; return 0; } return 0; } } }
#ifndef _MINIPROJETO_H #define _MINIPROJETO_H #include <iostream> #include <string> using namespace std; class no_produto { public: unsigned int codigo; char nome[51]; char marca[51]; char tipo[51]; double preco; no_produto* prox; //referencia para o proximo no }; class no_itens_vendas { public: unsigned codigoVendaI,codigoProduto,quantidade; double custoTotal; no_itens_vendas* proxim; //referencia para o proximo no }; class lista_itens_vendas { private: no_itens_vendas* cabecaIV; public: lista_itens_vendas() { cabecaIV=NULL; } ~lista_itens_vendas() { no_itens_vendas *atual, *proxim; atual=cabecaIV; while(atual!=NULL) { proxim=atual->proxim; delete atual; atual=proxim; } } void novoItemVenda(unsigned int codigoProduto, unsigned int quantidade, unsigned int codigoVendaI); double devolveCustodaVenda(unsigned int codigoVenda); unsigned int contaItensVenda(unsigned int codigoVenda); }; class lista_produto { private: no_produto* cabeca; public: lista_produto() { cabeca=NULL; } ~lista_produto() { no_produto *atual, *prox; atual=cabeca; while(atual!=NULL) { prox=atual->prox; delete atual; atual=prox; } } void novoProduto(unsigned int codigo,char nome[],char marca[],char tipo[],double preco); void elimina(unsigned int codigo); void mostraProdutos(void); void mostraProduto(unsigned int codigo); void modificaPVP(unsigned int codigo); unsigned int contaProdutos(void); void escolheProduto(unsigned int codigoVenda,lista_produto* aux,lista_itens_vendas* aux1); double devolvePreco(unsigned int codigo); }; class no_vendas { public: unsigned int codigoVenda, dia, mes, ano, numeroItens; double precoTotal; no_vendas* proxi; //referencia para o proximo no }; class lista_vendas { private: no_vendas* cabecaV;//1º public: lista_vendas() { cabecaV=NULL; } ~lista_vendas() { no_vendas *atual, *proxi; atual=cabecaV; while(atual!=NULL) { proxi=atual->proxi; delete atual; atual=proxi; } } void novaVenda(unsigned int codigoVenda,lista_produto* aux, lista_itens_vendas* aux1); void mostraVenda(unsigned int codigoVenda); void mostraVendas(void); void mostraPrecoTotal(unsigned int codigoVenda); }; #endif
#include <iostream> #include "miniprojeto.h" using namespace std; void lista_produto::novoProduto(unsigned int codigo,char nome[],char marca[],char tipo[],double preco) { no_produto *novo=new no_produto; no_produto *atual; int i; novo->codigo=codigo; for(i=0; nome[i] != '\0'; i++) { novo->nome[i] = nome[i]; } for(i=0; marca[i] != '\0'; i++) { novo->marca[i] = marca[i]; } for(i=0; tipo[i] != '\0'; i++) { novo->tipo[i] = tipo[i]; } novo->preco=preco; novo->prox=NULL; if(cabeca==NULL) { cabeca=novo; }else { atual=cabeca; while(atual->prox!=NULL) atual=atual->prox; atual->prox=novo; } } void lista_produto::elimina(unsigned int codigo) { no_produto *atual=cabeca;//comeco pela cabeca no_produto *anterior; if(cabeca==NULL) return; else{ anterior=NULL; while(atual!=NULL){ if(atual->codigo==codigo){ if(anterior==NULL) cabeca=atual->prox; else anterior->prox=atual->prox; delete(atual); return; } anterior=atual; atual=atual->prox; } } } void lista_produto::mostraProdutos() { no_produto *atual=cabeca; if(cabeca==NULL) cout << "Lista Vazia..." << endl; else { while(atual!=NULL) { cout << atual->codigo << ", "<< atual->nome << ", "<< atual->marca << ", "<< atual->tipo << ", "<< atual->preco << endl; // tarefa a fazer em cada nó atual = atual->prox; } } } void lista_produto::mostraProduto(unsigned int codigo) { no_produto *atual=cabeca; if(cabeca==NULL) cout << "Lista Vazia..." << endl; else { while(atual!=NULL) { if(atual->codigo==codigo) { cout << atual->codigo << ", "<< atual->nome << ", "<< atual->marca << ", "<< atual->tipo << ", "<< atual->preco << endl; return ; } atual = atual->prox; } cout << "Produto nao encontrado" << endl; } } void lista_produto::modificaPVP(unsigned int codigo) { no_produto *atual=cabeca;//comeco pela cabeca if(cabeca==NULL) return; else{ while(atual!=NULL) { if(atual->codigo==codigo) { double preco; cout<<"Insira o novo preco:"; cin>>preco; atual->preco=preco; cout<<"\nSucesso\n"; return; } atual=atual->prox; } cout << "Produto nao encontrado" << endl; } } unsigned int lista_produto::contaProdutos() { no_produto* aux=cabeca; unsigned int count=0; while (aux != NULL) { count++; aux = aux->prox; } return count; } void lista_produto::escolheProduto(unsigned int codigoVenda,lista_produto* aux,lista_itens_vendas* aux1) { aux->mostraProdutos(); unsigned int codigo, quantidade; cout<<"Escolha um produto(codigo):"; cin>>codigo; cout<<"\nQuantos deste produto quer adicionar:"; cin>>quantidade; if(quantidade==0) return; aux1->novoItemVenda(codigo,quantidade, codigoVenda); } double lista_produto::devolvePreco(unsigned int codigo) { no_produto *atual=cabeca;//comeco pela cabeca if(cabeca==NULL) return 0; else { while(atual!=NULL) { if(atual->codigo==codigo) { return atual->preco; } atual=atual->prox; } } } void lista_vendas::novaVenda(unsigned int codigoVenda,lista_produto* aux, lista_itens_vendas* aux1) { no_vendas *novo=new no_vendas; no_vendas *atual; unsigned int n; cout<<"Quantos tipos de produtos quer adicionar a venda:"; cin>>n; for(int i=0;i<n;i++) { aux->escolheProduto(codigoVenda,aux,aux1); } novo->codigoVenda=codigoVenda; novo->numeroItens=n; novo->precoTotal=aux1->devolveCustodaVenda(codigoVenda); cout<<"Insira o dia:"; cin>>novo->dia; cout<<"Insira o mes:"; cin>>novo->mes; cout<<"Insira o ano:"; cin>>novo->ano; novo->proxi=NULL; if(cabecaV==NULL) { cabecaV=novo; } else { atual=cabecaV; while(atual->proxi!=NULL) { atual=atual->proxi; } atual->proxi=novo; } } void lista_vendas::mostraVenda(unsigned int codigoVenda) { no_vendas *atual=cabecaV; if(cabecaV==NULL) cout << "Nao existe" << endl; else { while(atual!=NULL) { if(atual->codigoVenda==codigoVenda) { cout << atual->codigoVenda << ", "<< atual->dia << "."<< atual->mes << "."<< atual->ano << ", "<< atual->numeroItens<< ", "<<atual->precoTotal<< endl; return; } atual = atual->proxi; } cout<<"Venda nao encontrada"; } } void lista_vendas::mostraVendas() { no_vendas *atual=cabecaV; if(cabecaV==NULL) cout << "Nao existem vendas" << endl; else { while(atual!=NULL) { cout << atual->codigoVenda << ", "<< atual->dia << "."<< atual->mes << "."<< atual->ano << ", "<< atual->numeroItens<< ", "<<atual->precoTotal<< endl; } atual = atual->proxi; } } void lista_vendas::mostraPrecoTotal(unsigned int codigoVenda) { no_vendas *atual=cabecaV; if(cabecaV==NULL) cout << "Nenhuma venda" << endl; else { while(atual!=NULL) { if(atual->codigoVenda==codigoVenda) { cout<<atual->precoTotal; break; } atual = atual->proxi; } } } double lista_itens_vendas::devolveCustodaVenda(unsigned int codigoVenda) { no_itens_vendas *atual=cabecaIV; double p=0; if(cabecaIV==NULL) cout << "Nao existe" << endl; else { while(atual!=NULL) { if(atual->codigoVendaI==codigoVenda) { p=p+atual->custoTotal; } atual = atual->proxim; } return p; } } unsigned int lista_itens_vendas::contaItensVenda(unsigned int codigoVenda) { no_itens_vendas *atual=cabecaIV; unsigned int p=0; if(cabecaIV==NULL) cout << "Nao existe" << endl; else { while(atual!=NULL) { if(atual->codigoVendaI==codigoVenda) { p=p+1; } atual = atual->proxim; } return p; } } void lista_itens_vendas::novoItemVenda(unsigned int codigoProduto, unsigned int quantidade, unsigned int codigoVendaI) { no_itens_vendas *novo=new no_itens_vendas; no_itens_vendas *atual; lista_produto aux; atual->codigoProduto=codigoProduto; atual->quantidade=quantidade; atual->codigoVendaI=codigoVendaI; double preco=aux.devolvePreco(codigoProduto); atual->custoTotal=preco*quantidade; novo->proxim=NULL; if(cabecaIV==NULL) { cabecaIV=novo; }else { atual=cabecaIV; while(atual->proxim!=NULL) atual=atual->proxim; atual->proxim=novo; } }

Compiling Program...

Command line arguments:
Standard Input: Interactive Console Text

                

                

Program is not being debugged. Click "Debug" button to start program in debug mode.

#FunctionFile:Line
VariableValue
RegisterValue
ExpressionValue