#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct pintura{
int codigo;
char pintura[20];
int precio;
int stock;
} TPintura, *PPintura;
typedef struct bodega{
PPintura Arreglo;
int tope;
int max;
}TBodega, *PBodega;
PPintura crearPintura (int codigo, char pintura[20], int precio, int stock)
{
PPintura c;
c=(PPintura) malloc (sizeof(TPintura));
c->codigo=codigo;
strcpy(c->pintura,pintura);
c->precio=precio;
c->stock=stock;
return c;
}
void liberarPintura(PPintura c)
{
free(c);
}
PBodega crearBodegaVacio(int n)
{
PBodega A;
A=(PBodega)malloc(sizeof(TBodega));
A->Arreglo=(PPintura)malloc(sizeof(TPintura)*n);
A->tope=-1;
A->max=n-1;
return A;
}
void liberarBodega(PBodega A)
{
free(A->Arreglo);
free(A);
return;
}
int buscarPintura(PBodega A, int codigo)
{
int pos =-1;
int i;
for(i=0;i<=A->tope;i++)
if(A->Arreglo[i].codigo==codigo)pos=i;
return pos;
}
PBodega insertarPintura (PBodega A, PPintura c)//(ingreso de inventario)
{
int pos;
int i;
if(A->tope==A->max)return A;
pos=buscarPintura(A,c->codigo);
if(pos==-1){
A->tope++;
A->Arreglo[A->tope]=*c;
}
free(c);
return A;
}
PBodega recepcionarMercaderia(PBodega A, PPintura c){
int pos;
int i;
if(A->tope==A->max)return A;
pos = buscarPintura(A,c->codigo);
if(pos==-1){
A->tope++;
A->Arreglo[A->tope]=*c;
}else if(pos!=-1){
A->Arreglo[pos].stock=A->Arreglo[pos].stock+c->stock;
}
free(c);
return A;
}
PPintura consultaPintura(int codigo,PBodega A)
{
int pos=-1;
PPintura c;
pos=buscarPintura(A,codigo);
*c=A->Arreglo[pos];
}
PBodega eliminarPintura(PBodega A, int pos) //dar de baja mercaderia
{
int i;
if(A->tope<pos)return A;
if(A->tope==pos)
{
A->tope--;
return A;
}
for(i=pos;i<A->tope;i++)
{
A->Arreglo[i]=A->Arreglo[i+1];
}
A->tope--;
return A;
}
int contarBodega(PBodega A)
{
return (A->tope+1);
}
void listaDePrecios(PBodega A){
int i;
printf("Lista de precios\n");
for (i=0;i<=A->tope;i++){
printf("pintura: %s precio: %d\n",A->Arreglo[i].pintura, A->Arreglo[i].precio);
}
}
void consultarPintura(int codigo, PBodega A){
TPintura c;
int pos;
pos=buscarPintura(A,codigo);
c=A->Arreglo[pos];
printf("Los datos de la pintura son:\n");
printf("codigo: %d\n",c.codigo);
printf("color: %s\n",c.pintura);
printf("precio: %d\n",c.precio);
printf("stock: %d\n",c.stock);
}
void entregarMercaderia(int n, int codigo, PBodega A){
int pos;
pos=buscarPintura(A,codigo);
if(A->Arreglo[pos].stock<n)
{
printf("No hay suficiente stock de pintura: %s\n",A->Arreglo[pos].pintura);
}else A->Arreglo[pos].stock=A->Arreglo[pos].stock-n;
return;
}
void dardebajaMercaderia(int codigo, PBodega A){
A->Arreglo[buscarPintura(A,codigo)].stock=0;
return;
}
void imprimirPintura(PPintura c)
{
printf("...................\n");
printf("Codigo:%i \n",c->codigo);
printf("Color:%s \n",c->pintura);
printf("Precio:%i \n",c->precio);
printf("\n");
}
void imprimirBodega(PBodega A)
{
int i;
for(i=0;i<=contarBodega(A)-1;i++)
{
printf("Codigo:%d \n",A->Arreglo[i].codigo);
printf("pintura:%d \n",A->Arreglo[i].pintura);
printf("Precio:%d \n",A->Arreglo[i].precio);
}
}
int main(int argc, char *argv[])
{
PBodega A,B;
PPintura p;
char opcionBodega;
A=crearBodegaVacio(10);
B=crearBodegaVacio(10);
p=crearPintura(1,"blanco", 20000, 10);
int opcion =0;
while (opcion>=0 && opcion<=6)
{
printf("MENU CONTROL BODEGA\n");
printf("_ _ _ _ _ _ _ _ _ _ _ _ _ _ \n");
printf("_ _ _ _ _ _ _ _ _ _ _ _ _ _ \n");
printf("1.- Recepcion Mercaderia\n");
printf("2.- Consultar por una pintura\n");
printf("3.- Lista de Precios\n");
printf("4.- Entregar Mercaderia\n");
printf("5.- Dar de baja mercaderia\n");
printf("0.- Finalizar\n");
scanf("%i",&opcion);
printf("\n\n");
switch(opcion)
{
case 1:
printf("ingrese los datos de la pintura, Codigo\n");
scanf("%i",&p.codigo);
printf("ingrese color\n");
scanf("%c",&p.pintura);
printf("ingrese precio\n");
scanf("%i",&p.precio);
printf("ingrese stock\n");
scanf("%i",&p.stock);
printf("ingrese en que bodega desea recepcionar la mercaderia A o B\n");
scanf("%c",&opcionBodega);
if (opcionBodega==A)
recepcionarMercaderia(A, p);
if (opccionBodega==B)
recepcionarMercaderia(B, p);
break;
case 2:
consultarPintura(01, A);
break;
case 3:
listaDePrecios(A);
break;
case 4:
entregarMercaderia(1, 01, A);
break;
case 5:
dardebajaMercaderia(01, A);
break;
case 0:
break;
default: printf("opcion no valida");
}
}
system("pause");
}
Be the first to comment
You can use [html][/html], [css][/css], [php][/php] and more to embed the code. Urls are automatically hyperlinked. Line breaks and paragraphs are automatically generated.