Compare commits

..

2 Commits

Author SHA1 Message Date
TinyAtoms
319b573056 Merge branch 'master' of https://git.tau.aperturect.com/AP-CT/Parkmanne 2019-06-20 08:08:24 -03:00
TinyAtoms
7840f791bb commenting my code 2019-06-20 08:08:02 -03:00
6 changed files with 51 additions and 6 deletions

View File

@ -1,6 +1,7 @@
#include "headers/Customer.h"
#include <iostream>
// moet aangepast worden om een verhicle_type toe te voegen
Customer::Customer(int id_, string name_, string card_code_)
: id { id_ }
, name { name_ }
@ -8,17 +9,22 @@ Customer::Customer(int id_, string name_, string card_code_)
{
}
/*
creert een park_time object met start time= nu, en voegt t toe aan een vector.
*/
void Customer::clock_in( int s_id)
{
Park_time pt{id, s_id};
park_instances.push_back(pt);
}
// edit de laatste park_time obj in de vector zodat de end_time = now.
void Customer::clock_out(int s_id){
park_instances[park_instances.size()-1].clock_out(id, s_id);
}
// monthly report generation. moet nog een manier vinden om af te bakenen.
void Customer::gen_monthly(){
std::cout << "NAME: " << name << " card code: " << card_code << "\n";
std::cout << "-------------------------------------------------\n";

View File

@ -6,6 +6,7 @@ Park_spot::Park_spot(int id_){
taken = false;
}
// clock in en out, calls de juist(in/out) van de customer aan de hand van internal state van taken
void Park_spot::clock(Customer* c_customer){
if (!taken){
parked = c_customer;

View File

@ -9,11 +9,24 @@
using std::vector;
using std::string;
// enum type is basically een manier om categories te representen als een integer in the background, maar om t in code
// aan te geven als de actual category.
enum class Verhicle_type {
"small" = 1,
"medium" = 2,
"large" = 3,
};
/*
db repr of Customer
int id (not null, auto increment)
string name (not nulll)
string card_code (not null)
Dit moet nog verandert worden.
card code zou eigenlijk een randomly generated string moeten zijn, die je bv. op een ndf card zou opslaan en zo zou
authenticaten bij je parking spot. We kunnen dit ipv of samen met een password gebruiken.
clock in en out creeert en compleet een park_time object. Voegt het toe aan een vector.
*/
@ -26,9 +39,10 @@ public:
void clock_out(int s_id);
// void gen_weekly(); TODO: this
void gen_monthly();
Customer(int id_, string name_, string card_code_);
Customer(int id_, string name_);
private:
Verhicle_type verhicle;
vector<Park_time> park_instances;
};

View File

@ -6,6 +6,8 @@ db representation:
int id not null
bool taken not null
int customer_id (null) (many to one, foreign key, whatever)
Dit representeert een parkeerplaats. Het heeft als internal state alleen dat t bezet is of niet.
*/
class Park_spot {

View File

@ -16,6 +16,9 @@ int spot_id (not null, many to one or something like that)
int duration
datetime start (not null)
datetime end
Dit is gewoon een record van hoe lang, wie en waar iemand parkeert. Basically, een component van
de internal state van customer.
*/
class Park_time {

View File

@ -3,23 +3,42 @@
#include <thread> // to make pausing work, not sure if i need chrono, or this, or both
#include <vector>
/*
Code strucure like this:
als class declarations in /headers/class_naam.h, en definitions van de member objects in /class_naam.cpp
elke klas in zn eigen file omdat ik incomplete class declarations wilt tegengaan, omdat ik ze niet goed begrijp.
En header/source split om multiple definition errors tegen te gaan.
Park_spot representeert een parkeermeter bij elke parkeer spot.
Een customer is een customer.
Park time is een object die reffereert naar parkspot en customer, basically een record die zegt dat
een customer voor x tijd geparkeert heeft bij spot x, enz.
De client clockt in en uit bij een spot.
*/
void Wait(int sec)
/*
a wait function where 1 sec represents 1 hour irl.
*/
{
std::this_thread::sleep_for(seconds { sec });
}
using std::cout;
int main()
{
std::vector<Park_spot> spots {
1, 2, 3, 4, 5
};
std::vector<Customer> customers {
{ 1, "Sagar Ram", "eddgh" },
{ 2, "Shaq", "wsdfwefgv" },
{ 3, "Josh", "WDFGWEF" },
{ 4, "Stefano", "EDGGERG" }
{ 1, "Sagar Ram" },
{ 2, "Shaq" },
{ 3, "Josh" },
{ 4, "Stefano" }
};
spots[1].clock(&customers[3]); // stefano parks at spot 2