Hola buenas noches... me urge mucho saber cual es el error que tiene mi programa, el mensaje que me da el el siguiente:
Parqueo Publico.cpp:(.text+0x1e2): undefined reference to `Transporte::Aparcarvehiculo(int (*) [10], int*, int*)'
Parqueo Publico.cpp:(.text+0x217): undefined reference to `Transporte::RetirarVehiculo(int (*) [10], int*, int*)'
No comprendo a que se quiere referir... Agradeceré de antemano toda la ayuda que me puedan dar
Parqueo Publico.cpp:(.text+0x1e2): undefined reference to `Transporte::Aparcarvehiculo(int (*) [10], int*, int*)'
Parqueo Publico.cpp:(.text+0x217): undefined reference to `Transporte::RetirarVehiculo(int (*) [10], int*, int*)'
No comprendo a que se quiere referir... Agradeceré de antemano toda la ayuda que me puedan dar
Código (cpp) [Seleccionar]
#include<iostream>
#include<stdlib.h>
#include<fstream>
#define NumF 10
#define NumC 10
using namespace std;
ofstream archivo("Registros_Parqueo.txt");
class Transporte {
public:
Transporte () {};
string nombre;
string placa;
int Entrada;
int Ubicacion;
string codigo;
void Ingreso();
void Aparcarvehiculo(int[10][10],int*,int*);
void Ticket();
void RetirarVehiculo(int[10][10],int*,int*);
};
class carro : public Transporte{
public:
int CantCarro;
carro(){};
};
class moto : public Transporte{
public:
int CantMoto;
moto(){};
};
int PuestosLIbres(int Parqueo[NumF][NumC])
{
int nLibres=0;
for(int fila=0;fila<NumF;fila++)
for(int columna=0;columna<NumC;columna++)
if(Parqueo[fila][columna]== 0)
nLibres++;
return nLibres;
}
int MostrarMenu(void)
{
int Op;
system("CLS");
cout<<"\t \t \tMENU:\n\t 1)Ingreso de datos \n\t 2)Aparcar el vehiculo \n\t 3)Retirar un Vehiculo \n\t 4)Impresion de ticket \n\t 5)Salida \n Digite su opcion: "; cin>>Op;
return Op;
}
int main(){
Transporte registro;
int nLibres,nOcupadas=0,Op;
// Donde estan los 1, ya hay un vehiculo estacionado...
// Donde es cero esta disponible para cualquier vehiculo...
int parqueo[10][10]={{1,0,0,0,1,0,0,1,0,0},
{1,1,1,1,1,1,1,1,0,0},
{1,0,0,0,0,0,0,1,0,0},
{0,0,0,0,0,0,0,0,0,0},
{1,0,0,0,1,0,0,1,0,0},
{1,1,1,1,1,1,1,1,1,1},
{1,0,0,1,0,1,0,1,0,1},
{1,1,1,1,1,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0,0},
{1,1,1,1,1,1,1,1,1,1}};
nLibres=PuestosLIbres(parqueo);
do{
Op=MostrarMenu();
switch (Op){
case 1:{
system("cls");
cout <<"INGRESO DE DATOS:"<<endl;
registro.Ingreso();
system("PAUSE");
break;
}
case 2:{
cout <<"APARCAR EL VEHICULO:"<<endl;
system("cls");
registro.Aparcarvehiculo(parqueo,&nLibres,&nOcupadas);
break;
}
case 3:{
system("cls");
registro.RetirarVehiculo(parqueo,&nLibres,&nOcupadas);
system("PAUSE");
cout <<"HISTORIAL:"<<endl;
break;
}
case 4:{
system("cls");
cout <<"IMPRESION DE TICKET:"<<endl;
registro.Ticket();
system("PAUSE");
break;
}
case 5:{
system("cls");
exit (0);
break;
}
default:
cout << "Opcion incorrecta, escriba una nueva opcion: "; cin>>Op;
system("PAUSE");
}
}while(Op != 1);
return 0;
}
//INGRESO DE LOS DATOS DEL VEHICULO
void Transporte::Ingreso(){
int tipo;
char res;
moto Moto;
carro Carro;
ofstream archivo;
archivo.open("Registros_Parqueo", ios::out);
cout<<"\t \t \t BIENVENIDO";
do{
cout<<"\n \t Tipo Vehiculo: <1> Moto <2> Carro: "; cin>>tipo;
if(tipo== 1){
cout<<"\n Digite la hora de entrada: "; cin>>Moto.Entrada;
cout<<"\n Digite el nombre del dueño (Inicial del nombre y appellido): "; cin>>Moto.nombre;
cout<<"\n Digite la placa: "; cin>>Moto.placa;
cout<<"\n Digite el codigo (Inicial del nommbre, numeros de la placa): "; cin>>Moto.codigo;
archivo<<"\n \n \t ************************************\t ";
archivo<<"\n \t ** RESUMEN INGRESO **\t ";
archivo<<"\n \t ************************************\t ";
archivo<<"\n \t * Ingreso: "<<Moto.codigo;
archivo<<"\n \t * Tipo Vehiculo: "<<tipo;
archivo<<"\n \t * Placa: "<<Moto.placa;
archivo<<"\n \t * Nombre: "<<Moto.nombre;
archivo<<"\n \t * Ingreso: "<<Moto.Entrada;
archivo<<"\n \t ************************************\t ";
archivo.close();
} else if(tipo== 2){
cout<<"\n \t Digite la hora de entrada: "; cin>>Carro.Entrada;
cout<<"\n \t Digite el nombre del dueño: "; cin>>Carro.nombre;
cout<<"\n \t Digite la placa: "; cin>>Carro.placa;
cout<<"\n Digite el codigo (Inicial del nommbre, numeros de la placa): "; cin>>Carro.codigo;
archivo<<"\n \n \t ************************************\t ";
archivo<<"\n \t ** RESUMEN INGRESO **\t ";
archivo<<"\n \t ************************************\t ";
archivo<<"\n \t * Ingreso: "<<Carro.codigo;
archivo<<"\n \t * Tipo Vehiculo: "<<tipo;
archivo<<"\n \t * Placa: "<<Carro.placa;
archivo<<"\n \t * Nombre: "<<Carro.nombre;
archivo<<"\n \t * Ingreso: "<<Carro.Entrada;
archivo<<"\n \t ************************************\t ";
archivo.close();
}
cout<<"\n \n Realizara otro ingreso?: <S/N>"; cin>>res;
}while(res=='S'||res=='s');
}
//UBICACION DONDE SE ENCONTRARA EL VEHICULO
void Aparcarvehiculo(int Parqueo[10][10],int *nLibres,int *nOcupadas)
{
bool estacionado;
int fila,columna;
cout <<"-|P01|-|P02|-|P03|-|P04|-|P05|-|P06|-|P07|-|P08|-|P09|-|P10|-";
cout <<"-|P11|-|P12|-|P13|-|P14|-|P15|-|P16|-|P17|-|P18|-|P19|-|P20|-";
cout <<"-|P21|-|P22|-|P23|-|P24|-|P25|-|P26|-|P27|-|P28|-|P29|-|P30|-";
cout <<"-|P31|-|P32|-|P33|-|P34|-|P35|-|P36|-|P37|-|P38|-|P39|-|P40|-";
cout <<"-|P41|-|P42|-|P43|-|P44|-|P45|-|P46|-|P47|-|P48|-|P49|-|P50|-";
cout <<"-|P51|-|P52|-|P53|-|P54|-|P55|-|P56|-|P57|-|P58|-|P59|-|P60|-";
cout <<"-|P61|-|P62|-|P63|-|P64|-|P65|-|P66|-|P67|-|P68|-|P69|-|P70|-";
cout <<"-|P71|-|P72|-|P73|-|P74|-|P75|-|P76|-|P77|-|P78|-|P79|-|P80|-";
cout <<"-|P81|-|P82|-|P83|-|P84|-|P85|-|P86|-|P87|-|P88|-|P89|-|P90|-";
cout <<"-|P91|-|P92|-|P93|-|P94|-|P95|-|P96|-|P97|-|P98|-|P99|-|P100|-";
if(*nLibres > 0){
do{
cout<<"\t \t \t BIENVENIDO";
estacionado = false;
cout << "Introduce el numero de la fila: ";
cin >> fila;
cout << "Introduce el numero de la columna: ";
cin >> columna;
switch(Parqueo[fila][columna])
{
case 1:
Parqueo[fila][columna]=1;
(*nLibres)--;
(*nOcupadas)++;
estacionado= true;
cout << "El lugar se encuentra disponible" << endl;
break;
case 2:
cout << "Plaza ya ocupada" << endl;
break;
default:
cout << "Digite una posición correcta" << endl;
}
}while(estacionado != true);
}else{
cout << "No quedan plazas libres" << endl;
}
}
//RETIRO DEL VEHICULO
void RetirarVehiculo(int parqueo[10][10],int *nLibres,int *nOcupadas)
{
bool liberado;
int fila,columna;
if(*nOcupadas > 0){
do{
liberado = false;
cout << "Introduce el numero de la fila: ";
cin >> fila;
cout << "Introduce el numero de la columna: ";
cin >> columna;
if(parqueo[fila][columna]==1){
parqueo[fila][columna]=0;
liberado=true;
(*nLibres)++;
(*nOcupadas)--;
cout << "El vehiculo se retiro satisfactoriamente" << endl;
}else{
cout << "Intentelo de nuevo" << endl;
}
}while(liberado == false);
}else{
cout << "El parque esta vacio" << endl;
}
}
//TICKET DE CUENTA DEL VEHICULO
void Transporte::Ticket(){
string texto;
ifstream archivo;
archivo.open("Registros_Parqueo", ios::in);
while(!archivo.eof()){
getline(archivo,texto);
cout<<texto<<endl;
}
archivo.close();
}