Está en la página 1de 8

Diagrama de

Estructuras

Julián Lojano
Stack Heap

Static

mSensor[ ]
Void leerSensor

Se crea una función que


permite leer los datos del
archivo sensor.csv

Matriz estática, por lo tanto


se almacena en el static.
Stack Heap

Static

mVehiculos[ ]
Void leerVehiculos

Se crea una función que


permite leer los datos del
archivo vehiculos.csv

Matriz estática, por lo tanto


se almacena en el static.
void enqueueUSO(USO **primero, USO
**ultimo, int hora, char carril
[5], char pago, float valor) Stack Heap

Static

USO *nuevo=(USO*)malloc(sizeof(USO));
nuevo->hora=hora;
strcpy(nuevo->carril, carril);
nuevo->pago=pago;
nuevo->valor = valor;
nuevo->sig=NULL;
if(*primero==NULL){
*primero=nuevo;
}else{
(*ultimo)->sig=nuevo; nuevo
}
*ultimo = nuevo;
void generarColas(int fil1, SENSOR mSensor[fil1], PTR
*C1NS, PTR *C2NS, PTR *C3NS, PTR *C4NS, PTR *C5NS, PTR
*C1SN, PTR *C2SN, PTR *C3SN, PTR *C4SN, PTR* C5SN, int
vecResultados[25]) Stack Heap

Static
int i;
for(i=0; i<fil1; i++){

if(strcmp(mSensor[i].carril,
"C1SN")==0){enqueue(&C1SN->inicio,
&C1SN->final, mSensor[i]);
vecResultados[0]++;}

if(strcmp(mSensor[i].carril,
"C2SN")==0){enqueue(&C2SN->inicio,
&C2SN->final, mSensor[i]);
vecResultados[1]++;}
}
USO generarUso(char carril [5],
char pago, float valor ){

Stack Heap

Static
time (&hora);
struct tm
*horaactual=localtime(&hora);
int hora = horaactual->tm_hour;
USO aux;
aux.hora = hora;
strcpy(aux.carril, carril);
aux.pago=pago;
aux.valor=valor;
return aux;
Stack Heap

Static
void procesamientoColas(int
fil1, PTR *C1NS, PTR *C2NS,
PTR *C3NS, PTR *C4NS,PTR*
C5NS, PTR *C1SN, PTR *C2SN,
PTR *C3SN, PTR *C4SN, PTR*
C5SN, VEHICULO
mVehiculo[fil1], int
vecResultados[25], float
vecAcum[11], float AcuTotal){
int cont = 0, indiceVehiculo;
SENSOR aux;
USO auxUso;
time (&hora);
struct tm *horaactual=localtime(&hora);
int hora = horaactual->tm_hour;
while(C5NS->final!=NULL && C5SN->final != NULL && C3NS->final != NULL && C3SN->final !=
NULL && C4NS->final != NULL && C4SN->final != NULL && C1NS->final != NULL && C1SN->final !=
NULL && C2NS->final != NULL && C2SN->final != NULL){
while(C5NS->final != NULL && cont <5){
aux=dequeue(&C5NS->inicio, &C5NS->final);
indiceVehiculo = encontrarVehiculo(fil1, mVehiculo, aux.placa);
if(strcmp(mVehiculo[indiceVehiculo].tipoVehiculo, "O")!=0){
if(mVehiculo[indiceVehiculo].acuerdoPromocional==1){
pop(&mVehiculo[indiceVehiculo].pases);
enqueueUSO(&mVehiculo[indiceVehiculo].usoInicio,
&mVehiculo[indiceVehiculo].usoFinal, hora, aux.carril, 'A', 0);

También podría gustarte