Sunteți pe pagina 1din 13

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)
Programación Orientada a Objetos

Grupo: 2CV4

Alumno: Oronzor Montes Manases Leonel

Profesor: Cruz Zamora Oscar


Nombre del reporte: Proyecto Final: Bomba
de Gas por Galón.

Entrega: 14/05/18
INSTITUTO POLITECNICO NACIONAL MANASES LEONEL
ESIME UNIDAD ZACATENCO ORONZOR MONTES

Bomba.h
#include <iostream> // sección de implementación de
#include <iomanip> métodos
#include <ctime> Bomba::Bomba(double precioHoy,
#include <vector> double cantidadEnTanque)
# include<windows.h>//sleep {
cantEnTanque = cantidadEnTanque;
#ifndef BOMBA_H precio = precioHoy;
#define BOMBA_H }
void Bomba::obtenerValores()
using namespace std; {
const double CANTIDAD_EN_TANQUE cout << "\n\t\t\tEl tanque de gasolina
= 500; // galones iniciales en el tanque tiene " << cantEnTanque << " galones
const double PRECIO_OMISION = de gasolina. "<< endl;
1.80; // precio por galón cout << "\n\t\t\tEl precio por galon de
class Bomba gasolina es $" << setiosflags
{ (ios::showpoint)
// sección de declaración de datos << setprecision(2) <<
private: setiosflags(ios::fixed) << precio << endl;
double cantEnTanque; }
double precio; void Bomba::solicitud(double cantSurt)
// declaraciones de métodos {
public: double surtida = 0;
Bomba(double = PRECIO_OMISION, if (cantEnTanque >= cantSurt)
double = CANTIDAD_EN_TANQUE); // surtida = cantSurt;
constructor else
void obtenerValores(); surtida = cantEnTanque;
void solicitud(double); cantEnTanque -= surtida;
}; cout <<"\n\t\t\t"<< cantSurt << " galones
fueron solicitados " << endl;
2018-B BOLETA: 2015010782
INSTITUTO POLITECNICO NACIONAL MANASES LEONEL
ESIME UNIDAD ZACATENCO ORONZOR MONTES
Sleep(15000); vector<string> mes;
cout <<"\n\t\t\t"<< surtida << " galones mes.push_back("Enero");
fueron surtidos" << endl; mes.push_back("Febrero");
cout <<"\n\t\t\t"<< cantEnTanque << " mes.push_back("Marzo");
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) mes.push_back("Julio");
<< endl; mes.push_back("Agosto");
mes.push_back("Septiembre");
cout<<"\n\t\t\tHorario de mes.push_back("Octubre");
compra"<<endl; mes.push_back("Noviembre");
mes.push_back("Diciembre");
/* fecha/hora actual basado en el
sistema actual */ int year = 1900 + time->tm_year;
time_t now = time(0);
//Formato=hoy miercoles, 27 de mayo
/* Objeto de una estructura tm con del 2015
fecha/hora local */ cout << "\n\t\t\tHoy " <<
tm * time = localtime(&now); dia_semana[time->tm_wday] << ", ";
cout << time->tm_mday << " de " <<
vector<string> dia_semana; mes[time->tm_mon] << " del " << year
dia_semana.push_back("Domingo"); << endl;
dia_semana.push_back("Lunes"); cout <<"\n\t\t\t"<< time->tm_hour << ":"
dia_semana.push_back("Martes"); << time->tm_min << ":" << time->tm_sec
dia_semana.push_back("Miercoles"); << endl;
dia_semana.push_back("Jueves"); return;
dia_semana.push_back("Viernes"); }
dia_semana.push_back("Sabado");
#endif

2018-B BOLETA: 2015010782


INSTITUTO POLITECNICO NACIONAL MANASES LEONEL
ESIME UNIDAD ZACATENCO ORONZOR MONTES

Cliente.h
#include<stdlib.h>//se ocupa "control de procesos" de la memoria
#include<ctime>//se ocupa para generar numeros aleatorios srand
#include <cmath>

#ifndef CLIENTE_H
#define CLIENTE_H

using namespace std;


//declaración e implementación de clase
class Cliente
{
public:

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

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


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

#endif

2018-B BOLETA: 2015010782


INSTITUTO POLITECNICO NACIONAL MANASES LEONEL
ESIME UNIDAD ZACATENCO ORONZOR MONTES

Proyecto Final Propuesto.cpp


# include "Bomba.h"

# include "Cliente.h"

# include<windows.h>

# include <iostream>

using namespace std;

//const double TIEMPOSIM = 3;// tiempo de la simulación en horas

const int MINUTOS = 60; // número de minutos en una hora

//const double CANT_EN_TANQUE = 150; // galones en el tanque

//const double PRECIO_HOY = 2; // Precio por galon

int main()

SetConsoleTitle("Clases (Proyecto Final: Valvula de Gas )");

system ("color 4f");

// esperando a que se almacennen datos

double CANT_EN_TANQUE=0;

double PRECIO_HOY=0;

2018-B BOLETA: 2015010782


INSTITUTO POLITECNICO NACIONAL MANASES LEONEL
ESIME UNIDAD ZACATENCO ORONZOR MONTES
double TIEMPOSIM=0;

Cliente b; // declara 1 objeto de tipo Cliente

int tiempoTotal = 0;

int tiempoInact=0;

int cantSolicitada=0;

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

cout<<"\n\t\t\t\t\t\t\tMANASES LEONEL ORONZOR MONTES 2CV4 6/Mayo/2018


Version 1" <<endl;

cout<<"\n\t\t\tQUERIDO USUARIO EN CADA INSTRUCCION DESPUES DE LA


INTRODUCCION DE DATOS DE CLIK EN ENTER\n" <<endl;

cout<<"\n\t\t\tPARA SEGUIR LA SIGUIENTE FASE DEL PROGRAMA, GRACIAS\n"


<<endl;

cout <<"\n\t\t\tEste programa hace multitaras, Cobra conforme a los galones pedidos
por un cliente "<<endl;

cout <<"\n\t\t\tEs autonomo solo tu debes poner el numero de galones y el precio en


la maquina "<<endl;

cout <<"\n\t\t\tEs autonomo solo tu debes poner el numero de galones,el precio en la


maquina y"<<endl;

cout <<"\n\t\t\tel tiempo donde estara en servicio la maquina "<<endl;

cout <<"\n\t\t\t\t\tMenu de Usuario: "<<endl;

cout <<"\n\t\t\tIntroduce el tiempo donde estara en servicio la maquina: "<<endl;


2018-B BOLETA: 2015010782
INSTITUTO POLITECNICO NACIONAL MANASES LEONEL
ESIME UNIDAD ZACATENCO ORONZOR MONTES
cout <<"\n\t\t\tMenu:\n\t\t\t.1 para 6 Minutos\n\t\t\t.2 para 12 minutos\n\t\t\t.5 para
media hora\n\t\t\t1 para una hora\n\t\t\t24 para un dia\n\t\t\t744 para un mes\n\t\t\t8760
para un anio\n\t\t\tIntroduce tu opcion: ";cin>>TIEMPOSIM;

cout <<"\n\t\t\tIntroduce la cantidad de galones que te llenara la pipa:


";cin>>CANT_EN_TANQUE;

cout <<"\n\t\t\tIntroduce el precio por de galon: ";cin>>PRECIO_HOY;

system("cls");

Bomba a(PRECIO_HOY,CANT_EN_TANQUE); // declara 1 objeto de tipo Bomba

//Bomba a(CANT_EN_TANQUE,PRECIO_HOY);

//Bomba a(2.00,3000);

MinutosSim = TIEMPOSIM * MINUTOS;

cout <<"\n\t\t\t\t\tMenu de Maquina: "<<endl;

cout << "\n\t\t\tInicio de una simulacion nueva"<<"\n\t\t\tEl tiempo de simulacion es "

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

a.obtenerValores();

do

tiempoInact = b.llegada();

tiempoTotal += tiempoInact;

if (tiempoTotal > (TIEMPOSIM * MINUTOS))

cout << "\n\n\t\t\tEl tiempo inactiva es " << tiempoInact << " minutos." << endl

<< "\n\t\t\tComo el tiempo total ahora excede el tiempo de la simulacion, " << endl

2018-B BOLETA: 2015010782


INSTITUTO POLITECNICO NACIONAL MANASES LEONEL
ESIME UNIDAD ZACATENCO ORONZOR MONTES
<< "\n\t\t\teste ejercicio de simulacion termina." << endl;

break;

else

Sleep(10000);

cout << "\n\n\n\t\t\tEl tiempo inactiva es " << tiempoInact << " minutos" << endl;

cout<<"\n\t\t\ty llevamos " << tiempoTotal<<" minutos en la simulacion." << endl;

cantSolicitada = b.galones();

a.solicitud(double(cantSolicitada));

}while (1); // siempre verdadero

cout<<"\n\n\t\t\tIPN Mecanic Tu copiloto\n"<<endl;

cout<<"\n\n\t\t\tFin de la Simulacion\n"<<endl;

cout<<"\n\n\t\t\tCopyright © ® Oficial IPN 2015-2018- Copyright.mx"<<endl;

system("pause");

return 0;

2018-B BOLETA: 2015010782


INSTITUTO POLITECNICO NACIONAL MANASES LEONEL
ESIME UNIDAD ZACATENCO ORONZOR MONTES
Este es el Menú de Usuario donde tenemos para introducir los datos que nos
solicitan.

2018-B BOLETA: 2015010782


INSTITUTO POLITECNICO NACIONAL MANASES LEONEL
ESIME UNIDAD ZACATENCO ORONZOR MONTES
Se limpia la pantalla y entra al Menú de Maquina, aquí da el tiempo que estará
activa la maquina como el precio y galones que hay en la bomba, se espera
segundos para iniciar con el primer cliente que solicita una carga de galones.

Aquí tarda segundos para ser llenado el tanque y nuevamente es apagada la


bomba por segundos marcando nuevamente los galones que se solicita, en la
simulación se nota los segundos que toma para la solicitud y el llenado, se ven
los respectivos segundos en el tiempo final (Horario de compra).

2018-B BOLETA: 2015010782


INSTITUTO POLITECNICO NACIONAL MANASES LEONEL
ESIME UNIDAD ZACATENCO ORONZOR MONTES
Aquí se muestra toda la ejecución del programa del principio de operaciones en
el Menú de Maquina hasta el final de la simulación que es cuando se excede el
tiempo de operación en el código Proyecto Final Propuesto por la operación en
Bomba,h y Cliente.h.

2018-B BOLETA: 2015010782


INSTITUTO POLITECNICO NACIONAL MANASES LEONEL
ESIME UNIDAD ZACATENCO ORONZOR MONTES

2018-B BOLETA: 2015010782


INSTITUTO POLITECNICO NACIONAL MANASES LEONEL
ESIME UNIDAD ZACATENCO ORONZOR MONTES
BIBLIOGRAFIAS
 Gary J. Bronson, C++ para ingeniería y ciencia, Segunda edición,

CENGAGE Learning, Pagina 581.

2018-B BOLETA: 2015010782

S-ar putea să vă placă și