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
#include<stdio.h> #include<conio.h> #include<stdlib.h> #include<iostream.h> //Funciones int Menu(); int Valide(int); void Crear(); void Suprimir(int); void mostrar(); void Organizar(); struct Lista { float Codigo; char Nombre[50]; int Articulos; int Valoru; Lista *sig; }; Lista *Nodo,*N; int main(){ int cancel; N=new Lista; N->sig=NULL; do{ cancel=Menu(); }while(cancel!=4); } int Menu(){ int Cod,Opc=0; char Nom[50]; do{ cout<<"\t\t\t\t..:::Menu:::..\n\n"; cout<<"1. Crear Empleado\n"; cout<<"2. Retirar Empleado\n"; cout<<"3. Mostrar\n"; cout<<"4. Finalizar\n"; cout<<"\n\nDigite el numero de item a escoger: ";cin>>Opc; }while(Opc<0 || Opc>4); switch(Opc){ case 1: Crear();break; case 2: if(N->sig == NULL){ cout<<"\nLA LISTA NO TIENE REGISTROS"; break; } cout<<"Digite el codigo del registro a eliminar: "; cin>>Cod; Suprimir(Cod); break; case 3: if(N->sig == NULL){ cout<<"\nLA LISTA NO TIENE REGISTROS"; break; } mostrar(); break; } return Opc; } void Crear(){ int Cod; if(Valide(Cod)==0){ Nodo=new Lista; Nodo->Codigo=Cod; cout<<"\nNumero de articulos vendidos: ";cin>>Nodo->Articulos; cout<<"\nValor Unitario de los Articulos: ";cin>>Nodo->Valoru; Nodo->sig=N->sig;//***** N->sig=Nodo;//**** }else{ cout<<"Ya existe un usuario registrado con este codigo\n"; } } int Valide(int Cod) //Esta función busca la cedula que se recibe como { //parametro, retorna uno si la encuentra, de lo Lista *aux; //contrario retornará cero. aux = N->sig; while(aux!=NULL) { if(aux->Codigo == Cod) return 1; aux = aux->sig; } return 0; } void Suprimir(int c) { Lista *aux, *a; aux = N->sig; a = N; while(aux != NULL) { if(c == aux->Codigo) { a->sig = aux->sig;//ESTA LINEA MODIFICA EL ENLACE PARA DEJAR FUERA EL NODO A ELIMINAR. cout<<"\n\nSe eliminó el registro de "<<aux->Nombre; delete aux;//ESTA LINEA LIBERA DE LA MEMORIA EL ESPACIO QUE OCUPA EL NODO ELIMINADO. return; } a = aux; aux = aux->sig; } cout<<"\n\nNo se encuentra el registro"; } void mostrar() { Lista *aux; aux = N->sig; Organizar(); int x; float comision; int c=0; int sc=0; cout<<"Codigo"; cout<<"\t\tNombre"; cout<<"\t\tValor x Ventas"; cout<<"\t\tComision"; while(aux != NULL) { x=aux->Articulos*aux->Valoru; if(x>1000000){ comision=(x*.3); c=c+1; }else { comision=0; sc=sc+1; } cout<<"\n"<<aux->Codigo; cout<<"\t\t"<<aux->Nombre; cout<<"\t\t"<<x; cout<<"\t\t"<<comision; aux = aux->sig; } cout<<"\nNumero de empleados con comision:"<<c; cout<<"\nNumero de empleados sin comision:"<<sc; } void Organizar() { Lista *a, *b, *c; for(a=N;a!=NULL;a=a->sig){ for(b=N;b!=NULL;b=b->sig){ if(b->Codigo > a->Codigo){ c.Codigo=a->Codigo; c.Articulos=a->Articulos; c.Valoru=a->Valoru; a->Codigo=b->Codigo; a->Articulos=b->Articulos; a->Valoru=b->Valoru; b->Codigo=c.Codigo; b->Articulos=c.Articulos; b->Valoru=c.Valoru; } } } }