elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
28 Mayo 2012, 23:25  


Tema destacado: Sigue las noticias más importantes de elhacker.net en ttwitter!

+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse)
| | |-+  ayuda con codigo en localiza imprime y suprime
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: ayuda con codigo en localiza imprime y suprime  (Leído 381 veces)
Amidaken

Desconectado Desconectado

Mensajes: 1


Ver Perfil
ayuda con codigo en localiza imprime y suprime
« en: 30 Abril 2011, 06:59 »

hola quisiera saber si pueden ayudarme en esto, tengo este codigo donde se supone que hago una base de datos de una tienda de telas bueno el problema es que no funcionan algunas funciones, por lo menos no como deberian.

las funciones que estan fallando son: localiza imprime y suprime.

el codigo que tengo es el siguiente:

Código:
/*Listas sin encabezado doblemente Ligada(No circular)*/
/*inventario*/
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
typedef int tipo_elem;

struct tela{
       char nombre[30];
       int disponible;
           }a[30];
/*struct tipo{
       char tela;
       int cantidad,;
       int ult;
           };*/
      
//struct bodega{
  //     struct tipo descripcion;
    //         };
struct nodo{
       tipo_elem elem;
       nodo * sig;
           };
      
typedef nodo* posicion;
typedef int logico;
/*FUNCIONES DE LAS OPERACIONES CON LISTAS*/


posicion E;

void inicializa(nodo **inventario)
     {
     *inventario=NULL;
}

void suprimir(posicion p,posicion *inventario)
 {  
     posicion aux,aux2;

if(p==*inventario){
aux=(*inventario)->sig;
free(*inventario);
*inventario=aux;
                    }
else{
aux=*inventario;
while(aux->sig!=NULL && aux->sig!=p)
aux=aux->sig;
if(aux->sig==p)
{
aux2=p->sig;
free(p);
aux->sig=aux2;
}
else
printf("No se encontro");
   }
 }

logico vacia(posicion inventario)
       {      
       if(inventario==NULL)
 return 1;
       else
 return 0;
       }

posicion localiza(tipo_elem x, posicion inventario)
  {
if(vacia(inventario))
    {
return 0;
    }
else{
while (inventario!=NULL && inventario->elem!=x)
      inventario=inventario->sig;
if (inventario==NULL)
      return NULL;
else
      return inventario;
   }
  }

tipo_elem recupera(posicion p)
 {
 if (p!=NULL)
    return (p->elem);
 else
    return -1;   /*valor invalido*/
      }


/*FUNCION IMPRIME*/
int imprimir(posicion inventario)
     {    
if(vacia(inventario))
printf("Lista Vacia");
else{
while (inventario!=NULL)
        {
  printf("%d",inventario->elem);
  inventario=inventario->sig;
        }
   }
     }
    

/*FUNCION ANULA*/
void anula(posicion *inventario)
     {
posicion aux;

    while (*inventario!=NULL)
{
aux=(*inventario)->sig;
free(*inventario);
*inventario=aux;
   }
     }

void inserta(tipo_elem x, posicion p,posicion *inventario)
     {
   int i,opcion;
   int cont=0,num;
   char t;
   do{
printf("\n 1)licra\n 2)popelina\n 3)algodon\n 4)lino\n 5)tergal\n \t");
scanf("%d",&opcion);
printf("Nombre de la tela\n");
scanf("%s",a[cont].nombre);
printf("\n<----DAME LOS ROLLOS A INCERTAR---->\n");
scanf("%d",&num);
     posicion aux;
     aux=(nodo *) malloc(1*sizeof(nodo));
     aux->elem=x;
       if(p==NULL){
 aux->sig=*inventario;
 *inventario=aux;
             }
else{
aux->sig=p->sig;
p->sig=aux;
   }
/*printf("\n<---Se inserto un elemento en la lista ---->\n");*/
printf("%s\n",a[cont].nombre);
printf("rollos: %d\n ",num);
}while(opcion!=5);
printf("fin de la captura\n\n");
getch();
  }    

void fallasdetela()
    {
      int op,tel,mul,falla;
      float m,nop,tel1,mul1,falla1;
 printf("dame la cantdad de rollos");
      scanf("%d",&op);
      if(op%5==0)
      {
          tel=op/5;
          mul=2*tel;
          falla=mul-tel;
          printf("%d",falla);
      }
        else
        {
          printf("dame los rollos q sobran");
          scanf("%d",&m);
          nop=op-m;
          tel1=nop/5;
          mul1=2*tel1;
          falla1=mul1-tel1;
          printf("%f",falla1);
        }
     }

void telagastada()
    {
         int talla,opcion,num,s,r,t,p;
         float a,b,c,d,e,f,g,h,i,j,k,l,m,n,o;
         inicializa (&E);
printf("\ntipo de ropa\n");
printf("\n1)CH\n 2)M\n 3)G\t\t");
    scanf("%d",&talla);
     if(talla==1)
     {
          printf("\n1)blusa\n 2)vestido\n 3)pantalon\n 4)short\n 5)maya \n6)fin\t\t");
     scanf("%d",&opcion);
     switch(opcion!=6)
          {
        case 1:  printf("cuantas piezas hicistes blusa: ");
            scanf("%d",&s);
            printf("cuantos rollos: ");
            scanf("%d",&p);
                 j=.45*s;
                 l=100*p;
                 a=l-j;
                 printf("%f",a);
                 break;
        case 2:  printf("cuantas piezas hicistes vestido:");
            scanf("%d",&r);
            printf("cuantos rollos");
            scanf("%d",&p);
            g=.45*r;
            l=100*p;
                 i=l-g;
                 printf("%f",i);
                 break;
        case 3:  printf("cuantas piezas hicistes pantalon:");
            scanf("%d",&num);
            printf("cuantos rollos");
            scanf("%d",&p);
                 a=1.15*num;
                 l=100*p;
                 c=l-a;
                 printf("%f",c);
                 break;
        case 4:  printf("cuantas piezas hicistes short:");
            scanf("%d",&n);
            printf("cuantos rollos");
            scanf("%d",&p);
            d=.45*n;
                 l=100*p;                
                 f=l-d;
            printf("%f",f);
                 break;
   case 5:  printf("cuantas piezas hicistes maya:");
                 scanf("%d",&t);
                 printf("cuantos rollos");
            scanf("%d",&p);
            k=.15*t;
                 l=100*p;                
                 o=l-k;
            printf("%f",o);
                 break;
       case 6:   printf("FIN DE LA CAPTURA\n");
                 break;
                /* default:
                 printf("opcion invalida!!!!!\n");
                 opcion=0;*/
                 break;
           }
      }
if(talla==2)
   {
      printf("\n1)blusa\n 2)vestido\n 3)pantalon\n 4)short\n 5)maya\n 6)fin\t\t");
 scanf("%d",&opcion);
      switch(opcion!=6)
      {
        case 1:  printf("cuantas piezas hicistes blusa:");
            scanf("%d",&s);
            printf("cuantos rollos");
            scanf("%d",&p);
                 j=1*s;
                 b=100*p;
                 l=b-j;
                 printf("%f",l);
                 break;
        case 2:  printf("cuantas piezas hicistes vestido:");
            scanf("%d",&r);
            printf("cuantos rollos");
            scanf("%d",&p);
            g=1*r;
            b=100*p;
                 i=b-g;
                 printf("%f",i);
                 break;
        case 3:  printf("cuantas piezas hicistes pantalon:");
            scanf("%d",&num);
            printf("cuantos rollos");
            scanf("%d",&p);
                 a=1.30*num;
                 b=100*p;
                 c=b-a;
                 printf("%f",c);
                 break;
        case 4:  printf("cuantas piezas hicistes short:");
            scanf("%d",&n);
            printf("cuantos rollos");
            scanf("%d",&p);
            d=1*n;
            b=100*p;
                 f=b-d;
            printf("%f",f);
                 break;
   case 5:  printf("cuantas piezas hicistes maya:");
                 scanf("%d",&t);
                 printf("cuantos rollos");
            scanf("%d",&p);
                 l=.30*n;
                 b=100*p;
                 o=b-l;
            printf("%f",o);
                 break;
       case 6:   printf("FIN DE LA CAPTURA\n");
                 break;
                /* default:
                 printf("opcion invalida!!!!!\n");
                 opcion=0;
                 break;*/
       }
   }
else {
      printf("\n1)blusa\n 2)vestido\n 3)pantalon\n 4)short\n 5)maya\n 6)fin\t\t");
 scanf("%d",&opcion);
      switch(opcion)
      {
        case 1:  printf("cuantas piezas hicistes blusa:");
            scanf("%d",&s);
            printf("cuantos rollos");
            scanf("%d",&p);
                 j=1.20*s;
                 b=100*p;
                 l=b-j;
                 printf("%f",l);
                 break;
        case 2:  printf("cuantas piezas hicistes vestido:");
            scanf("%d",&r);
            printf("cuantos rollos");
            scanf("%d",&p);
            g=1.20*r;
            b=100*p;
                 i=b-g;
                 printf("%f",i);
                 break;
        case 3:  printf("cuantas piezas hicistes pantalon:");
            scanf("%d",&num);
            printf("cuantos rollos");
            scanf("%d",&p);
                 a=1.50*num;
                 b=100*p;
                 c=b-a;
                 printf("%f",c);
                 break;
        case 4:  printf("cuantas piezas hicistes short: ");
                 scanf("%d",&r);
            printf("cuantos rollos");
            scanf("%d",&p);
            g=1.20*r;
            b=100*p;
                 i=b-g;
                 printf("%f",i);
            break;
   case 5:  printf("cuantas piezas hicistes maya:");
                 scanf("%d",&r);
            printf("cuantos rollos");
            scanf("%d",&p);
            g=1.20*r;
            b=100*p;
                 i=b-g;
                 printf("%f",i);
                 break;
       case 6:   printf("FIN DE LA CAPTURA\n");
                 break;
                /* default:
                 printf("opcion invalida!!!!!\n");
                 opcion=0;
                 break;*/
       }            
     }
  }

void acomoda()
     {  int op,opc;
     float tel,mul,falla,m;
      printf("dame telas q hay");
      printf("\n1)licra\n 2)popelina\n 3)algodon\n 4)lino\n 5)tergal\n 6)fin\t\t");
      scanf("%d",&opc);
      switch(opc!=6)
      {
        case 1: telagastada();
                break;
        case 2: telagastada();
                break;
        case 3: telagastada();
                break;
        case 4: telagastada();
                break;
        case 5: telagastada();
                break;
        case 6: printf("FIN DE LA CAPTURA\n");
                break;
               /* default:
                printf("opcion invalida!!!!!\n");
                opc=0;
                break;*/
      }
     }

/*void capturar()
 {
   int i,x,opcion;
   int cont=0,num;
   char t;
   do{
printf("\n 1)licra\n 2)popelina\n 3)algodon\n 4)lino\n 5)tergal\n \t");
scanf("%d",&opcion);
printf("Nombre de la tela\n");
scanf("%s",a[cont].nombre);
printf("\n<----DAME LOS ROLLOS A INCERTAR---->\n");
scanf("%s",&num);
inserta(x,NULL,&E);
printf("\n<---Se inserto un elemento en la lista ---->\n");
printf("%s\n",a[cont].nombre);
printf("fin de la captura\n\n");
}while(opcion!=5);
getch();
  }*/


int main (){
    system("cls");
int x,opcion;
posicion pun;
int n, i,opc;
inicializa (&E);
int a[30];

do{
    printf ("...........Menu............\n");
    printf ("1-incerta\n");
    /*printf ("2-capturar\n");*/
    printf ("3-localiza.....\n");
    printf ("4-imprime....\n");
    printf ("5---->acomoda\n");
    printf ("6-Suprime.....\n");
    printf ("7-anula.......\n");
    printf ("8-vasia.......\n");
    printf ("9-Salir.......\n");
    printf ("Elige una opcion:....\n");
    scanf ("%d", &opc);
   switch(opc){
        case 1:
/*printf ("\nDame numero a insertar.....\n");
scanf("%d",& x);*/
inserta(x,NULL,&E);
break;
        /*case 2:
            capturar();
getch();            
break;*/
case 3:
           printf ("\nDame numero a localizar.....\n");
      scanf ("%d",& x);
      pun=localiza(x,E);
      if(pun==NULL)
  printf("Numero no encontrado\n");
      else
  printf("%p\n",pun);
      getch();
      break;
     case 4:
printf("\n<-La lista es:\n");
imprimir(E);
getch();
break;
case 5:
acomoda();
getch();
break;
        case 6:
           printf("\n dame el nombre de la tela:\t");
           scanf("%d",&opcion);
      printf ("\nDame numero a suprimir.....\n");
           scanf ("%d",& x);
      suprimir(localiza(x,E),&E);
      printf("numero suprimido");
      break;
case 7:
anula(&E);
printf("Lista Anulada");
getch();
break;
   case 8:
if(vacia(E))
printf("SI");
else
printf("NO");
getch();
break;
case 9:
             printf("fin");
             break;
     default:
 printf("Opcion No Valida");
   }
} while(opc!=9);
return 0;
}

espero puedan ayudarme por que no encuentro el error en el codigo y gracias de antemano


« Última modificación: 30 Abril 2011, 07:01 por Amidaken » En línea
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
WHAX suprime a Whoppix « 1 2 »
Hacking Wireless
eltitoneo 16 4,290 Último mensaje 8 Agosto 2005, 20:36
por Hwagm
Impresora: Imprime pero no Imprime
Hardware
hernanlp83 8 688 Último mensaje 12 Agosto 2006, 02:58
por kukishin
Localiza a tus hijos con Lok8u
Noticias
wolfbcn 3 510 Último mensaje 4 Octubre 2009, 19:46
por Artikbot
Chatroulette localiza a sus usuarios
Noticias
wolfbcn 0 480 Último mensaje 12 Marzo 2010, 15:53
por wolfbcn
Programa que imprime su código
Programación C/C++
N0body 3 342 Último mensaje 28 Agosto 2011, 23:49
por madpitbull_99
Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines