We were unable to load Disqus. If you are a moderator please see our troubleshooting guide.

Anonymous • 1 year ago

Donde puedo ver los ejercicios resueltos ?

Pmlkratos • 3 years ago

Yo quiero hacer esto pero que en la clase contenedora tenga un arreglo de la clase contenida y vaya agregando objetos al arreglo mediante un metodo y despues que muestre el contenido de la misma en otro metodo y en el main solo hacer las llamadas correspondientes.
Por ejemplo:
class Persona
{
string nombre;
int edad;
//constructor...
// setter getter
// to string()
}

class Cliente
{
Persona personas[];
Cliente(int cantidad)
{
personas = new Persona[cantidad];
}

void agregarPersona(Persona p)
{
for(int i = 0; i < personas.length; i++)
{
if(personas[i] == null)
{
personas[i] = p;
break;
}
}
}

string ListarPersona()
{
string listado = ";
for(int i = 0; i < personas.length; i++)
{
if(personas[i] != null)
{
Persona p = personas[i];
listado += p.toString();
}
}
return listado;
}

}

class Pincipal
{
Cliente c = new Cliente(2);

Persona p1 = new Persona("A", 20);
Persona p2 = new Persona("B", 30);

c.agregarPersona(p1);
c.agregarPersona(p2);

console.whriteLine( c.listarPersona());
}

quiero hacer esto pero en C++

camilocorreaUdeA • 3 years ago

Hola, bueno, la traducción de ese código en Java a C++ sería algo similar a esto:

class Persona
{
std::string nombre;
int edad;
//constructor...
// setter getter
// to string()
};

class Cliente
{
Persona* personas = nullptr;
int size = 0;

Cliente(int cantidad)
{
personas = new Persona[cantidad];
size = cantidad;
}

~Cliente(){delete[] personas;}

void agregarPersona(Persona* p)
{
for(int i = 0; i < size; i++)
{
if(personas[i] == nullptr)
{
personas[i] = p;
break;
}
}
}

std::string ListarPersona()
{
std::string listado = "";
Persona* p = nullptr;

for(int i = 0; i < size; i++)
{
if(personas[i] != nullptr)
{
p = personas[i];
listado += p->toString(); //supongo que ese metodo retorna la variable nombre de la clase Persona
listado += " ";
}
}
delete p;
p = nullptr;
return listado;
}

};

int main()
{
Cliente c = new Cliente(2);

Persona* p1 = new Persona("A", 20);
Persona* p2 = new Persona("B", 30);

c->agregarPersona(p1);
c->agregarPersona(p2);

std::cout<<c->listarPersona()<<std::endl; delete="" c;="" c="nullptr;" delete="" p1;="" p1="nullptr;" delete="" p2;="" p2="nullptr;" }="">

Pmlkratos • 3 years ago

muchas gracias

DiegoCuiti • 1 year ago

Hola !!! esta es mi resolución. Lo que veo es que podría haber echo una clase base para todos las clases de aeronaves y me ahorraba un montón, ja.
pero lo que interesa saber es si mis clases compuestas están bien inicializadas o tendría que haber usado los constructores de las clases compositoras como se muestra en el ejemplo???

#include<iostream>
using namespace std;

#define False 0
#define True 1

class Turbinas
{
public:
int num_turbinas = 0;
Turbinas(int n):num_turbinas(n){}
};

class Helices
{
public:
int num_helices = 0;
Helices(int n):num_helices(n){}
};

class TrendeAterrizaje
{
public:
int num_neumaticos = 0;
int num_amortiguadores = 0;
bool fijo_retractil = False;
TrendeAterrizaje(int a, int b, bool c):num_neumaticos(a), num_amortiguadores(b), fijo_retractil(c){}
};

class Alas
{
public:
int num_alas_frente = 0;
int num_alas_cola = 0;
Alas(int m, int n):num_alas_frente(m), num_alas_cola(n){}
};

class Cubierta
{
public:
bool cabina_tripulacion = False;
bool cabina_vuelo = False;
bool sistema_emergencia = False;
int num_combustible = 0;
int num_asientos = 0;
bool cocineta = 0;
int num_banios = 0;
int num_salidas = 0;
Cubierta(bool a, bool b, bool c, int m, int n, bool x, int y, int z)
{
cabina_tripulacion = a;
cabina_vuelo = b;
sistema_emergencia = c;
num_combustible = m;
num_asientos = n;
cocineta = x;
num_banios = y;
num_salidas = z;
}
};

class Aeroplano
{
public:
Turbinas turbinas;
Helices helices;
TrendeAterrizaje tren;
Alas alas;
Cubierta cubierta;
Aeroplano(const Turbinas& _turbinas,const Helices& _helices,const TrendeAterrizaje& _tren,const Alas& _alas,const Cubierta& _cubierta):
turbinas(_turbinas),helices(_helices),tren(_tren),alas(_alas),cubierta(_cubierta){};
void printInfo(){
cout << "----Aeroplano----" << endl;
cout << "Turbinas :(" << turbinas.num_turbinas <<")"<< endl;
cout << "Helices :(" << helices.num_helices <<")"<< endl;

string tipo = tren.fijo_retractil ? "Fijo":"Retractil" ;

cout << "Tren de Aterrizaje:(" << "Neumaticos: " << tren.num_neumaticos << " ,Amortiguadores: " << tren.num_amortiguadores <<
", Tipo: " << tipo << ")"<< endl;
cout << "Alas :(" <<"Alas frontales: "<< alas.num_alas_frente << " ,Alas de cola: " << alas.num_alas_cola << ")"<< endl;

string cabinaTripulacion = cubierta.cabina_tripulacion ? "Cabina de Tripulación ,":"";
string cabinaVuelo = cubierta.cabina_vuelo ? "Cabina de vuelo ,":"";
string sistemaEmergencia = cubierta.sistema_emergencia ? "Sistema de Emergencia ,":"";
string cocina = cubierta.cocineta ? "Cocineta ,":"";

cout << "Cubierta :(" << cabinaTripulacion << cabinaVuelo << sistemaEmergencia << cocina
<< "Tanques de Combustible: " << cubierta.num_combustible << " ,Asientos: " << cubierta.num_asientos
<< " ,Banios: " << cubierta.num_banios << " ,Salidas: " << cubierta.num_salidas << ")" << endl;
cout << endl;

}

};

class Jet
{
public:
Turbinas turbinas;
Helices helices;
TrendeAterrizaje tren;
Alas alas;
Cubierta cubierta;
Jet(const Turbinas& _turbinas,const Helices& _helices,const TrendeAterrizaje& _tren,const Alas& _alas,const Cubierta& _cubierta):
turbinas(_turbinas),helices(_helices),tren(_tren),alas(_alas),cubierta(_cubierta){};
void printInfo(){
cout << "----Jet----" << endl;
cout << "Turbinas :(" << turbinas.num_turbinas <<")"<< endl;
cout << "Helices :(" << helices.num_helices <<")"<< endl;

string tipo = tren.fijo_retractil ? "Fijo":"Retractil" ;

cout << "Tren de Aterrizaje:(" << "Neumaticos: " << tren.num_neumaticos << " ,Amortiguadores: " << tren.num_amortiguadores <<
", Tipo: " << tipo << ")"<< endl;
cout << "Alas :(" <<"Alas frontales: "<< alas.num_alas_frente << " ,Alas de cola: " << alas.num_alas_cola << ")"<< endl;

string cabinaTripulacion = cubierta.cabina_tripulacion ? "Cabina de Tripulación ,":"";
string cabinaVuelo = cubierta.cabina_vuelo ? "Cabina de vuelo ,":"";
string sistemaEmergencia = cubierta.sistema_emergencia ? "Sistema de Emergencia ,":"";
string cocina = cubierta.cocineta ? "Cocineta ,":"";

cout << "Cubierta :(" << cabinaTripulacion << cabinaVuelo << sistemaEmergencia << cocina
<< "Tanques de Combustible: " << cubierta.num_combustible << " ,Asientos: " << cubierta.num_asientos
<< " ,Banios: " << cubierta.num_banios << " ,Salidas: " << cubierta.num_salidas << ")" << endl;
cout << endl;

}
};

class Dron
{
public:
Turbinas turbinas;
Helices helices;
TrendeAterrizaje tren;
Alas alas;
Cubierta cubierta;
Dron(const Turbinas& _turbinas,const Helices& _helices,const TrendeAterrizaje& _tren,const Alas& _alas,const Cubierta& _cubierta):
turbinas(_turbinas),helices(_helices),tren(_tren),alas(_alas),cubierta(_cubierta){};
void printInfo(){
cout << "----Dron----" << endl;
cout << "Turbinas :(" << turbinas.num_turbinas <<")"<< endl;
cout << "Helices :(" << helices.num_helices <<")"<< endl;

string tipo = tren.fijo_retractil ? "Fijo":"Retractil" ;

cout << "Tren de Aterrizaje:(" << "Neumaticos: " << tren.num_neumaticos << " ,Amortiguadores: " << tren.num_amortiguadores <<
", Tipo: " << tipo << ")"<< endl;
cout << "Alas :(" <<"Alas frontales: "<< alas.num_alas_frente << " ,Alas de cola: " << alas.num_alas_cola << ")"<< endl;

string cabinaTripulacion = cubierta.cabina_tripulacion ? "Cabina de Tripulación ,":"";
string cabinaVuelo = cubierta.cabina_vuelo ? "Cabina de vuelo ,":"";
string sistemaEmergencia = cubierta.sistema_emergencia ? "Sistema de Emergencia ,":"";
string cocina = cubierta.cocineta ? "Cocineta ,":"";

cout << "Cubierta :(" << cabinaTripulacion << cabinaVuelo << sistemaEmergencia << cocina
<< "Tanques de Combustible: " << cubierta.num_combustible << " ,Asientos: " << cubierta.num_asientos
<< " ,Banios: " << cubierta.num_banios << " ,Salidas: " << cubierta.num_salidas << ")" << endl;
cout << endl;

}
};

int main()
{

/*
2 hélices frontales.
El tren de aterrizaje es fijo, tiene 3 neumáticos y 3 amortiguadores.
2 alas frontales y 3 alerones de cola.
La cubierta cuenta con cabina de vuelo, cabina de tripulación, 2 tanques de combustible, 15 asientos, un baño y 2 puertas de salida.
*/
Aeroplano airplane(Turbinas(0),Helices(2),TrendeAterrizaje(3,3,false),Alas(2,3),Cubierta(true,true,false,2,15,false,1,2));
/*
4 turbinas.
El tren de aterrizaje es retractil, tiene 6 neumáticos y 6 amortiguadores.
2 alas frontales y 5 alerones en la cola.
La cubierta cuenta con cabina de vuelo, cabina de tripulación, sistema de emergencia, 10 tanques de combustible, 150 asientos,
una cocineta, 2 baños y 6 salidas.
*/
Jet boeing777(Turbinas(4),Helices(0),TrendeAterrizaje(6,6,true),Alas(2,5),Cubierta(true,true,true,10,150,false,2,6));
Dron vigilanteNoTripulado(Turbinas(0),Helices(4),TrendeAterrizaje(0,0,false),Alas(0,0),Cubierta(false,false,false,0,0,false,0,0));

airplane.printInfo();
boeing777.printInfo();
vigilanteNoTripulado.printInfo();

return 0;
}

Zorbas • 1 year ago

Para los que estaban buscando el resultado del ejercicio 3 lo dejo acá mismo, ojala le sirva a alguien


#include<iostream>
using namespace std;

#define False 0
#define True 1

class Turbinas{
public:
int num_turbinas = 0;
Turbinas(int n) :num_turbinas(n) {}
};

class Helices{
public:
int num_helices = 0;
Helices(int n) :num_helices(n) {}
};

class TrendeAterrizaje{
public:
int num_neumaticos = 0;
int num_amortiguadores = 0;
bool fijo_retractil = False;
TrendeAterrizaje(int a, int b, bool c) :num_neumaticos(a), num_amortiguadores(b), fijo_retractil(c) {}
};

class Alas{
public:
int num_alas_frente = 0;
int num_alas_cola = 0;
Alas(int m, int n) :num_alas_frente(m), num_alas_cola(n) {}
};

class Cubierta{
public:
bool cabina_tripulacion = False;
bool cabina_vuelo = False;
bool sistema_emergencia = False;
int num_combustible = 0;
int num_asientos = 0;
bool cocineta = False;
int num_banios = 0;
int num_salidas = 0;
Cubierta(bool a, bool b, bool c, int m, int n, bool x, int y, int z)
{
cabina_tripulacion = a;
cabina_vuelo = b;
sistema_emergencia = c;
num_combustible = m;
num_asientos = n;
cocineta = x;
num_banios = y;
num_salidas = z;
};
};

class Aeroplano {
private:
Helices helice;
TrendeAterrizaje tren;
Alas alas;
Cubierta cubierta;
public:
Aeroplano(const Helices& var1, const TrendeAterrizaje& var2, const Alas& var3, const Cubierta& var4) :
helice(var1.num_helices),
tren(var2.num_neumaticos, var2.num_amortiguadores, var2.fijo_retractil),
alas(var3.num_alas_frente, var3.num_alas_cola),
cubierta(var4.cabina_tripulacion, var4.cabina_vuelo, False, var4.num_combustible, var4.num_asientos, False, var4.num_banios, var4.num_salidas){}
void printInfo();
};

class Jet {
private:
Turbinas turbinas;
TrendeAterrizaje tren;
Alas alas;
Cubierta cubierta;
public:
Jet (const Turbinas& var1, const TrendeAterrizaje& var2, const Alas& var3, const Cubierta& var4) :
turbinas(var1.num_turbinas),
tren(var2.num_neumaticos, var2.num_amortiguadores, var2.fijo_retractil),
alas(var3.num_alas_frente, var3.num_alas_cola),
cubierta(var4.cabina_tripulacion, var4.cabina_vuelo, var4.sistema_emergencia, var4.num_combustible, var4.num_asientos, var4.cocineta, var4.num_banios, var4.num_salidas) {}
void printInfo();
};

class Dron {
private:
Helices helice;
public:
Dron (const Helices& var1) : helice(var1.num_helices) {}
void printInfo();
};

void Dron::printInfo() {
cout << "----------Info De Dron-------------" << endl;
cout << "Numero de helices: " << helice.num_helices << endl;
}

int main(){
Aeroplano airplane(Helices(2), TrendeAterrizaje(3, 3, True), Alas(2, 3), Cubierta(True, True, False, 2, 15, False, 1, 2));
Jet boeing777(Turbinas(4), TrendeAterrizaje(6, 6, False), Alas(2, 5), Cubierta(True, True, True, 10, 150, True, 2, 6));
Dron vigilanteNoTripulado(Helices(4));

//airplane.printInfo();
//boeing777.printInfo();
vigilanteNoTripulado.printInfo();

return 0;
}

Todos los printInfo son iguales que el mostrado en acá.

Anonymous • 1 year ago

le falta todo el print de las partes del jet y todo el resto.

EdwinRivera • 1 year ago

alguien lo logro hacer, m gustaria ver el codigo por favor

Anonymous • 1 year ago

Nesecitamos un heroe que resuelva estos ejercicios por favor"!

Edith • 3 years ago

Quisiera saber el codigo de sobreescritura de la clase Ave y Pez