Ejercicio Bomba
#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; }
Leave a Comment