URGENTE

Iniciado por M-Stewart612, 25 Mayo 2019, 07:09 AM

0 Miembros y 1 Visitante están viendo este tema.

M-Stewart612

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

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();
}

CalgaryCorpus

En la linea 170 te falta poner "Transporte::"
lo mismo en la linea 216.

No se si hay mas errores, pero al menos esto es lo que pasa aqui. Has definidos funciones normales, pero no metodos dentro de la clase Transporte.
Aqui mi perfil en LinkedIn, invitame un cafe aqui