Ver Mensaje Individual
  #1 (permalink)  
Antiguo 31/05/2010, 12:37
oswy
 
Fecha de Ingreso: mayo-2010
Mensajes: 2
Antigüedad: 14 años, 7 meses
Puntos: 0
No Se Cual Es El Error Ayuda!

NO SE CUAL ES EL ERROR, PORQUE NO ME COMPILA? AYUDA POR FAVOR..
EL COMPILADOR ME DICE QUE LAS VARIABLES DE LA FUNCION ORGANIZAR (AL FINAL DEL PROGRAMA) NO HAN SIDO DECLARADAS :S


Código C++:
Ver original
  1. #include<stdio.h>  
  2. #include<conio.h>
  3. #include<stdlib.h>
  4. #include<iostream.h>
  5.  
  6. //Funciones
  7. int Menu();
  8. int Valide(int);
  9. void Crear();
  10. void Suprimir(int);
  11. void mostrar();
  12. void Organizar();
  13.  
  14. struct Lista
  15. {
  16.        float Codigo;
  17.        char Nombre[50];
  18.        int Articulos;
  19.        int Valoru;
  20.        Lista *sig;
  21. };
  22. Lista *Nodo,*N;
  23. int main(){
  24.     int cancel;
  25.     N=new Lista;
  26.     N->sig=NULL;
  27.     do{
  28.        cancel=Menu();
  29.     }while(cancel!=4);    
  30. }
  31. int Menu(){
  32.     int Cod,Opc=0;
  33.     char Nom[50];
  34.     do{
  35.        system("cls");
  36.        cout<<"\t\t\t\t..:::Menu:::..\n\n";
  37.        cout<<"1. Crear Empleado\n";
  38.        cout<<"2. Retirar Empleado\n";
  39.        cout<<"3. Mostrar\n";
  40.        cout<<"4. Finalizar\n";
  41.        cout<<"\n\nDigite el numero de item a escoger: ";cin>>Opc;
  42.     }while(Opc<0 || Opc>4);  
  43.    
  44.     switch(Opc){
  45.            case 1: Crear();break;
  46.            case 2: if(N->sig == NULL){
  47.                    cout<<"\nLA LISTA NO TIENE REGISTROS";
  48.                    getch();
  49.                    break;
  50.                 }
  51.                 cout<<"Digite el codigo del registro a eliminar: ";
  52.                 cin>>Cod;
  53.                 Suprimir(Cod);
  54.                 break;
  55.            case 3: if(N->sig == NULL){
  56.                    cout<<"\nLA LISTA NO TIENE REGISTROS";
  57.                    getch();
  58.                    break;
  59.                 }
  60.                 mostrar();
  61.                 break;
  62.                }
  63.                 return Opc;  
  64. }
  65. void Crear(){
  66.    int Cod;
  67.    cout<<"Codigo del empleado: ";cin>>Cod;fflush(stdin);
  68.    if(Valide(Cod)==0){
  69.       Nodo=new Lista;
  70.       Nodo->Codigo=Cod;
  71.       cout<<"\n Primer nombre y apellido del empleado: ";gets(Nodo->Nombre);
  72.       cout<<"\nNumero de articulos vendidos: ";cin>>Nodo->Articulos;
  73.       cout<<"\nValor Unitario de los Articulos: ";cin>>Nodo->Valoru;
  74.       Nodo->sig=N->sig;//*****
  75.       N->sig=Nodo;//****
  76.    }else{
  77.         cout<<"Ya existe un usuario registrado con este codigo\n";
  78.         getch();
  79.    }  
  80. }
  81. int Valide(int Cod)             //Esta función busca la cedula que se recibe como
  82. {                             //parametro, retorna uno si la encuentra, de lo
  83.       Lista *aux;             //contrario retornará cero.
  84.       aux = N->sig;
  85.       while(aux!=NULL)
  86.       {
  87.         if(aux->Codigo == Cod)
  88.            return 1;
  89.         aux = aux->sig;  
  90.       }
  91.       return 0;
  92. }
  93. void Suprimir(int c)
  94. {
  95.    Lista *aux, *a;
  96.    aux = N->sig;
  97.    a = N;
  98.    while(aux != NULL)
  99.    {
  100.    
  101. if(c == aux->Codigo)
  102.       {
  103.          a->sig = aux->sig;//ESTA LINEA MODIFICA EL ENLACE PARA DEJAR FUERA EL NODO A ELIMINAR.
  104.          cout<<"\n\nSe eliminó el registro de "<<aux->Nombre;
  105.          delete aux;//ESTA LINEA LIBERA DE LA MEMORIA EL ESPACIO QUE OCUPA EL NODO ELIMINADO.
  106.          getch();
  107.          return;
  108.       }    
  109.       a = aux;
  110.       aux = aux->sig;
  111.    }
  112.       cout<<"\n\nNo se encuentra el registro";
  113.       getch();
  114. }      
  115. void mostrar()
  116. {
  117.      Lista *aux;
  118.      aux = N->sig;
  119.      Organizar();
  120.      int x;
  121.      float comision;
  122.      int c=0;
  123.      int sc=0;    
  124.      cout<<"Codigo"; cout<<"\t\tNombre"; cout<<"\t\tValor x Ventas"; cout<<"\t\tComision";
  125.      while(aux != NULL)
  126.      {
  127.        x=aux->Articulos*aux->Valoru;
  128.        if(x>1000000){
  129.                      comision=(x*.3);
  130.                      c=c+1;
  131.                     }else
  132.                          {
  133.                           comision=0;
  134.                           sc=sc+1;
  135.                          }      
  136.        cout<<"\n"<<aux->Codigo;
  137.        cout<<"\t\t"<<aux->Nombre;    
  138.        cout<<"\t\t"<<x;
  139.        cout<<"\t\t"<<comision;
  140.        aux = aux->sig;  
  141.  
  142.      }
  143.      cout<<"\nNumero de empleados con comision:"<<c;
  144.      cout<<"\nNumero de empleados sin comision:"<<sc;
  145.      getch();
  146. }  
  147. void Organizar()
  148. {
  149. Lista *a, *b, *c;
  150.  
  151. for(a=N;a!=NULL;a=a->sig){
  152.     for(b=N;b!=NULL;b=b->sig){
  153.         if(b->Codigo > a->Codigo){
  154.                      
  155.            strcpy(c.Nombre,a->Nombre);
  156.            c.Codigo=a->Codigo;
  157.            c.Articulos=a->Articulos;
  158.            c.Valoru=a->Valoru;
  159.            
  160.            strcpy(a->Nombre,b->Nombre);
  161.            a->Codigo=b->Codigo;
  162.            a->Articulos=b->Articulos;
  163.            a->Valoru=b->Valoru;
  164.            
  165.            strcpy(b->Nombre,c.Nombre);
  166.            b->Codigo=c.Codigo;
  167.            b->Articulos=c.Articulos;
  168.            b->Valoru=c.Valoru;
  169.            }
  170.            }
  171.            }
  172. }

Última edición por oswy; 31/05/2010 a las 12:53