Problema de polimorfismo y herencia en C++
Publicado por anonymous (3 intervenciones) el 22/06/2022 03:55:54
Se necesita un programa para optimizar el manejo de una flota de aviones. Cada Avión posee un código de fabricación (de 1 letra seguida de 3 dígitos), una velocidad máxima, y una cantidad de alas de acuerdo al tipo.
Se manejan tres tipos de avion:
avión comercial, con un par de alas y una capacidad máxima de 200 pasajeros. No puede girar durante el vuelo. Y una velocidad máxima de 300 Km/h
biplano, con dos pares de alas, y puede dar giros durante el vuelo. Además tiene una cabina, que puede ser abierta o cerrada. Un máximo de 2 pasajeros, y una velocidad máxima de 200 Km/h
avión militar, con un par de alas, y solo acepta un pasajero. Puede girar y volar verticalmente durante el vuelo. Un máximo de 1 pasajero, y una velocidad máxima de 1000 Km/h
Se necesita generar una flota de 3 aviones comerciales, 2 aviones militares y 2 biplanos. Estos deben ser manejados en un mismo vector.
Calcular el tiempo de mantenimiento de los aviones, considerando que éste se demora en días:
para aviones comerciales: 0.1 x (1+ alas) x cantidad máxima de pasajeros
para aviones militares: 0.1 x (1+ alas) x cantidad de giros y vuelos verticales realizados (aleatorio entre 100 y 200)
para biplanos, 0.1 x (1+ alas) x cantidad de giros (aleatorio entre 50 y 100) + (20 días si es cabina abierta o 10 días si tiene cabina cerrada)
Imprimir la lista de aviones con sus características incluyendo su tiempo de mantenimiento.
En este problema, los datos a imprimir deberán estar establecidos en el código, obviamente inicializados desde el main.
Justamente, he ido avanzando un codigo con respecto al ejercicio, pero sin conseguir el output esperado.
Se manejan tres tipos de avion:
avión comercial, con un par de alas y una capacidad máxima de 200 pasajeros. No puede girar durante el vuelo. Y una velocidad máxima de 300 Km/h
biplano, con dos pares de alas, y puede dar giros durante el vuelo. Además tiene una cabina, que puede ser abierta o cerrada. Un máximo de 2 pasajeros, y una velocidad máxima de 200 Km/h
avión militar, con un par de alas, y solo acepta un pasajero. Puede girar y volar verticalmente durante el vuelo. Un máximo de 1 pasajero, y una velocidad máxima de 1000 Km/h
Se necesita generar una flota de 3 aviones comerciales, 2 aviones militares y 2 biplanos. Estos deben ser manejados en un mismo vector.
Calcular el tiempo de mantenimiento de los aviones, considerando que éste se demora en días:
para aviones comerciales: 0.1 x (1+ alas) x cantidad máxima de pasajeros
para aviones militares: 0.1 x (1+ alas) x cantidad de giros y vuelos verticales realizados (aleatorio entre 100 y 200)
para biplanos, 0.1 x (1+ alas) x cantidad de giros (aleatorio entre 50 y 100) + (20 días si es cabina abierta o 10 días si tiene cabina cerrada)
Imprimir la lista de aviones con sus características incluyendo su tiempo de mantenimiento.
En este problema, los datos a imprimir deberán estar establecidos en el código, obviamente inicializados desde el main.
Justamente, he ido avanzando un codigo con respecto al ejercicio, pero sin conseguir el output esperado.
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
27
28
29
30
31
32
33
34
35
36
37
#include <iostream>
#include <stdlib.h>
#include <time.h>
using namespace std;
class Avion{
public:
Avion(string code, int vmax, int c_alas):code(code), vmax(vmax), c_alas(c_alas){}
string getCode(){return code;}
int getVMax(){return vmax;}
int getCAlas(){return c_alas;}
protected:
string code;
int vmax, c_alas;
};
class Biplano : public Avion{
private:
int i=0, giros;
string cabina;
public:
Biplano(string code, int vmax, int c_alas): Avion(code, vmax, c_alas){}
};
class AvionMilitar : public Avion{
private:
int i=0, gV;
public:
AvionMilitar(string code, int vmax, int c_alas): Avion(code, vmax, c_alas){}
};
class AvionComercial : public Avion{
int cmax;
public:
AvionComercial(string code, int vmax, int c_alas): Avion(code, vmax, c_alas){}
};
Valora esta pregunta
0