Ejercicio Bomba
unknown
c_cpp
a year ago
2.9 kB
11
Indexable
#include <iostream>
#include <iomanip>
#include <ctime>
#include <cmath>
using namespace std;
const double CANTIDAD_EN_TANQUE = 500; // galones iniciales en el tanque
const double PRECIO_OMISION = 1.80; // precio por galC3n
const double TIEMPOSIM = .5; // tiempo de la simulaciC3n en horas
const int MINUTOS = 60; // nC:mero de minutos en una hora
class Bomba {
// secciC3n de declaraciC3n de datos
private:
double cantEnTanque;
double precio;
// declaraciones de mC)todos
public:
Bomba(double = PRECIO_OMISION, double = CANTIDAD_EN_TANQUE); // constructor
void obtenerValores();
void solicitud(double);
};
//declaraciC3n e implementaciC3n de clase
class Cliente {
public:
Cliente() {
srand(time(NULL));
};
int llegada() {
return(1 + rand() % 15);
};
int galones() {
return(3 + rand() % 18);
};
};
// secciC3n de implementaciC3n de mC)todos
Bomba::Bomba(double precioHoy, double cantidadEnTanque) {
cantEnTanque = cantidadEnTanque;
precio = precioHoy;
}
void Bomba::obtenerValores() {
cout << "El tanque de gasolina tiene " << cantEnTanque << " galones de gasolina." << endl;
cout << "El precio por galC3n de gasolina es $" << setiosflags(ios::showpoint)
<< setprecision(2) << setiosflags(ios::fixed) << precio << endl;
}
void Bomba::solicitud(double cantSurt) {
double surtida;
if (cantEnTanque >= cantSurt)
surtida = cantSurt;
else
surtida = cantEnTanque;
cantEnTanque -= surtida;
cout << cantSurt << " galones fueron solicitados " << endl;
cout << surtida << " galones fueron surtidos" << endl;
cout << cantEnTanque << " galones quedan en el tanque" << endl;
cout << "El precio total es $" << setiosflags(ios::showpoint)
<< setprecision(2) << (surtida * precio) << endl;
return;
}
int main() {
Bomba a(2.00, 300); // Declara 1 objeto de tipo Bomba
Cliente b; // Declara un objeto de tipo Cliente
int tiempoTotal = 0;
int tiempoInact;
int cantSolicitada;
int MinutosSim; // tiempo de la simulaciC3n en minutos
MinutosSim = TIEMPOSIM * MINUTOS;
cout << "\nInicio de una simulaciC3n nueva, el tiempo de simulaciC3n es "
<< MinutosSim << " minutos " << endl << endl;
a.obtenerValores();
// obtener la primera llegada
tiempoInact = b.llegada();
tiempoTotal += tiempoInact;
while (tiempoTotal <= MinutosSim) {
cout << "\nEl tiempo inactiva es " << tiempoInact << " minutos" << endl
<< "y llevamos " << tiempoTotal
<< " minutos en la simulaciC3n." << endl;
cantSolicitada = b.galones();
a.solicitud(double(cantSolicitada));
// obtener la siguiente llegada
tiempoInact = b.llegada();
tiempoTotal += tiempoInact;
}
cout << "\nEl tiempo inactiva es " << tiempoInact << " minutos." << endl
<< "Como el tiempo total ahora excede el tiempo de la simulaciC3n, " << endl
<< "este ejercicio de simulaciC3n termina." << endl;
return 0;
}Editor is loading...
Leave a Comment