Foros del Web » Programación para mayores de 30 ;) » C/C++ »

problema en programa con struct -_-

Estas en el tema de problema en programa con struct -_- en el foro de C/C++ en Foros del Web. hi gente el problema es que cuando hago una venta me resta el stock equivocado yo pongo 1 cod y me resta el stock del ...
  #1 (permalink)  
Antiguo 14/09/2008, 14:05
 
Fecha de Ingreso: mayo-2007
Ubicación: Buenos aires
Mensajes: 19
Antigüedad: 16 años, 11 meses
Puntos: 0
problema en programa con struct -_-

hi gente el problema es que cuando hago una venta me resta el stock equivocado yo pongo 1 cod y me resta el stock del otro -_- pero a simple viste no le encuentro el error..
Código:
#include <iostream>
#include <conio.c>

using namespace std;
struct tart
{
  char cad[5];
  char desc[30];
  float pu;
  int stock;
};

void cg(tart *);
void m(tart *);
int b(tart *,char *,int);
void v(tart *);
int main (int argc, char* argv[])
{
  char op;
  tart va[2];
  do
  {
  clrscr();
    cout<<"1-carga art"<<endl;
    cout<<"2-mostar art"<<endl;
    cout<<"3-ventas"<<endl;
    cout<<"4-salir"<<endl;
    op=getch();
    switch(op)
      {
        case '1':
          cg(va);
          break;
        case '2':
          m(va);
          break;
        case '3':
          v(va);
          break;
        case '4':
        op='n';
        break;
      }
    }while(op!='n');

  return 0;
}
void cg(tart *pv)
{
  for(int i=0; i<2; i++)
  {
  cout<<"cod"<<endl;
  fflush(stdin);
  cin.getline(pv[i].cad,5);
  cout<<"desc"<<endl;
  cin.getline(pv[i].desc,5);
  fflush(stdin);
  cout<<"pu"<<endl;
  cin>>pv[i].pu;
  cout<<"stock"<<endl;
  cin>>pv[i].stock;
  }
}
void v(tart *pv)
{
  char c[5];
  int cant,pos;
  fflush(stdin);
  cout<<"ingr cod art"<<endl;
  cin.getline(c,5);
  cout<<"ingr cant"<<endl;
  cin>>cant;
  pos=b(pv,c,cant);

  cout<<"importe de la venta es "<<(pv[pos].pu*cant);
  getch();

}
int b(tart *pv,char *c,int cant)
{
  for(int i=0; i<2; i++)
  {
    if(!(strcmp(c,pv[i].cad)==0))
    {
      pv[i].stock-=cant;// error resta stock equivocado
      cout<<"se encontro"<<endl;
    return i;
    }

  }
  return 0;
}
void m(tart *pv)
{
    for(int i=0; i<2; i++)
  {
  cout<<"cod"<<pv[i].cad<<endl;
  cout<<"desc"<<pv[i].desc<<endl;
  cout<<"pu"<<pv[i].pu<<endl;
  cout<<"stock"<<pv[i].stock<<endl;
  }
  getch();
}
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:41.