blob: 1e7ad88e264381cfcaabc91d77d2d4c43b824d94 (
plain)
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
|
#include "WinkelSim.h"
#include "Kassa.h"
WinkelSim::WinkelSim() {
srand(time(NULL));
for (size_t i = 0; i < CHECKOUT_COUNT; i++)
_checkouts[i] = new Kassa();
}
WinkelSim::~WinkelSim() {
for (size_t i = 0; i < CHECKOUT_COUNT; i++)
delete _checkouts[i];
}
std::ostream& operator << (std::ostream& output, const WinkelSim& w) {
for (size_t i = 0; i < CHECKOUT_COUNT; i++)
output << "\tkassa " << i+1 << ": " << *w._checkouts[i] << std::endl;
return output;
}
void WinkelSim::step() {
unsigned new_customer_count = std::rand() % MAX_NEW_CUSTOMERS_PER_TIMESTEP;
for (unsigned i = 0; i < new_customer_count; i++)
_checkouts[std::rand() % CHECKOUT_COUNT]->add_customer({});
for (size_t i = 0; i < CHECKOUT_COUNT; i++)
_checkouts[i]->step();
}
|