Dev - C++ - me ayudan a encontrar mi error?

 
Vista:
Imágen de perfil de hazael

me ayudan a encontrar mi error?

Publicado por hazael (21 intervenciones) el 26/07/2021 08:00:20
/*Un vagón de un tren tiene 40 asientos, cada uno de ellos puede estar ocupado o vacante. El vagón puede ser de primera o segunda clase. Cree una clase Carro para representar esta información. En el constructor se supondrá que todos los asientos inicialmente están vacantes. Escriba los métodos apropiados de acceso y actualización y un método que vaya ocupando los asientos de la siguiente forma: si el vagón es de primera hay un 10% de probabilidad que los asientos sean ocupados; si es de segunda clase hay un 40% de probabilidad que los asientos sean ocupados. Escriba una función main() que contenga un objeto Carro, llénelo aleatoriamente e imprima el estado de cada asiento.*/



#include <iostream>
using std::cout;
using std::endl;

class carro {
bool asientos [40];
bool primera;
public:
carro() {};
carro (bool prim);
bool getAsiento(int ind) {return asientos[ind]; }
bool getPrimera() {return primera; }
void setPrimera(bool p) {primera = p; }
void ocupar();
};
carro::carro(bool prim){
primera = prim;
for (int i = 0; i < 40;i++)asientos[i] = 0;
}

void carro::ocupar(){
double probabilidad = primera ? 0.1 : 0.4;
for (int i = 0; i < 40; i++) asientos[i] = double (rand())/RAND_MAX < probabilidad;
}
class train {
carro * carros;
int numPri;
int numSeg;
char * salida;
char * destino;
int precioPrimera;
int precioSegunda;
public:
train(int nP, int nS,char * sal,char * dest,int pP, int pS):
numPri(nP),numSeg(nS),salida(sal),destino(dest),precioPrimera(pP),precioSegunda(pS){
carros = new carro[nP + nS];
for (int i = 0;i < nP +nS;i++) carros[i].setPrimera(i < nP);
};
~train() {delete [] carros; }
carro getcarriage(int i) {return carros[i];}
void llenar();
int totalventas();
};

int train::totalventas() {
int acum = 0;
for(int i = 0; i < numPri + numSeg;i++)
if (carros[i].getPrimera())
for (int j= 0; j < 40; j++)
acum += carros[i].getAsiento(j) * precioPrimera;
else for (int j = 0; j < 40;j++)
acum += carros[i].getAsiento(j) * precioSegunda;
return acum;
}
void train::llenar(){
for(int i = 0; i < numPri + numSeg;i++)
carros[i].ocupar();

}
int main(){
train t(4,7,"Hazael","Lilia",20,10);
t.llenar();
cout<<endl<<endl<<t.totalventas()<<endl;
}
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