Inventario en C

Si eres principiante y tienes alguna consulta entra en este foro.
Responder
Mensaje
Autor
Warhaiser
Mensajes: 1
Registrado: 23/10/2013 2:03 pm
Ubicación: Nicaragua

Inventario en C

#1 Mensaje por Warhaiser » 23/10/2013 2:05 pm

Tengo cierto problemilla con mi trabajo de la universidad, cuando quiero que me muestre el inventario no se refleja que puedo hacer

#include <conio.h>
#include <stdio.h>
#include<stdlib.h>
#include<string.h>
#include<ctype.h>

#define Max_Carac 12
#define Falso 1
#define Verdadero 0
#define Arriba 72
#define Abajo 80
#define Izquierda 75
#define Derecha 77
#define Entrar 13
#define Escape 27

unsigned int x=2;
unsigned int y=0;
int i;
int j;
int k;
unsigned int Posicion_Cursor;
char Tecla;
char Nombre2[Max_Carac];
float Precio_Venta2 = 0, Precio_Compra2 = 0;
int Articulos_Locales=0;
int Eliminar_Registro = 0;
int Contador_Articulos=0;
int Cantidad_Producto;
int Encontrar_Articulo = Falso;
float Total = 0;

struct Articulos
{
char Nombre[Max_Carac];
float Precio_Compra;
float Precio_Venta;
int Cantidad;
float Gastos;
}Art[100], *Puntero_Articulos= &Art[0];

int Marco(void);
void Mostrar_Titulo(void);
void Iniciar_Elementos_Estructura(struct Articulos *Puntero_Articulos);
int Obtener_Num_Elementos (struct Articulos *Puntero_Articulos);
int Esperar_Opcion (void);
int Nuevo_Producto ( struct Articulos *Puntero_Articulos );
int Eliminar_Producto (struct Articulos *Puntero_Articulos);
int Comprar_Producto (struct Articulos *Puntero_Articulos);
int Vender_Producto (struct Articulos *Puntero_Articulos);
int Inventario (struct Articulos *Puntero_Articulos);


int main(void)
{
system("CLS");

Iniciar_Elementos_Estructura(Puntero_Articulos);
for(;;)
{
switch (Esperar_Opcion())
{
case 1:
Nuevo_Producto (Puntero_Articulos);
break;

case 2:
Eliminar_Producto (Puntero_Articulos);
break;

case 3:
Comprar_Producto (Puntero_Articulos);
break;

case 4:
Vender_Producto (Puntero_Articulos);
break;

case 5:
Inventario (Puntero_Articulos);
break;

case 6:
return 0;


}
}


}

void Mostrar_Titulo(void)
{
char Linea1[]={" |---------------------------------------------------------------------------|"};
char Linea2[]={" | Cafetin 'El Gueguense' |"};
char Linea3[]={" | |"};
char Linea4[]={" | Sistema de Inventario |"};
char Linea5[]={" |---------------------------------------------------------------------------|"};

textcolor(14);

gotoxy(x,y+2);
for(i=0;i<strlen(Linea1);i++)
{
cprintf("%c",Linea1);
}

gotoxy(x,y+3);
for(i=0;i<strlen(Linea2);i++)
{
cprintf("%c",Linea2);
}

gotoxy(x,y+4);
for(i=0;i<strlen(Linea3);i++)
{
cprintf("%c",Linea3);
}

gotoxy(x,y+5);
for(i=0;i<strlen(Linea4);i++)
{
cprintf("%c",Linea4);
}

gotoxy(x,y+6);
for(i=0;i<strlen(Linea5);i++)
{
cprintf("%c",Linea5);
}

}

int Marco(void)
{
int a=0,b=0;

system("CLS");
Mostrar_Titulo();


for (a=0;a<=38;a++)
{

textcolor(9);
gotoxy(3+b,1); cprintf("\31");
gotoxy(3+b,25); cprintf("\30");
b+=2;


if ((a>=0) && (a<=22))
{
textcolor(4);
gotoxy(1,2+a); cprintf("\32");

gotoxy(80,2+a); cprintf("\33");
}
}

return 0;
}

void Iniciar_Elementos_Estructura(struct Articulos *Puntero_Articulos)
{
for (j = 0 ; j < 100; j++)
{
for (i = 0 ; i<Max_Carac ; i++)
{
Puntero_Articulos[j].Nombre = Falso;
}
Puntero_Articulos[j].Cantidad = 0;
Puntero_Articulos[j].Precio_Compra = 0;
Puntero_Articulos[j].Precio_Venta= 0;
Puntero_Articulos[j].Gastos = 0;
}
}

int Obtener_Num_Elementos (struct Articulos *Puntero_Articulos)
{
int Numero_Elementos = 0;

for (i = 0; i < 100 ; i++)
{
if (Puntero_Articulos.Nombre == 0)
break;
Numero_Elementos++;
}
return Numero_Elementos;
}

int Esperar_Opcion (void)
{
Posicion_Cursor = 10;

system("CLS");
Marco();
textcolor(2);
gotoxy(30,8);
cputs("Seleccione Su Opcion");

gotoxy(5,10);
cputs("1.-Registrar Un Nuevo Producto");

gotoxy(5,12);
cputs ("2.-Eliminar Producto del Registro");

gotoxy(5,14);
cputs ("3.-Comprar Producto Al Distribuidor");

gotoxy(5,16);
cputs ("4.-Vender Producto");

gotoxy(5,18);
cputs ("5.-Inventario");

gotoxy(5,20);
cputs ("6.-Salir del Programa");

textcolor(4);
gotoxy(7,23);
cputs("USE LAS TECLAS PARA SELECCIONAR UNA OPCION O PRESIONE ESC PARA SALIR");
gotoxy(3,Posicion_Cursor);
/*printf("\16");*/
gotoxy(64,26);

do{
if (kbhit())
{
Tecla=getch();

switch (Tecla)
{
case Arriba:
{
if (Posicion_Cursor > 10) Posicion_Cursor -=2;
}
break;

case Abajo:
{
if (Posicion_Cursor <20) Posicion_Cursor+= 2;
}
break;

case Entrar:
{
switch (Posicion_Cursor)
{
case 10: return 1;
case 12: return 2;
case 14: return 3;
case 16: return 4;
case 18: return 5;
case 20: return 6;
}
}
break;



}

for (i = 0; i<=12 ; i+=2)
{
gotoxy(3,10+i);
printf("\0");
}

gotoxy(3,Posicion_Cursor);
/*printf("\16");*/
gotoxy(64,26);

}
}while (Tecla!=27);

return 6;
}

int Nuevo_Producto ( struct Articulos *Puntero_Articulos )
{

Posicion_Cursor = 13;

system("cls");
Marco();
gotoxy(32,9);
textcolor(4);
cprintf( ">>NUEVO PRODUCTO<<");
textcolor(3);
gotoxy(5,13);
cprintf( "Nombre :");
gotoxy(5,15);
cprintf( "P_Compra :" );
gotoxy(5,17);
cprintf( "P_Venta :");
gotoxy(5,19);
textcolor(13);
cprintf( "Guardar");
gotoxy(5,21);
cprintf("Regresar");
textcolor(2);
gotoxy(15,23);
cprintf("USE LAS DIRECCIONALES PARA SELECCIONAR UNA OPCION");

gotoxy(22,Posicion_Cursor);

do{
if (kbhit())
{
Tecla = getch();

switch (Tecla)
{
case Arriba:
{
if (Posicion_Cursor > 13) Posicion_Cursor-= 2;

}
break;

case Abajo:
{
if (Posicion_Cursor < 21) Posicion_Cursor +=2;
}
break;

case Entrar:
{
switch (Posicion_Cursor)
{

case 13:
gotoxy(20,Posicion_Cursor);

gets(Nombre2);
for (i=0; i<Max_Carac ; i++)
{
Nombre2 = toupper(Nombre2);
if (Nombre2[i] == 0) break;
}
break;


case 15:
gotoxy(20,Posicion_Cursor);
scanf("%f",&Precio_Compra2);
break;


case 17:
gotoxy(20,Posicion_Cursor);
scanf("%f",&Precio_Venta2);
break;


case 19:
if (Precio_Compra2 == 0 || Precio_Venta2 == 0 || Nombre2[0] == 0)
{
gotoxy(23,22);
textcolor(4);
cprintf( "ERROR: INGRESE TODOS LOS VALORES ");

}
else
{
Articulos_Locales = Obtener_Num_Elementos(Puntero_Articulos);

for (i=0; i<Max_Carac ; i++)
{
Puntero_Articulos[Articulos_Locales].Nombre[i] = Nombre2[i];

if (Nombre2[i] == 0) break;
}
Puntero_Articulos[Articulos_Locales].Precio_Compra = Precio_Compra2;
Puntero_Articulos[Articulos_Locales].Precio_Venta = Precio_Venta2;
Puntero_Articulos[Articulos_Locales].Cantidad = 0;
Puntero_Articulos[Articulos_Locales].Gastos *= Precio_Compra2;

if (Contador_Articulos == Articulos_Locales)
Contador_Articulos++;

return 0;
}

break;


case 21: return 0;
}
}
}
gotoxy(22,Posicion_Cursor);
}
}while (Tecla!=27);

return 0;
}

int Eliminar_Producto (struct Articulos *Puntero_Articulos)
{
Posicion_Cursor = 16;

system("cls");
Marco();
gotoxy(29,9);
textcolor(4);
cprintf (">>ELIMINAR PRODUCTO<<");
gotoxy(2,11);
textcolor(3);
cprintf (" ---------------------------------------------------------------------------");
gotoxy(2,12);
cprintf ("| No.|");
cprintf (" Nombre |");
cprintf (" P_Compra |");
cprintf (" P_Venta |");
cprintf (" Cantidad |");
cprintf (" Gastos |");
gotoxy(2,13);
cprintf (" ---------------------------------------------------------------------------");
gotoxy(2,9);
textcolor(13);
cprintf (" << Regresar ");
textcolor(14);
gotoxy(57,9);
cprintf ("Eliminar Reg.No:") ;

for (j = 0 ; j < Contador_Articulos ; j++)
{
gotoxy(3,14+j);
printf("%d",j+1);
gotoxy(10,14+j);
for (i = 0 ; i<Max_Carac ; i++)
{
printf ("%c",Puntero_Articulos[j].Nombre[i]);
if (Puntero_Articulos[j].Nombre[i]==0)
{
break;
}
}

gotoxy(26,14+j);
printf("%f",Puntero_Articulos[j].Precio_Compra);
gotoxy(40,14+j);
printf("%f",Puntero_Articulos[j].Precio_Venta);
gotoxy(55,14+j);
printf("%d",Puntero_Articulos[j].Cantidad);
gotoxy(70,14+j);
printf("%f",Puntero_Articulos[j].Gastos);
}

gotoxy(Posicion_Cursor,9);

do{
if (kbhit())
{
Tecla = getch();

switch (Tecla)
{
case Izquierda:
{
if (Posicion_Cursor == 75)
Posicion_Cursor =16;
}
break;

case Derecha:
{
if (Posicion_Cursor == 16)
Posicion_Cursor = 75;
}
break;

case Entrar:
{
switch (Posicion_Cursor)
{
case 75:
gotoxy(Posicion_Cursor-1,9);
scanf("%d",&Eliminar_Registro);
if (Eliminar_Registro>Contador_Articulos)
{
gotoxy(23,23);
textcolor(4);
cprintf ("ERROR: NUMERO DE REGISTRO NO VALIDO");
Posicion_Cursor = 16;
}
else
{
for (i=0; i<Max_Carac ; i++)
{
Puntero_Articulos[Eliminar_Registro-1].Nombre[i] = 0;
}
Puntero_Articulos[Eliminar_Registro-1].Precio_Compra = 0;
Puntero_Articulos[Eliminar_Registro-1].Precio_Venta = 0;
Puntero_Articulos[Eliminar_Registro-1].Cantidad = 0;
Puntero_Articulos[Eliminar_Registro-1].Gastos = 0;
gotoxy(19,9);
printf ("Listo.");
Posicion_Cursor = 16;
}
break;

case 16: return 0;
}
}
}
gotoxy(Posicion_Cursor,9);
}
}while (Tecla!=27);

return 0;
}

int Comprar_Producto (struct Articulos *Puntero_Articulos)
{
Posicion_Cursor = 13;

system("cls");
Marco();
gotoxy(28,9);
textcolor(4);
cprintf(">>COMPRAR PRODUCTO<<");
textcolor(3);
gotoxy(5,13);
cprintf ("Nombre :");
gotoxy(5,15);
cprintf ("Cantidad Prod :");
gotoxy(5,17);
textcolor(13);
cprintf ("Guardar");
gotoxy(5,19);
cprintf ("Regresar ");

gotoxy(22,Posicion_Cursor);
do{
if (kbhit())
{
Tecla = getch();

switch (Tecla)
{
case Arriba:
{
if (Posicion_Cursor > 13) Posicion_Cursor -= 2;
}
break;

case Abajo:
{
if (Posicion_Cursor < 19) Posicion_Cursor += 2;
}
break;

case Entrar:
{
switch (Posicion_Cursor)
{
case 13:
gotoxy(17,Posicion_Cursor);

gets(Nombre2);
break;

case 15:
gotoxy(20,Posicion_Cursor);

scanf("%s",&Cantidad_Producto);
break;

case 17:
if (Cantidad_Producto == 0 || Nombre2[0] == 0)
{
gotoxy(23,23);
textcolor(4);
cprintf("ERROR: DEBE INGRESAR TODOS LOS DATOS");

}
else
{

for (j = 0 ; j < Contador_Articulos ; j++)
{
for (i = 0 ; i<Max_Carac ; i++)
{
if (Puntero_Articulos[j].Nombre[i] != toupper(Nombre2[i]) || Puntero_Articulos[j].Nombre[i] == 0)
{
break;
}
}

if (i == strlen(Nombre2))
{
Encontrar_Articulo = Verdadero;
break;
}
}

if (Encontrar_Articulo)
{
Puntero_Articulos[j].Cantidad += Cantidad_Producto;
Puntero_Articulos[j].Gastos= Puntero_Articulos[j].Precio_Compra * Puntero_Articulos[j].Cantidad;
return 0;
}
else
{
gotoxy(23,23);
textcolor(4);
cprintf ("ERROR: ARTICULO NO ENCONTRADO EN INVENTARIO");

}
}
break;

case 19: return 0;
}
}
}
gotoxy(22,Posicion_Cursor);
}
}while (Tecla!=27);
return 0;
}

int Vender_Producto (struct Articulos *Puntero_Articulos)
{
Posicion_Cursor = 13;
Encontrar_Articulo = Falso;

system("cls");
Marco();
gotoxy(29,9);
textcolor(4);
cprintf(">>VENDER PRODUCTO<<");
gotoxy(5,13);
textcolor(3);
cprintf ("Nombre:");
gotoxy(5,15);
cprintf ("Cantidad:");
textcolor(12);
gotoxy(5,17);
cprintf ("Guardar");
gotoxy(5,19);
cprintf ("Regresar");

gotoxy(22,Posicion_Cursor);
do{
if (kbhit())
{
Tecla = getch();

switch (Tecla)
{
case Arriba:
{
if (Posicion_Cursor > 13) Posicion_Cursor -= 2;
}
break;

case Abajo:
{
if (Posicion_Cursor < 19) Posicion_Cursor+= 2;
}
break;

case Entrar:
{
switch (Posicion_Cursor)
{
case 13:
gotoxy(20,Posicion_Cursor);
gets(Nombre2);
break;

case 15:
gotoxy(20,Posicion_Cursor);
scanf("%s",&Cantidad_Producto);
break;

case 17:
if (Cantidad_Producto == 0 || Nombre2[0] == 0)
{
gotoxy(23,23);
textcolor(4);
cprintf ("ERROR: DEBE INGRESAR TODOS LOS VALORES");
}
else
{
for (j = 0 ; j < Contador_Articulos ; j++)
{
for (i = 0 ; i<Max_Carac ; i++)
{
if (Puntero_Articulos[j].Nombre[i] != toupper(Nombre2[i]) || Puntero_Articulos[j].Nombre[i] == 0)
{
break;
}
}

if (i == strlen(Nombre2))
{
Encontrar_Articulo = Verdadero;
break;
}
}

if (Encontrar_Articulo)
{
if (Cantidad_Producto <= Puntero_Articulos[j].Cantidad)
{
Puntero_Articulos[j].Cantidad -= Cantidad_Producto;
Puntero_Articulos[j].Gastos = Puntero_Articulos[j].Precio_Compra * Puntero_Articulos[j].Cantidad;
return 0;
}
else
{
gotoxy(23,23);
textcolor(4);
cprintf ( "ERROR: CANTIDAD MUY ALTA.");
}
}
else
{
gotoxy(23,23);
textcolor(4);
cprintf ("ERROR: ARTICULO NO ENCONTRADO EN INVENTARIO.");
}
}
break;

case 19: return 0;
}
}
}
gotoxy(22,Posicion_Cursor);
}
}while (Tecla!=27);
return 0;
}

int Inventario (struct Articulos *Puntero_Articulos)
{
system("cls");
Marco();
gotoxy(27,9);
textcolor(4);
cprintf (">>INVENTARIO<<");
textcolor(12);
gotoxy(2,11);
cprintf (" ----------------------------------------------------------------------------");
gotoxy(2,12);
cprintf ("| No.|");
cprintf (" Nombre |");
cprintf (" P_Compra |");
cprintf (" P_Venta |");
cprintf (" Cantidad |");
cprintf (" Gastos |");
gotoxy(2,13);
cprintf (" ----------------------------------------------------------------------------");
gotoxy(2,9);
textcolor(9);
cprintf(" << Regresar ");

for (j = 0 ; j < Contador_Articulos ; j++)
{
gotoxy(3,14+j);
textcolor(12);
cprintf("%d",j+1);
gotoxy(10,14+j);
for (i = 0 ; i<Max_Carac ; i++)
{
printf ("%s",Puntero_Articulos[j].Nombre[i]);
if (Puntero_Articulos[j].Nombre[i] == 0)
{
break;
}
}

gotoxy(26,14+j);
printf("%f",Puntero_Articulos[j].Precio_Compra);
gotoxy(40,14+j);
printf("%f",Puntero_Articulos[j].Precio_Venta);
gotoxy(55,14+j);
printf("%d",Puntero_Articulos[j].Cantidad);
gotoxy(70,14+j);
printf("%f",Puntero_Articulos[j].Gastos);
}

gotoxy(2, 15+j);
textcolor(12);
cprintf (" ----------------------------------------------------------------------------");
gotoxy(57, 16+j);
cprintf ("TOTAL : ");
gotoxy(70, 16+j);

for (k = 0; k < Contador_Articulos ; k++)
{
Total += Puntero_Articulos[k]->Gastos;
}
textcolor(12);
cprintf ("%f",Total);

gotoxy(16,9);

do{
if (kbhit())
{
Tecla = getch();

switch (Tecla)
{
case Entrar:
{
return 0;
}
}

}
}while (Tecla!=27);
return 0;
}

polly
Mensajes: 619
Registrado: 19/07/2007 3:42 pm
Ubicación: Valladolid (Spain)
Contactar:

#2 Mensaje por polly » 26/10/2013 3:33 am

Seguramente mucha gente que se pase por aquí no vaya a leerse todo el código y puede que ni siquiera puedan compilarlo (por el uso de conio.h, por ejemplo).

Si quieres que el número de personas que te ayuden aumente, una mejor estrategia que mostrar todo el código, es subir solo la parte que sabes que no funciona.
enrmarc

Responder

¿Quién está conectado?

Usuarios navegando por este Foro: Majestic-12 [Bot] y 9 invitados