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#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;
cout
<<"Codigo del empleado: ";cin
>>Cod
;fflush(stdin
); if(Valide(Cod)==0){
Nodo=new Lista;
Nodo->Codigo=Cod;
cout
<<"\n Primer nombre y apellido del empleado: ";gets(Nodo
->Nombre
); 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;
}
}
}
}