ayuda en este codigo

karla
08 de Julio del 2004
porfavor necesito corregir este codigo y no puedo dar con los errores lo quiero compìlar y ejecutar en borland c++ gracias por favor si me ayudan envienmelo a mi correo en archivos adjunto en .cpp a este correo [email protected]
gracias de todo corazon

este es el codigo tengo un error de compilacion y no he dado con el... ayudenme en borland c++ :

// clase usuario

class Usuario
{
protected:
char *nombre, *apellidos;
int CI;

public:
Usuario();
Usuario(char *aNombre, char *aApellidos, int aCI);
void setNombre(char *aNombre);
void setApellidos(char *aApellidos);
void setCI(int aCI);
char *getNombre();
char *getApellidos();
int getCI();
};

// implementacion de la clase usuario

Usuario::Usuario()
{
nombre= "";
apellidos= "";
CI= 0;
};

Usuario::Usuario(char *aNombre, char *aApellidos, int aCI)
{
nombre= new char[50];
strcpy(nombre,aNombre);

apellidos= new char[50];
strcpy(apellidos,aApellidos);

CI= aCI;
};

void Usuario::setNombre(char *aNombre)
{
nombre=aNombre;
};

void Usuario::setApellidos(char *aApellidos)
{
apellidos=aApellidos;
};

void Usuario::setCI(int aCI)
{
CI= aCI;
};

char *Usuario::getNombre()
{
return nombre;
};

char *Usuario::getApellidos()
{
return apellidos;
};

int Usuario::getCI()
{
return CI;
};

//-----------------------------------------------------------------------------------------------------------------

// clase Taxi

enum EDestino
{
Norte= 1, Sur, Oeste, Este, Litoral
};

enum EEStado
{
Reservado=1, Libre
};

class Taxi
{
protected:
EDestino ruta;
EEStado estado;
float pago;

public:
Taxi();
Taxi(EDestino aRuta);

void setRuta(EDestino aRuta);
EDestino getRuta();

void setEstado(EEStado aEstado);
EEStado getEstado();


};

// implentacion de la clase taxi


Taxi::Taxi()
{

};

Taxi::Taxi(EDestino aRuta)
{
ruta= aRuta;
};

void Taxi::setRuta(EDestino aRuta)
{
ruta= aRuta;
};

EDestino Taxi::getRuta()
{
return ruta;
};

void Taxi::setEstado(EEStado aEstado)
{
estado= aEstado;
};

EEStado Taxi::getEstado()
{
return estado;
};

//----------------------------------------------------------------------------------------------------------------


// clase Base (es la principal)

#include "taxi_vehiculo.h"
#include "usuario.h"
//---------------------------------------------------------------------------
// el estado del taxi es el 1, para Libre, y 2, para Ocupado

const int cant_maxi_usuarios= 1000;

typedef struct
{
Taxi taxi[15];
Usuario usuarios[cant_maxi_usuarios];
}SBase;


class Base
{
protected:
Taxi taxi[15];
Usuario usuarios[cant_maxi_usuarios];
int cant_usuarios;
int taxis_ocupados, taxis_libres;

public:
Base();
Base(SBase s);
void ReservarTaxi(Usuario usuario, EDestino ruta);
void CancelarTaxi(char *nombre, EDestino ruta);
int getCantidadTaxisLibres();
int getCantidadTaxisReservados();
int getCantidadUsuarios();
EEStado getSituacionTaxi(int posicion);
void EliminarUsuario(char *nombre);
bool Buscar(char *nombre);

SBase getRegistro();
};

// implementacion de la clase Base


Base::Base()
{
taxis_libres= 15;
taxis_ocupados= 0;
for (int i=0; i<getCantidadTaxisLibres();i++)
taxi[i].setEstado(Libre);
};

Base::Base(SBase s)
{
for (int i=0;i<cant_usuarios;i++)
{
usuarios[i]= s.usuarios[i];
taxi[i]= s.taxi[i];
}
};

void Base::ReservarTaxi(Usuario usuario, EDestino ruta)
{
if (getCantidadTaxisLibres()<= 15)
for (int i=0; i<getCantidadTaxisLibres();i++)
if (getSituacionTaxi(i)== 1)
{
usuarios[i]= usuario;
taxi[i].setRuta(ruta);
taxi[i].setEstado(Reservado);
taxis_libres--;
taxis_ocupados++;
}
else
throw "no se puede reservar";
};

void Base::CancelarTaxi(char *nombre, EDestino ruta)
{
for (int i=0;i<getCantidadTaxisReservados();i++)
if (taxi[i].getRuta()==ruta /* && usuarios[i]==usuario */)
taxi[i].setEstado(Libre);
EliminarUsuario(nombre);
};

int Base::getCantidadTaxisLibres()
{
for (int i=0; i<15;i++)
if (taxi[i].getEstado()== Libre)
taxis_libres++;

return taxis_libres;
};

int Base::getCantidadTaxisReservados()
{
for (int i=0; i<15;i++)
if (taxi[i].getEstado()== Reservado)
taxis_ocupados++;

return taxis_ocupados;
};

EEStado Base::getSituacionTaxi(int posicion)
{
return taxi[posicion].getEstado();
};

void Base::EliminarUsuario(char *nombre)
{
for (int i= 0;i<cant_usuarios;i++)
if (usuarios[i].getNombre()== nombre)
usuarios[i++]=usuarios[i];
cant_usuarios--;
};

bool Base::Buscar(char *nombre)
{
for (int i=0;i<cant_usuarios;i++)
if (usuarios[i].getNombre()== nombre)
return true;
return false;
};

int Base::getCantidadUsuarios()
{
return cant_usuarios;
};

SBase Base::getRegistro()
{
SBase s;
for (int i=0;i<cant_usuarios;i++)
{
s.taxi[i]= taxi[i];
s.usuarios[i]= usuarios[i];
}

return s;
};

//------------------------------------------------------------------------------------------------------------------


// programa principal

#include "base.h"
#include <iostream.h>
#include <conio.h>
//---------------------------------------------------------------------------

int menu();
int Reservar();
int Cancelar();
int Guardar();
int Leer();

Base base;
char nombre[50], apellidos[50];
int CI;
EDestino ruta;
Usuario nuevo;
Taxi taxi;

int main()
{
menu();

return 0;
}
//---------------------------------------------------------------------------

int menu()
{
char opcion;

cout<<" BASE DE TAXIS";
cout<<"nn 1. Reservar";
cout<<"n 2. Cancelar";
cout<<"n 3. Ver cantidad de usuarios";
cout<<"n 4. Guardar en archivo";
cout<<"n 5. Leer de archivo";
cout<<"n 6. Salir";
cout<<"nn su opcion es>> ";
cin>>opcion;
switch(opcion)
{
case 1:
clrscr();
Reservar();
break;
case 2:
clrscr();
Cancelar();
break;
case 3:
clrscr();
cout<<"han reservado "<<base.getCantidadUsuarios()<<"
usuario(s).n";
system("pause");
break;
case 4:
clrscr();
Guardar();
break;
case 5:
clrscr();
Leer();
break;
case 6:
exit(0);
}
return 0;
};
//---------------------------------------------------------------------------
int Reservar()
{
cout<<"deme a continuacion los datos del clienten";
cout<<"nombre>> ";
cin>>nombre;
nuevo.setNombre(nombre);

cout<<"napellidos>> ";
cin>>apellidos;
nuevo.setApellidos(apellidos);

cout<<"n ruta a seguir(Norte, sur, Oeste, Este, Litoral)>> ";
cin>> ruta;
taxi.setRuta(ruta);

base.ReservarTaxi(nuevo,ruta);
cout<<"n ud ha reservado.n";
system("pause");
return 0;
};
//---------------------------------------------------------------------------
int Cancelar()
{
clrscr();
cout<<"deme a continuacion los datos del clienten";
cout<<"nombre>> ";
cin>>nombre;
cout<<"napellidos>> ";
cin>>apellidos;
cout<<"deme la ruta>> ";
cin>>ruta;

if (base.Buscar(nombre)== false)
{
cout<<"el usuario no existe";
system("pause");
}
else
{
base.CancelarTaxi(nombre,ruta);
cout<<"nReservacion cancelada.n";
system("pause");
}
return 0;
};