elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Entrar al Canal Oficial Telegram de elhacker.net


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  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 1,793 veces)
Amidaken

Desconectado Desconectado

Mensajes: 1


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

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 am por Amidaken » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Google Maps localiza la 'Batcueva'
Noticias
wolfbcn 1 2,012 Último mensaje 25 Octubre 2010, 21:03 pm
por Randomize
Programa que imprime su código
Programación C/C++
N0body 3 2,486 Último mensaje 28 Agosto 2011, 23:49 pm
por madpitbull_99
[Cerrado]Script imprime el código en lugar de procesar un formulario.
PHP
Mitsu 0 1,524 Último mensaje 9 Octubre 2013, 03:59 am
por Mitsu
[Codigo] Interesante codigo imprime numero primo de mayor cifras
Programación C/C++
Miky Gonzalez 8 4,671 Último mensaje 13 Octubre 2013, 23:09 pm
por ivancea96
Ayuda con este código (No se imprime correctamente)
PHP
LaThortilla (Effort) 3 1,717 Último mensaje 30 Septiembre 2015, 17:07 pm
por 0roch1
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines