-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcarritosalida.h
69 lines (55 loc) · 1.91 KB
/
carritosalida.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
#ifndef CARRITOSALIDA_H
#define CARRITOSALIDA_H
#include "prototipos.h"
#include "monticulosempaques.h"
#include "almacenterminal.h"
#include "empacadora.h"
struct CarritoSalida{
QString nombrePaquete;
float tiempoViaje;
int capacidadMaxima;
int cantidadTransportada;
bool estaEntregando;
NodoMonticulo* monticuloEmpacadora;
NodoMonticulo* monticuloAlmacen;
CarritoSalida(QString pNombre, NodoMonticulo* pMonticuloEmpacadora, NodoMonticulo* pMonticuloAlmacen){
nombrePaquete = pNombre;
tiempoViaje = 0.0;
capacidadMaxima = 0.0;
cantidadTransportada = 0.0;
estaEntregando = false;
monticuloEmpacadora = pMonticuloEmpacadora;
monticuloAlmacen = pMonticuloAlmacen;
}
/*
* Reestablece los parametros por defecto de la estructura.
*/
void resetearCarritoSalida(){
tiempoViaje = 0.0;
capacidadMaxima = 0.0;
cantidadTransportada = 0.0;
estaEntregando = false;
}
/*
* Carga el carrito con el correspondiente paquete de galletas y reduce la cantidad generada en los monticulos de la empacadora
*/
void cargarCarrito(){
if(monticuloEmpacadora->cantidadPaquetes + cantidadTransportada > capacidadMaxima){
cantidadTransportada += capacidadMaxima - cantidadTransportada;
monticuloEmpacadora->cantidadPaquetes -= capacidadMaxima - cantidadTransportada;
} else {
cantidadTransportada += monticuloEmpacadora->cantidadPaquetes;
monticuloEmpacadora->cantidadPaquetes = 0;
}
}
/*
* Permite al carrito descargar su capacidad en el correspondiente monticulo del almacen terminal
*/
void realizarEntrega(){
if(!monticuloEmpacadora->estaLleno){
monticuloAlmacen->cantidadPaquetes += cantidadTransportada;
cantidadTransportada = 0;
}
}
};
#endif // CARRITOSALIDA_H