EJERCICIO 4 (Eudis Serrano)
#include <iostream> #include <iomanip> #include <cmath> #include <ctime> using namespace std; const double CantidadTanque = 500, PrecioOmision = 1.80; class Bomba{ private: double Tanque, Precio; public: Bomba (double = PrecioOmision, double = CantidadTanque); void ObtenerValores(); double Solicitud (double); double PrecioxGalon (int); }; class Persona{ public: Persona(){ srand(time(NULL)); } int llegada(){ return (1+rand()%15); } int galones(){ return (3+rand()%18); } }; Bomba::Bomba(double PrecioHoy, double InicioTanque){ Tanque = InicioTanque; Precio = PrecioHoy; } void Bomba::ObtenerValores(){ cout<<"El tanque de gasolina tiene "<<Tanque<<" galones de gasolina" <<endl<<"El precio por galon es "<<setiosflags(ios::showpoint)<<setprecision(2)<<fixed<<Precio<<" Dolares"<<endl; } double Bomba::Solicitud(double Surtir){ double surtido; if (Tanque>= Surtir){ surtido = Surtir; Tanque -= Surtir; cout<<endl<<"El tanque de gasolina aun tiene "<<Tanque<<" Galones"; } else { surtido = Tanque; Tanque -= surtido; cout<<Surtir<<" galones solicitados "<<endl<<surtido<<" galones surtidos"<<endl<<Tanque<<" galones restantes" <<endl<<"El precio total es: "<<setprecision(2)<<(surtido*Precio)<<endl; } return Tanque; } double Bomba::PrecioxGalon (int Gg){ int Galon; Galon = Gg; cout<<"El cliente ha realizado un pago de "<<Precio*Gg<<" Dolares"; return (Precio*Gg); } int main(){ Bomba A (2.0, 300); Persona C1; int TiempoTotal = 0, Solicitud = 1, TiempoInactivo, TiempoInactivoCuenta, Simulacion = 30, Galones_Vendidos = 0; double DineroRecolectado = 0.0, TanqueGasolina = 0.0, CantidadSolicitar; cout<<"inicio de simulacion de: "<<Simulacion<<" minutos"<<endl; A.ObtenerValores(); TiempoInactivo = C1.llegada(); TiempoTotal += TiempoInactivo; cout<<endl; cout<<"____________________________________________-Inicio-____________________________________________"; while(TiempoInactivoCuenta<= Simulacion && Solicitud <= 5){ cout<<endl<<endl<<" -... esperando cliente ...-"<<endl; CantidadSolicitar = C1.galones(); Galones_Vendidos += CantidadSolicitar; TiempoInactivo = C1.llegada(); cout<<"Luego de "<<TiempoInactivo<<" minutos llega el cliente numero "<<Solicitud<<" y realiza una solicitud de "<<CantidadSolicitar<<" galones de gasolina"<<endl; DineroRecolectado += A.PrecioxGalon(CantidadSolicitar); cout<<endl<<"Hastan el momento hemos recolectado "<<DineroRecolectado<<" Dolares"; TanqueGasolina= A.Solicitud(double(CantidadSolicitar)); TiempoInactivoCuenta += TiempoInactivo; TiempoTotal += TiempoInactivo+2; cout<<endl<<"El tiempo inactivo es: "<<TiempoInactivoCuenta<<" minutos"<<endl<<"Llevamos "<<TiempoTotal<<" minutos dentro de la simulacion \n(teniendo en cuenta que cada servicio tiene una duracion de 2 minutos)"<<endl; Solicitud++; } cout<<""; if(TiempoInactivoCuenta >= Simulacion){ cout<<endl<<endl<<"___________-El tiempo inactivo supero los 30 min, esta simulacion ha sido finalizada-___________"; } else { cout<<endl<< "_-El numero de solicitudes ha alcanzado el limite propuesto, esta simulacion ha sido finalizada-_"; } cout<<endl<<endl<<"------------------- RESUMEN --------------------"<<endl<<"| "<<setw(5)<<Solicitud-1<<" Clientes recibidos |" <<endl<<"| "<<setw(5)<<Galones_Vendidos<<" Galones vendidos |"<<endl<<"| "<<setw(6)<<DineroRecolectado<<" Dinero recolectado |" <<endl<<"| "<<setw(5)<<TanqueGasolina<<" Galones de gasolina dentro del tanque |"<<endl<<"| "<<setw(5)<<TiempoTotal<<" Minutos dentro de la simulacion |" <<endl<<"------------------------------------------------"<<endl; return 0; }
Leave a Comment