-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathvia.h
More file actions
50 lines (45 loc) · 1.48 KB
/
via.h
File metadata and controls
50 lines (45 loc) · 1.48 KB
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
#ifndef VIA_H
#define VIA_H
#include "header.hpp"
#include "veiculo.h"
#include "utilidades.h"
using namespace std;
class veiculo;
class via
{
private:
long int id; //ID Veiculos
int tamanho; //Tamanho da Via em Metros
unsigned int divisao; //Divisão em Metros da Via para cada Veiculo
double velocidadeVia; //Velocidade em Km/H
int faixas; //Quantidade de faixas disponíveis para tráfego na via
time_t tempoAtual;
struct tm inicioSim;
struct tm termSim;
Utilidades utilidades;
veiculo * objVeiculo;
vector<veiculo*> veiculosVia;
vector<veiculo*> filaVeiculos;
vector<veiculo*> trafegaram;
void distribuicaoPoissonEExponencial(int minutosSimulados, int velocidadeVia, int comprimentoVia);
void gerarVeiculos(int minutosSimulados, int velocidadeVia, int comprimentoVia);
void inserirCarroVia();
void tiraDaFila();
void atualizarTempPermanencia();
void adicionarTempoAtraso();
void retirarCarroVia();
bool verificaViaCheia();
bool verificaCarroFila();
public:
via();
void setAtributosVia(double velocidadeDaVia, int tamanhoViaEmMetros, int qtdeFaixasVia);
void setAtributosCarro(int divisaoSlotsVia, int tempoSimulacao);
std::vector<veiculo*> *getVeiculosNaVia();
std::vector<veiculo*> *getTrafegaram();
std::vector<veiculo *> *getVeiculosNaFila();
void iniciarSimulacao(int tempoSimulacao);
long double mediaEsperaNaVia();
long double mediaTempoTrafegado();
~via();
};
#endif // VIA_H