miren este es el codigo lo q no logro es q a la hora d imprimir los productos no salen todos nama sale el ultimo q ingrese segun yo es en ciclo for #include <stdio.h> #include <conio.h> #include <stdlib.h> #include <string.h> struct nodo { char nome[30]; char empleado[30]; char empresa[30]; char prov[30]; char empprov[30]; char rfcpr[20]; char rfc[20]; char produ[30]; char dian[20]; int preci; long int clave; int prod; long int debo; int long inven; struct nodo *siguiente; };
typedef struct nodo NODO; typedef NODO*NODOSIG;
void altemple(NODOSIG*,char[30],long int); void mostrar_alta(NODOSIG*); void empresa(NODOSIG*,char[30],int); void mostrar_empresa(NODOSIG*); void factura(NODOSIG*,char[30],char[20],char[20]); void mostrar_factura(NODOSIG*); void proveedor(NODOSIG*,char[30],char[30],char[20]); void mostrar_provedor(NODOSIG*); void producto(NODOSIG*,char[30],int,int,int); void mostrar_producto(NODOSIG*,int); void invetario(NODOSIG*); void devol(NODOSIG*);
int main () { char nom[30],nomemp[30],RFC[20],dia[20]; char nompr[30],emppr[30],RFCp[20],nomprd[30]; long int clav,clav2; int op,arti,i,np,precio; NODOSIG cola=NULL; system("cls"); printf("\n\t introduzca el nombre de la empresa: "); _flushall(); gets(nomemp); printf("\n\t introduzca el rfc de la empresa: "); _flushall(); gets(RFC); printf("\n\t introduzca el dia: "); _flushall(); gets(dia); system("cls"); factura(&cola,nomemp,RFC,dia); mostrar_factura(&cola); getch (); do { system("cls"); printf("\n\t eliga una opccion del menu"); printf("\n\t\t 1.-proveedor\n\t\t 2.-empleado\n\t\t 3.-inventario\n\t\t 4.-devoluciones"); printf("\n\t que opcion desea:"); scanf("%d",&op); switch(op) { case 1: system("cls"); _flushall(); printf("\n\t proveedor"); printf("\n\t nombre del proveedor: "); _flushall(); gets(nompr); printf("\n\t nombre de la empresa del proveedor: "); _flushall(); gets(emppr); printf("\n\t rfc de la empresa del proveedor: "); _flushall(); gets(RFCp); proveedor(&cola,nompr,emppr,RFCp); mostrar_provedor(&cola); printf("\n\t cuantos atriculos se van a registrar: "); scanf("%d",&arti); for(i=0;i<arti;i++) { system("cls"); printf("\n\t nombre del producto %d: ",i+1); _flushall(); gets(nomprd); printf("\n\t cantidad de producto %d: ",i+1); scanf("%d",&np); printf("\n\t precio del producto %d: ",i+1); scanf("%d",&precio); producto(&cola,nomprd,np,precio,arti); } mostrar_producto(&cola,arti); getch(); break; case 2: system("cls"); printf("\n introduzca su nombre: "); _flushall(); gets(nom); printf("\n introduzca una clave: "); scanf("\n%ld",&clav); altemple(&cola, nom , clav); mostrar_alta(&cola); getch (); break; case 3: printf("\n\t para acceder al inventario necesita estar dado de alta"); printf("\n\t introduzca su clave: "); scanf("%ld",clav2); if (clav == clav2) { mostrar_producto(&cola,arti); getch (); } else { printf("\n\t clave incorrecta presione cualquier tecla para volver al menu de inicio"); getch (); } break; } }while (op != 4); getch (); return 0; }
void altemple(NODOSIG*cola,char nom[30], long int clav) { NODOSIG nuevo,actual,previo; actual=*cola; nuevo = new(nodo); if (nuevo != NULL) { strcpy(nuevo->nome,nom); nuevo->clave = clav; nuevo->siguiente = NULL; nuevo -> siguiente = *cola; *cola = nuevo; } }
void producto(NODOSIG*cola,char nomprd[30],int np,int precio,int arti) { NODOSIG nuevo,actual,previo; actual=*cola; nuevo = new(nodo); if (nuevo != NULL) { strcpy(nuevo->produ,nomprd); nuevo->prod = np; nuevo->preci = precio; nuevo->siguiente = NULL; nuevo -> siguiente = *cola; *cola = nuevo; } }
void proveedor(NODOSIG*cola,char nompr[50],char emppr[50],char RFCp[50]) { NODOSIG nuevo,actual,previo; actual=*cola; nuevo = new(nodo); if (nuevo != NULL) { strcpy(nuevo->prov,nompr); strcpy(nuevo->empprov,emppr); strcpy(nuevo->rfcpr,RFCp); nuevo->siguiente = NULL; nuevo -> siguiente = *cola; *cola = nuevo; } }
void factura(NODOSIG*cola,char nomemp[30],char RFC[30],char dia[20]) { NODOSIG nuevo,actual,previo; actual=*cola; nuevo = new(nodo); if (nuevo != NULL) { strcpy(nuevo->empresa,nomemp); strcpy(nuevo->dian,dia); strcpy(nuevo->rfc,RFC); nuevo->siguiente = NULL; nuevo -> siguiente = *cola; *cola = nuevo; } }
void mostrar_alta(NODOSIG* cola) { NODOSIG actual=*cola; printf("\n-nombre: %s\n clave: %ld",actual->nome,actual->clave); }
void mostrar_provedor(NODOSIG* cola) { NODOSIG actual=*cola; printf("\n\tnombre del proveedor: %s",actual->prov); printf("\n\t empresa del proveedor: %s",actual->empprov); printf("\n\t RFC del proveedor: %s",actual->rfcpr); }
void mostrar_producto(NODOSIG* cola,int arti) { int i; for(i=0;i<arti;i++) { NODOSIG actual=*cola; printf("\n\t nombre del producto: %s\n\t cantidad del producto: %d\n\t precio del producto: %d", actual->produ,actual->prod,actual->preci); } }
void mostrar_factura(NODOSIG* cola) { NODOSIG actual=*cola; printf("\n\t dia: %s",actual->dian); printf("\n\t nombre de la empresa: %s",actual->empresa); printf("\n\t RFC: %s",actual->rfc); }
|