#include <iostream>
#include <cstdlib>
using namespace std;
int AnhiadirArticulos();
int Transacciones( int );
int VerArticulos( const int art, int codigo[], int cantidad[] );
/* permite al usuario seleccionar una opcion del programa */
int menu()
{
int opcion, art, codigo[0], cantidad[0];
system("cls");
cout << endl << endl;
cout << "MARQUE << 1 >> PARA VER NUESTROS ARTICULOS" << endl;
cout << "MARQUE << 2 >> PARA HACER TRANSACCIONES" << endl;
cout << "MARQUE << 3 >> PARA SALIR DEL PROGRAMA" << endl;
cout << "MARQUE UNA OPCION PARA CONTINUAR ";
cin >> opcion;
system("cls");
switch ( opcion )
{
case 1:
/* me debe mostrar la lista de articulos registrados en el vector */
VerArticulos( art, codigo, &cantidad[0] );
break;
case 2:
/* aqui estoy llamando la funcion que sumara o restara del vector segun sea el caso */
Transacciones( art );
break;
case 3:
return 0;
break;
default:
cout << "OPCION INVALIDA, INTENTE DE NUEVO";
menu();
}
return 0;
}
int AnhiadirArticulos()
/* esta funcion es la primera que se ejecuta, pues de no hacerlo asi arrojara un error porque si el usuario selecciona verarticulos()
este estara vacio al inicio del porgrama, su funcion es llenar llenar un vector con una cantidad 'x' de articulos para luego poder proceder con la otra parte del programa*/
{
int art, tran, op, cod;
/* esto la verdad me recomendaron hacerlo pero aun no me queda claro cual es la funcion */
art = tran = op = cod = 0;
system("cls");
cout << endl << endl;
cout<<"CON CUANTOS ARTICULOS INICIA EL ALMACEN: ";
cin>>art;
int codigo[art];
int cantidad[art];
/* aqui ya corregi el problema que la verdad no me habia percatado de el.
este ciclo lo llena los vector para luego poder mostrarlo si el usario lo requiere */
for ( int i=0; i<art; i++ )
{
system("cls");
cout << endl << endl;
cout << "INGRESE EL ARTICULO " << i+1 << endl;
cout << "CODIGO ";
cin >> codigo[i];
cout << "CANTIDAD ";
cin >> cantidad[i];
}
/* aqui estoy pasando a la funcion verArticulos() el contenido que acabo de llenar,
cuando ejecuto el programa, desde aqui, me muestra la lista de articulos y codigos
sin problema alguno, el problema esta cuando llamo a esta misma funcion desde el menu */
VerArticulos( art, codigo, &cantidad[0] );
return 0;
}
/* esta es la funcion que me muestra los articulos, pero como les dijo, si la invoco desde el menu me arroja
varios errores en el programa, me empieza a generar "numeros aleatorios" y finaliza con ceros "0" y luego de eso se detiene el programa*/
int VerArticulos( int art, int codigo[], int cantidad[] )
{
system("cls");
cout << endl << endl;
cout << "CODIGO\t\tCANTIDAD" << endl << endl;
for ( int i=0; i<art; i++ )
{
cout << codigo[i] << "\t\t" << cantidad[i] << endl;
}
cout << endl << endl;
cout << "PRESIONE UNA TECLA PARA IR AL MENU";
cin.get();
cin.get();
menu();
return 0;
}
int Transacciones( int art )
{
int tran, op, cod;
int cantrecibida, cantvendida;
int codigo[0], cantidad[0];
cout << endl;
cout<<"TRANSSACCIONES POR DIA ";
cin>>tran;
for( int l=0; l<tran; l++)
{
system("cls");
cout<<" MARQUE << 1 >> SI ES PROVEERDOR"<<endl;
cout<<" MARQUE << 2 >> SI ES UN CLIENTE"<<endl;
cout<<" MARQUE UNA OPCION PARA "<<endl;
cin>>op;
if( op == 1 )
{
cout<<"INGRESE CODIGO DEL ARTICULO "<<endl;
cin>>cod;
for ( int j=0; j<art; j++ )
{
/* en esta parte el programa tambien me arroja un error, explico, si ingreso en el CIN anterior un 1
(codigo previamente ingresado en la funcion anhiadirArticulos() ) este for se lanza para el ELSE,
diciendo que el codigo ingresado no es correcto, porque? si el codigo ingresado realmente si es correcto?*/
if ( cod == codigo[j] )
{
cout << "CUANTOS ARTICULOS INGRESARAN ";
cin >> cantrecibida;
cantidad[j] = cantidad[j] + cantrecibida;
cout << "MUCHAS GRACIAS, TRANSACCION EXITOSA";
cout << "EXISTEN " << cantidad[j] << " UNIDADES DEL ARTICULO" << endl << endl;
}
else
{
cout << "EL CODIGO INGRESADO NO ES CORRECTO" << endl;
cout << "PRESIONE UNA TECLA PARA IR AL MENU ";
cin.get();
cin.get();
system("cls");
menu();
}
}
}
else if ( op == 2 )
{
cout<<"INGRESE CODIGO DEL ARTICULO "<<endl;
cin>>cod;
for ( int j=0; j<art; j++ )
{
/* en esta parte el programa tambien me arroja un error, el mismo de hace un momento*/
if ( cod == codigo[j] )
{
cout << "ARTICULOS VENDIDOS ";
cin >> cantvendida;
cantidad[j] = cantidad[j] - cantvendida;
cout << "MUCHAS GRACIAS, TRANSACCION EXITOSA";
cout << "EXISTEN " << cantidad[j] << " UNIDADES DEL ARTICULO" << endl << endl;
}
else
{
cout << "EL CODIGO INGRESADO NO ES CORRECTO" << endl;
cout << "PRESIONE UNA TECLA PARA IR AL MENU ";
cin.get();
cin.get();
system("cls");
menu();
}
}
}
else
{
cout << "DIGITO UN DATO INVALIDO, POR FAVOR" << endl;
cout << "PRESIONE UNA TECLA PARA CONTINUAR ";
cin.get();
cin.get();
int main();
}
}
return art;
}
int main()
{
AnhiadirArticulos();
menu();
return 0;
}