help

#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.