Vous êtes sur la page 1sur 9

Instituto Politécnico Nacional

Escuela Superior de
Ingeniería Mecánica y
Eléctrica (ESIME)
Unidad Zacatenco
Ingeniería en Comunicaciones y Electrónica
“ICE”

Alumnos: Boleta:

Abdón Márquez Efrén 2018306991

Coello Ortega Fernando 2011080250

Gregorio Cabrera Luis Gerardo 2019300454

Profesor: Cruz Zamora Oscar

Grupo: 2CV6

Tema: Proyecto final Bomba de Gas por Galón.


Fecha de entrega: 23 de mayo del 2019
Problema
Se quiere solucionar de cómo funciona una válvula de gas mediante clases que sean
separadas con el programa principal además de un menú para que se seleccione lo que
se requiera, para hacer la simulación de la bomba de gas.

Primero se tuvo que hacer la clase bomba que fue la siguiente:


#include <iostream> // sección de implementación de métodos

#include <iomanip> Bomba::Bomba(double precioHoy, double


cantidadEnTanque)
#include <ctime>
{
#include <vector>
cantEnTanque = cantidadEnTanque;
# include<windows.h>//sleep
precio = precioHoy;

}
#ifndef BOMBA_H
void Bomba::obtenerValores()
#define BOMBA_H
{

cout << "\n\t\t\tEl tanque de gasolina tiene " <<


using namespace std; cantEnTanque << " galones de gasolina. "<< endl;

const double CANTIDAD_EN_TANQUE = 500; // galones cout << "\n\t\t\tEl precio por galon de gasolina es $" <<
iniciales en el tanque setiosflags

const double PRECIO_OMISION = 1.80; // precio por galón (ios::showpoint)

class Bomba << setprecision(2) << setiosflags(ios::fixed) << precio <<


endl;
{
}
// sección de declaración de datos
void Bomba::solicitud(double cantSurt)
private:
{
double cantEnTanque;
double surtida = 0;
double precio;
if (cantEnTanque >= cantSurt)
// declaraciones de métodos
surtida = cantSurt;
public:
else
Bomba(double = PRECIO_OMISION, double =
CANTIDAD_EN_TANQUE); // constructor surtida = cantEnTanque;

void obtenerValores(); cantEnTanque -= surtida;

void solicitud(double); cout <<"\n\t\t\t"<< cantSurt << " galones fueron solicitados "
<< endl;
};
Sleep(15000);
cout <<"\n\t\t\t"<< surtida << " galones fueron surtidos" << mes.push_back("Febrero");
endl;
mes.push_back("Marzo");
cout <<"\n\t\t\t"<< cantEnTanque << " galones quedan en el
tanque" << endl; mes.push_back("Abril");

cout << "\n\t\t\tEl precio total es $" << mes.push_back("Mayo");


setiosflags(ios::showpoint)
mes.push_back("Junio");
<< setprecision(2) << (surtida * precio) << endl;
mes.push_back("Julio");

mes.push_back("Agosto");
cout<<"\n\t\t\tHorario de compra"<<endl;
mes.push_back("Septiembre");

mes.push_back("Octubre");
/* fecha/hora actual basado en el sistema actual */
mes.push_back("Noviembre");
time_t now = time(0);
mes.push_back("Diciembre");

/* Objeto de una estructura tm con fecha/hora local */


int year = 1900 + time->tm_year;
tm * time = localtime(&now);

//Formato=hoy miercoles, 15 de mayo del 2019


vector<string> dia_semana;
cout << "\n\t\t\tHoy " << dia_semana[time->tm_wday] << ", ";
dia_semana.push_back("Domingo");
cout << time->tm_mday << " de " << mes[time->tm_mon] <<
dia_semana.push_back("Lunes"); " del " << year << endl;

dia_semana.push_back("Martes"); cout <<"\n\t\t\t"<< time->tm_hour << ":" << time->tm_min <<


":" << time->tm_sec << endl;
dia_semana.push_back("Miercoles");
return;
dia_semana.push_back("Jueves");
}
dia_semana.push_back("Viernes");

dia_semana.push_back("Sabado");
#endif

vector<string> mes;

mes.push_back("Enero");

Que tiene varis funciones como la cantidad de gas y el precio que se gasta con la
cantidad de gas, tienen lo que surten lo que tiene lo que se gasta y la fecha y hora
exacta de cuando se hizo el tanque y el total de precio que les queda ahí.

también se hizo la clase cliente


#include<stdlib.h>//se ocupa "control de #endif#include<stdlib.h>//se ocupa "control
procesos" de la memoria de procesos" de la memoria

#include<ctime>//se ocupa para generar #include<ctime>//se ocupa para generar


numeros aleatorios srand numeros aleatorios srand

#include <cmath> #include <cmath>

#ifndef CLIENTE_H #ifndef CLIENTE_H

#define CLIENTE_H #define CLIENTE_H

using namespace std; using namespace std;

//declaración e implementación de clase //declaración e implementación de clase

class Cliente class Cliente

{ {

public: public:

Cliente() {srand(time(NULL));}; Cliente() {srand(time(NULL));};

int llegada() {return(1 + rand() % 15);}; int llegada() {return(1 + rand() % 15);};

int galones() {return(3 + rand() % 18);}; int galones() {return(3 + rand() % 18);};

}; };

#endif

Que se tiene lo que se llega d los galones que se están utilizando y/o sacando de la
válvula de gas. Lo que se quiere llegar es que se haga cuanto tiempo se tarda el
programa en hacer la simulación de válvula de gas mediante cuanto se sacan y les
cobran y ver qué día y hora se sacó de ahí.
Desarrollo del problema
Crear una clase Bomba y cliente para que funcione el programa

Establecer el tiempo total en 0

Mientras el tiempo total no exceda el tiempo de la simulación

Desplegar el tiempo total

Obtener una solicitud de gasolina del Cliente

Activar la Bomba con la solicitud

Sumar el tiempo de llegada al tiempo total

Desplegar un mensaje indicando que la simulación terminó

Codificar solución

Así se logra quedar el programa principal con las dos clases aparte del programa

# include "Bomba.h"

# include "Cliente.h" Cliente b; // declara 1 objeto de tipo Cliente

# include<windows.h>

# include <iostream> int tiempoTotal = 0;

int tiempoInact=0;

using namespace std; int cantSolicitada=0;

int MinutosSim=0; // tiempo de la simulación en minutos

const int MINUTOS = 60;

cout<<"\n\t\t\t\t\t\tProyecto:Valvula de Gas\n\t\t";

int main() cout<<"\n\t\t\t\t\t\tIntroduce el tiempodonde estara el


servicio la maquina\n\t\t";
{
cout <<" Menu:\n\t\t\t";

cout<<"1 Para 6 Minutos de llenado\n\t\t\t";


SetConsoleTitle("Proyecto:Valvula de Gas");
cout<<"2 Para 12 minutos de llenado\n\t\t\t";
system ("color 4f");
cout<<"3 Para media hora de llenado\n\t\t\t";

cout<<"4 Para una hora de llenado\n\t\t\t";


// esperando a que se almacennen datos
cout<<"5 Para un dia de llenado\n\t\t\t";
double CANT_EN_TANQUE=0;
cout<<"6 Para un mes de llenado\n\t\t\t";
double PRECIO_HOY=0;
cout<<"7 Para un anio de llenado\n\t\t\t";
double TIEMPOSIM=0;
cout<<"Introduce tu opcion: ";cin>>TIEMPOSIM; << "\n\t\t\tComo el tiempo total ahora excede el tiempo
de la simulacion, " << endl
cout <<"\n\t\t\tIntroduce la cantidad de galones que te
llenara la pipa: ";cin>>CANT_EN_TANQUE; << "\n\t\t\teste ejercicio de simulacion termina." << endl;

cout <<"\n\t\t\tIntroduce el precio por de galon: break;


";cin>>PRECIO_HOY;
}
system("cls");
else
Bomba a(PRECIO_HOY,CANT_EN_TANQUE); // declara
1 objeto de tipo Bomba {

//Bomba a(CANT_EN_TANQUE,PRECIO_HOY); Sleep(10000);

//Bomba a(2.00,3000); cout << "\n\n\n\t\t\tEl tiempo inactiva es " << tiempoInact
<< " minutos" << endl;
MinutosSim = TIEMPOSIM * MINUTOS;
cout<<"\n\t\t\ty llevamos " << tiempoTotal<<" minutos en
la simulacion." << endl;

cout <<"\n\t\t\t\t\tMenu de Maquina: "<<endl; cantSolicitada = b.galones();

cout << "\n\t\t\tInicio de una simulacion nueva"<<"\n\t\t\tEl a.solicitud(double(cantSolicitada));


tiempo de simulacion es "

<< MinutosSim << " minutos" << endl;


}
a.obtenerValores();
}while (1); // siempre verdadero
do

tiempoInact = b.llegada();

tiempoTotal += tiempoInact;
cout<<"\n\n\t\t\tFin de la Simulacion\n"<<endl;
if (tiempoTotal > (TIEMPOSIM * MINUTOS))

{
system("pause");
cout << "\n\n\t\t\tEl tiempo inactiva es " << tiempoInact
<< " minutos." << endl return 0;

Y corre de la siguiente forma correcta:


BIBLIOGRAFIAS

Gary J. Bronson, C++ para ingeniería y ciencia, Segunda edición, CENGAGE Learning, Pagina 581.

Vous aimerez peut-être aussi