Dev - C++ - AYUDA CON POLIMORFISMO EN C++

 
Vista:

AYUDA CON POLIMORFISMO EN C++

Publicado por Andrea (2 intervenciones) el 21/07/2017 00:24:18
Hola.. Estoy muy angustiada ya que no domino la cuestión de llamadas polimórficas y necesito resolver el siguiente problema:

Realice un programa que utilice una llamada polimórfica para calcular cuánto costaría desplazarse un cierto número de kilómetros en distintos medios de transporte.

Los medios de transporte heredarán de una clase abstracta llamada Transporte, la cual tendrá como atributo un número flotante que definirá la tarifa por kilómetro y también contendrá un método virtual puro que recibirá como parámetro el número de kilómetros a recorrer y mediante el cual se realizará la impresión de cuánto costaría recorrerlos en ese transporte en particular.

Considerando esta clase, cree otras dos clases Taxi y Autobus que hereden de Transporte e implementen el método virtual puro. Adicionalmente, cree otras dos clases que representen otros dos transportes distintos y que hereden de la misma clase base.

Como nota, los dos transportes que deberá crear son a su libre criterio. No importa cuáles sean ni qué tarifa tengan, lo importante es que hereden de Transporte y respondan a la llamada polimórfica.

Por último, cree al menos cuatro objetos (uno de cada clase derivada), los cuales deberán estar en un arreglo de tipo Transporte y realice la llamada polimórfica a cada objeto del arreglo.

El usuario deberá introducir por teclado el número de kilómetros que se desean recorrer, mientras que las tarifas de cada transporte pueden ir especificadas directamente en el código.

Ejemplo

Suponiendo que se tienen solamente las dos clases derivadas especificadas anteriormente (Taxi y Autobus), con tarifas de $10 y $20, respectivamente, el programa debería tener un comportamiento parecido al siguiente:

Entrada:
5
Salida:
Transportar 5 kilómetros en taxi costó $50
Transportar 5 kilómetros en autobús costó $100

Ayuda!!!!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

AYUDA CON POLIMORFISMO EN C++

Publicado por La mano peluda (1 intervención) el 26/07/2017 01:59:49
La clave está en el ejercicio de ejemplo: U6_10_ejemploClaseAbstracta de la plataforma de Lenguaje de Programación C++
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de JUJU

AYUDA CON POLIMORFISMO EN C++

Publicado por JUJU (3 intervenciones) el 29/07/2017 05:32:37
Ya lo tienes? sino dime cuál es tu correo para mandarte ayuda :)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

AYUDA CON POLIMORFISMO EN C++

Publicado por la mano peluda 3 (2 intervenciones) el 29/07/2017 05:36:20
que tal juju tienes el programa que lo puedas publicar para apoyo de todos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

AYUDA CON POLIMORFISMO EN C++

Publicado por hdoso (1 intervención) el 29/07/2017 23:33:17
Podrias mandarme el código a mi correo pfv
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Fantasma

AYUDA CON POLIMORFISMO EN C++

Publicado por Fantasma (3 intervenciones) el 30/07/2017 04:23:30
Archivo--> main.cpp

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include <iostream>
#include "include/Transporte.h"
#include "include/Taxi.h"
#include "include/Autobus.h"
using namespace std;
int kilometros;
void pagarTransporte(Transporte **arreglo,int n)
{
    for(int i=0; i<n; i++)
    {
        cout<<"Transportar "<<kilometros<<" kilómetro(s) en "<<arreglo[i]->getNombre()<<" costó $"<<arreglo[i]->pagar(kilometros)<<endl;
    }
}
int main()
{
    int n=2;
    cout<<"¿Cuántos kilómetros deseas recorrer?";
    cin>> kilometros;
    Transporte *transportes[n];
    Taxi transporteTaxi("Taxi");
    transportes[0]=&transporteTaxi;
    Autobus objetoAutobus("Autobus");
    transportes[1]=&objetoAutobus;
    pagarTransporte(transportes,n);
    return 0;
}

Archivo--> Transporte.h

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#ifndef TRANSPORTE_H_INCLUDED
#define TRANSPORTE_H_INCLUDED
#include<string>
using namespace std;
class Transporte
{
    public:
        Transporte(string nombre);
        virtual float pagar(int kilometros);
        string getNombre();
        float tarifa;
 
    private:
        string nombre;
        int kilo;
 
};
#endif // TRANSPORTE_H_INCLUDED

Archivo--> transporte.cpp

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
#include "../include/Transporte.h"
#include<iostream>
using namespace std;
Transporte::Transporte(string nombre):nombre(nombre)
{
}
 
string Transporte::getNombre()
{
    return this->nombre;
}
 
float Transporte::pagar(int kilometros)
{
    cout<<"Pago no especificado"<<endl;
    return 0;
}

Archivo--> Taxi.h

1
2
3
4
5
6
7
8
9
10
11
12
#ifndef TAXI_H_INCLUDED
#define TAXI_H_INCLUDED
#include "Transporte.h"
using namespace std;
class Taxi:public Transporte
{
public:
    Taxi(string nombre);
    virtual float pagar(int kilometros);
    float getPago(void);
};
#endif // TAXI_H_INCLUDED

Archivo--> taxi.cpp

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include "../include/Taxi.h"
#include <iostream>
using namespace std;
Taxi::Taxi(string nombre):Transporte (nombre)
{
 
}
float Taxi::getPago(void)
{
    tarifa=5;
    return tarifa;
}
float Taxi::pagar(int kilometros)
{
    return kilometros*Taxi::getPago();
}

Archivo--> Autobus.h

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#ifndef AUTOBUS_H_INCLUDED
#define AUTOBUS_H_INCLUDED
#include "Transporte.h"
using namespace std;
class Autobus:public Transporte
{
public:
    Autobus(string nombre);
    virtual float pagar(int kilometros);
    float getPago(void);
};
 
 
#endif // AUTOBUS_H_INCLUDED

Archivo--> autobus.cpp

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include "../include/Autobus.h"
#include <iostream>
using namespace std;
Autobus::Autobus(string nombre):Transporte (nombre)
{
 
}
float Autobus::getPago(void)
{
    tarifa=3.50;
    return tarifa;
}
float Autobus::pagar(int kilometros)
{
    return kilometros*Autobus::getPago();
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
3
Comentar

AYUDA CON POLIMORFISMO EN C++

Publicado por Jorge García Huerta (1 intervención) el 03/08/2017 15:34:28
Hola soy un profe con 50 años de ejercer la docencia y los felicito su página esta formidable, muchas gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar