• Lunes 18 de Noviembre de 2024, 15:57

Autor Tema:  Ayuda Urgente!!!!  (Leído 2672 veces)

kelpo

  • Nuevo Miembro
  • *
  • Mensajes: 7
    • Ver Perfil
Ayuda Urgente!!!!
« en: Domingo 10 de Septiembre de 2006, 04:13 »
0
tengo un error en la sintaxis de este programa....pero por mas que tratao no logro solucionarlo...quien sabe porque ya tengo muy poco tiempo para entregarlo o no se....espero me puedan ayudar por favor!!! se los agradeceria mucho!!! les dejo aqui el codigo fuente:

#include <conio.h>
#include <stdio.h>
#include <iostream.h>
#include <stdlib.h>
#include <fstream.h>
#include <ctype.h>
#include <string.h>

struct estdte /*tu puedes cambiar las declaraciones por la que necesites*/
{
char Ncontrol[15];
char nombre[20];
char apellidos[30];
char carrera[20];
char grupo[5];
char semestre[10];
char edad[10];
struct estdte*siguiente;
struct estdte*anterior;
};

struct estdte*estudiante;
void agregar();
void crear();
void eliminar();
void imprimir();
//_________________________
void main()
{
char opcion='A';
crear();
while(opcion!='S')
{
cout<<""<<endl;
cout<<"QUE DESEA HACER"<<endl;
cout<<""<<endl;
cout<<"A->Agregar Elemetos"<<endl;
cout<<"E->Eliminar"<<endl;
cout<<"I->Imprimir"<<endl;
cout<<"S->Salir"<<endl;
cout<<""<<endl;
cout<<"Elija su opcion...:";
cin>>opcion;
cout<<""<<endl;

opcion=toupper(opcion);/*el toupper Cambia la letra que cacha el teclado a mayuscula. */

switch(opcion)
{
case'A':agregar();break; //aqui llamas cada uno de los voids.....
case'E':eliminar();break;
case'I':imprimir();break;
}
}
}

//_________________________
void agregar()
{
struct estdte*esttemp;
esttemp=new estdte;
if(esttemp!=NULL)
{
cin.ignore();
cout<<"Introduzca el No. de control...:";
cin.getline(esttemp->Ncontrol,15);
cout<<"Introduzca el nombre...........:";
cin.getline(esttemp->nombre,20);
cout<<"Introduzca el apellido.........:";
cin.getline(esttemp->apellidos,30);
cout<<"introduzca la carrera..........:";
cin.getline(esttemp->carrera,20);
cout<<"Introduzca el grupo............:";
cin.getline(esttemp->grupo,5);
cout<<"Introduzca el semestre.........:";
cin.getline(esttemp->semestre,10);
cout<<"Introduzca la edad.............:";
cin.getline(esttemp->edad,10);

esttemp->siguiente=estudiante;
esttemp->anterior=NULL;
if(estudiante!=NULL)
estudiante->anterior=esttemp;
estudiante=esttemp;
}
else
cout<<"NO HAY SUFICIENTE MEMORIA";

return;
}
//_________________________
void crear()
{
estudiante=new estdte;
estudiante=NULL;
return;
}
//_________________________
bool vacia()             //******AQUI ESTA EL ERROR**********//
{
if(estudiante==NULL)
return true;
else
return false;
}
//_________________________
estdte *fultimo()
{
estdte*aux;
aux=estudiante;
while(aux->siguiente!=NULL)
aux=aux->siguiente;
return aux;
}/*esta es una pequeña estructura que la vamos a utilizar para generar un puntero al ultimo elemento*/
void eliminar()
{
char NoControl[11];
bool encontrado = false;
estdte*esttemp;
estdte*estaux;
cin.ignore ();
cout<<"Introduzca el numero de control del alumno que va ha borrar";
cin.getline(NoControl,11);
esttemp=estudiante;
estaux=estudiante;
while(esttemp!=NULL && !encontrado)
{
if(stricmp(esttemp->Ncontrol,NoControl)==0)
{
encontrado=true;
if(esttemp->anterior==NULL || esttemp->siguiente==NULL)
{

estudiante=estudiante->siguiente;
if (estudiante!=NULL)
estudiante->anterior=NULL;
}
else
{
estaux=esttemp->anterior;
estaux->siguiente=esttemp->siguiente;
estaux=esttemp->siguiente;
estaux->anterior=esttemp->anterior;
//encontrado=true;
break;
}//fin else
}//fin del if
esttemp=esttemp->siguiente;
}//fin de while
if(!encontrado)
cout<<"El numeor de control no existe";
else
cout<<"Eliminado...";
return;
}
/*fin del void eliminar*/
void imprimir()
{
struct estdte*esttemp;
esttemp=new estdte;
esttemp=estudiante;
if(esttemp!=NULL)
while(esttemp!=NULL)
{
cout<<esttemp->Ncontrol<<"\t";
cout<<esttemp->nombre<<"\t";
cout<<esttemp->apellidos<<"\t";;
cout<<esttemp->carrera<<"\t";
cout<<esttemp->grupo<<"\t";
cout<<esttemp->semestre<<"\t";
cout<<esttemp->edad<<endl;
esttemp=esttemp->siguiente;
}
else
cout<<"No hay elementos en la lista para imprimir";
return;
}

robbie110487

  • Miembro activo
  • **
  • Mensajes: 66
    • Ver Perfil
Re: Ayuda Urgente!!!!
« Respuesta #1 en: Domingo 10 de Septiembre de 2006, 09:40 »
0
Por favor pon el error que te da, como no tengo nada que hacer lo compile y me dio este:
Citar
main must return int
que por lo visto no es el mismo que te da a ti, supongo que usaras algun compilador de borland, a mi con el minGW me compilo bien solo en la linea
Código: Text
  1. main()
  2.  
la cambie por
Código: Text
  1. int main()
  2.  
y coloce un
Código: Text
  1. return 0;
  2.  
al final de la funcion, por lo demas no me dio error.

Saludos

kelpo

  • Nuevo Miembro
  • *
  • Mensajes: 7
    • Ver Perfil
Re: Ayuda Urgente!!!!
« Respuesta #2 en: Domingo 10 de Septiembre de 2006, 20:09 »
0
Mi compilador es Turbo c++ y al compilarlo me resultan dos errores, uno lo pude corregir pero el otro no tengo idea de como...el error esta en la linea 107 en donde dice:

bool vacia()   <------aqui esta el error, al terminar vacia
{
if(estudiante==NULL)
return true;
else
return false;
}

me puse a investigar todas las formas en que se puede declarar una bool pero ninguna me cuadra...ya trate de la otra forma que me dijiste en el otro mensaje pero sin resultado...

robbie110487

  • Miembro activo
  • **
  • Mensajes: 66
    • Ver Perfil
Re: Ayuda Urgente!!!!
« Respuesta #3 en: Domingo 10 de Septiembre de 2006, 22:22 »
0
Creo que ya analizando el codigo encontre el error, mira en esta parte:
Código: Text
  1. void agregar();
  2. void crear();
  3. void eliminar();
  4. void imprimir();
  5.  
estas declarando todas las funciones menos la boolean, agregala por ahi a ver si es eso, algo asi:
Código: Text
  1. void agregar();
  2. void crear();
  3. void eliminar();
  4. void imprimir();
  5. bool vacia();
  6.  

Saludos  :comp:

Max_D

  • Miembro MUY activo
  • ***
  • Mensajes: 117
    • Ver Perfil
    • http://sitioteca.spaces.live.com/
Re: Ayuda Urgente!!!!
« Respuesta #4 en: Domingo 10 de Septiembre de 2006, 23:53 »
0
Has pensado que puede que el tipo bool no este definido en el Turbo c++ que usas?

kelpo

  • Nuevo Miembro
  • *
  • Mensajes: 7
    • Ver Perfil
Re: Ayuda Urgente!!!!
« Respuesta #5 en: Domingo 10 de Septiembre de 2006, 23:57 »
0
Me sigue marcando el mismo error aun cuando haya declarado la boolean abajo de los void....ya me estoy desesperando de no encontrar la solucion X(

kelpo

  • Nuevo Miembro
  • *
  • Mensajes: 7
    • Ver Perfil
Re: Ayuda Urgente!!!!
« Respuesta #6 en: Domingo 10 de Septiembre de 2006, 23:59 »
0
Como que el tipo bool no puede que este definido en el turbo c++ que tengo?? es acaso asi como una libreria para que funcione el bool??

robbie110487

  • Miembro activo
  • **
  • Mensajes: 66
    • Ver Perfil
Re: Ayuda Urgente!!!!
« Respuesta #7 en: Lunes 11 de Septiembre de 2006, 00:08 »
0
Opino algo similar a Max_D ya que tu codigo me compilo en el minGW (Bajo dev c++) sin ningun problema (excepto el de conio pero eso no es importante), realmente no se que pueda pasar amigo, cambia de compilador :S

Si de plano no te funciona lo que podrias hacer es declarar la funcion tipo int, y que te reorne 1 si es verdadero y 0 si es falso o algo asi...

Saludos

Geo

  • Miembro de PLATA
  • *****
  • Mensajes: 1011
  • Nacionalidad: mx
    • Ver Perfil
    • http://hsblog.mexchip.com
Re: Ayuda Urgente!!!!
« Respuesta #8 en: Lunes 11 de Septiembre de 2006, 00:58 »
0
Cita de: "robbie110487"
Si de plano no te funciona lo que podrias hacer es declarar la funcion tipo int, y que te reorne 1 si es verdadero y 0 si es falso o algo asi...
Prueba eso o esto (al inicio de tu programa, después de incluir las cabeceras):

Código: Text
  1.  
  2. typedef int bool;
  3. #define true 1
  4. #define false 0
  5.  
  6.  

¿Qué versión de Turbo C++ usas? Es que no lo tengo :P.

----------------------------
Edit:
Ok, tu compilador no tiene definido el tipo bool, ese es el problema (acabo de probar con Turbo C++ 3.0). Haz lo que te comentó robbie (usa un tipo int en tu función) o define el tipo bool como te comenté arriba.

Saludos,
JJ (Geo).
La imaginación es el límite.
Hardware & Software | Mexchip

Anonymous

  • Visitante
Re: Ayuda Urgente!!!!
« Respuesta #9 en: Lunes 18 de Septiembre de 2006, 01:07 »
0
hey tio sabes mejor usate el compilador de devc++ es mejor compilnado claro repara todos los orrores ke te an pasado estos tios jejeje

geobeid

  • Miembro activo
  • **
  • Mensajes: 88
    • Ver Perfil
Re: Ayuda Urgente!!!!
« Respuesta #10 en: Lunes 18 de Septiembre de 2006, 20:53 »
0
Citar
Has pensado que puede que el tipo bool no este definido en el Turbo c++ que usas?


ESO TIENE ALGUNA LOGICA'? OSEA UN BOOL NO DEFINIDO??
[size=109]
SI QUERES ENCONTRAR A JESÚS GOOGLEALO
[/size]

Geo

  • Miembro de PLATA
  • *****
  • Mensajes: 1011
  • Nacionalidad: mx
    • Ver Perfil
    • http://hsblog.mexchip.com
Re: Ayuda Urgente!!!!
« Respuesta #11 en: Lunes 18 de Septiembre de 2006, 21:25 »
0
Cita de: "geobeid"
Citar
Has pensado que puede que el tipo bool no este definido en el Turbo c++ que usas?

ESO TIENE ALGUNA LOGICA'? OSEA UN BOOL NO DEFINIDO??
Se refiere aque no existe el tipo de dato bool, en otras palabras, "no está definido".

El C++ estándar por supuesto que incluye el tipo bool, pero compiladores "antiguos" no lo tienen implementado (como Turbo C++, en este caso).

Saludos,
JJ (Geo).
La imaginación es el límite.
Hardware & Software | Mexchip

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Ayuda Urgente!!!!
« Respuesta #12 en: Lunes 18 de Septiembre de 2006, 21:41 »
0
Ni hablar si es en realidad Turbo C ...

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.

Geo

  • Miembro de PLATA
  • *****
  • Mensajes: 1011
  • Nacionalidad: mx
    • Ver Perfil
    • http://hsblog.mexchip.com
Re: Ayuda Urgente!!!!
« Respuesta #13 en: Lunes 18 de Septiembre de 2006, 22:27 »
0
Cita de: "Eternal Idol"
Ni hablar si es en realidad Turbo C ...
Debe ser Turbo C++ (yo probé con Turbo C++ 3.0 y no existe el tipo bool), Turbo C no porque por allí tiene en su código la iostream :P.

Saludos,
JJ (Geo).
La imaginación es el límite.
Hardware & Software | Mexchip

Bicholey

  • Moderador
  • ******
  • Mensajes: 1234
    • Ver Perfil
Re: Ayuda Urgente!!!!
« Respuesta #14 en: Martes 19 de Septiembre de 2006, 08:36 »
0
:P  :P  :P


je je je je yo tengo turbo C una de la veriones mas viejas ni siquiera tiene uso de mouse y no tiene booleana♂5...
[size=109]LOS GATOS SIEMPRE CAEMOS DE PIE !!![/size]