Dev - C++ - Ejercicio de clases de C++,

 
Vista:
sin imagen de perfil

Ejercicio de clases de C++,

Publicado por anonymous (6 intervenciones) el 09/06/2022 01:17:24
He desarrollado un código en C++ utilizando clases


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
38
39
40
41
42
43
44
45
46
#include<iostream>
#include<vector>
using namespace std;
 
class CVehiculo{
private:
    string placa, marca;
    int fabricacion;
public:
    CVehiculo(){placa=" "; marca=" "; fabricacion=0;}
    CVehiculo(string _placa, string _modelo, int _fabricacion):placa(_placa), marca(_modelo), fabricacion(_fabricacion){}
 
    string getPlaca(){return placa;}
    string getMarca(){return marca;}
 
    int getFabricacion(){return fabricacion;}
 
    void printData(){
        cout<<placa<<", "<<modelo<<endl;
    }
};
 
class CTaxi{
private:
    string nombre;
    int cantidad;
    vector<CVehiculo*> vehiculo;
public:
    CTaxi(){nombre=" "; cantidad=0;}
    CTaxi(string _nombre, int _cantidad):nombre(_nombre), cantidad(_cantidad){}
 
    string getNombre(){return nombre;}
 
    int getCantidadVehiculos(){return cantidad;}
 
    void adicionarVehiculo(CVehiculo* vehiculos){
        vehiculo.emplace_back(vehiculos);
    }
 
    void imprimirVehiculos(){
        for(auto v:vehiculo){
            v->printData();
            cout<<endl;
        }
    }
};


Los datos de entrada siguen este orden:


1
2
3
4
5
6
Nombre de la empresa de taxi (Ej: El rapido)
Cantidad de vehículos (Ej: 3)
Datos de los vehículos (Ej: 3 repeticiones)
Placa
Marca
Año de fabricación


Input

1
2
3
4
5
6
7
8
9
10
11
El rapido
3 //-> Numero de vehiculos
AAA111
Kia
2013
BBB999
Toyota
2018
CCC555
Nissan
2017


Y luego retorne:

Output


1
2
3
Vehiculo [1] Placa: AAA111, Modelo: Kia, Anio: 2013
Vehiculo [2] Placa: BBB999, Modelo: Toyota, Anio: 2018
Vehiculo [3] Placa: CCC555, Modelo: Nissan, Anio: 2017


El problema que tengo es que no sé como inicializar desde el main y lograr que el código pueda retornar el output esperado. Ademas, cuando se ingrese el numero de vehiculos (que no necesariamente va a ser 3 siempre), no logro que esos numeros esten dentro de los corchetes como sale en el output:

Vehiculo [3]

Input


1
2
3
4
5
6
7
8
9
10
11
12
13
14
El rapido
4
AAA111
Kia
2013
BBB999
Toyota
2018
CCC555
Nissan
2017
DDD777
Jeep
2019


Output


1
2
3
4
Vehiculo [1] Placa: AAA111, Modelo: Kia, Anio: 2013
Vehiculo [2] Placa: BBB999, Modelo: Toyota, Anio: 2018
Vehiculo [3] Placa: CCC555, Modelo: Nissan, Anio: 2017
Vehiculo [4] Placa: DDD777, Modelo: Jeep, Anio: 2019


Si alguien me puede dar una mano, se lo agradecería mucho.
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
Imágen de perfil de Alfil
Val: 4.344
Oro
Ha mantenido su posición en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Ejercicio de clases de C++,

Publicado por Alfil (1444 intervenciones) el 09/06/2022 12:28:45
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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
#include <iostream>
#include <vector>
 
using namespace std;
 
class CVehiculo
{
    public:
        CVehiculo(){ placa = ""; marca = ""; fabricacion = 0; }
        CVehiculo(string placa, string modelo, int fabricacion)
        : placa(placa)
        , marca(modelo)
        , fabricacion(fabricacion)
        {}
 
        string getPlaca(){ return placa; }
        string getMarca(){ return marca; }
        int getFabricacion(){ return fabricacion; }
 
        void printData() { cout << "Placa: " << placa << ", Modelo: " << marca << endl; }
 
 
    private:
        string placa;
        string marca;
        int fabricacion;
};
 
class CTaxi
{
    public:
        CTaxi(){ nombre = ""; cantidad = 0; }
        CTaxi(string nombre, int cantidad)
        : nombre(nombre)
        , cantidad(cantidad)
        {}
 
        string getNombre(){ return nombre; }
        int getCantidadVehiculos(){ return cantidad; }
 
        void adicionarVehiculo(CVehiculo v){ vehiculo.emplace_back(v); }
 
        void imprimirVehiculos()
        {
            int count = 0;
            for (auto v : vehiculo)
            {
                cout << "Vehiculo[" << ++count << "] ";
                v.printData();
            }
        }
 
    private:
        string nombre;
        int cantidad;
        vector<CVehiculo> vehiculo;
};
 
int main()
{
    string nombre, placa, marca;
    int cantidad, fabricacion;
 
    cout << "Nombre de la empresa de Taxi: "; getline(cin, nombre);
    cout << "Cantidad de vehiculos: "; cin >> cantidad;
    cin.ignore(80, '\n');
 
    CTaxi t1(nombre, cantidad);
 
    cout << "Datos de los vehiculos: " << endl;
    for (int i = 0; i < t1.getCantidadVehiculos(); i++)
    {
       cout << "Vehiculo " << i + 1 << ": " << endl;
       cout << "Placa: "; getline(cin, placa);
       cout << "Marca: "; getline(cin, marca);
       cout << "Anio fabricacion: "; cin >> fabricacion;
       cin.ignore(80, '\n');
 
       CVehiculo v1(placa, marca, fabricacion);
       t1.adicionarVehiculo(v1);
    }
 
    cout << endl << endl;
    cout << "Imprimir datos" << endl;
    cout << "Empresa: " << t1.getNombre() << endl;
    cout << "Vehiculos: " << endl;
    t1.imprimirVehiculos();
 
    return 0;
}
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