-
Notifications
You must be signed in to change notification settings - Fork 1
/
trip.h
83 lines (57 loc) · 2.13 KB
/
trip.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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
#ifndef trip_h
#define trip_h
/*include custom headers*/
#include "vehicle.h"
#include "user.h"
#include "date.h"
#include "storable.cpp"
/*include standard headers*/
#include <string>
using namespace std;
/*Trip class helps manage trips related data*/
class Trip : public Storable
{
private:
/*const pointer to const vehicle in memory.
We will create user in memory and assign address of that vehicle to 'vehicle'
.This is a const pointer so that it can't point to other vehicle objects */
const Vehicle *vehicle;
/*const pointer to const user in memory.
We will create user in memory and assign address of that user to 'user'
.This is a const pointer so that it can't point to other user objects */
const User *user;
/*We need to track record of starting and ending time of trip so that
we can see which vehicles are free*/
/*start date of trip*/
Date startDate;
/*End date of trip*/
Date endDate;
/*we need to keep track of odometer so that fare can be calculated*/
long startReading;
long endReading;
/*Fare of the trip*/
double fare;
/*Trip Completed or not*/
bool completed;
public:
/*constructor of trip class*/
Trip(const Vehicle *vehicle , const User *user , Date startDate , Date endDate ,
long recordId = 0 , long startReading = 0 , long endReading = 0 , double fare = 0.0,
bool isCompleted = false);
/*assigning each getter function constant as defined in previous classes*/
const User &getUser() const;
const Vehicle &getVehicle() const;
Date getStartDate() const;
Date getEndDate() const;
long getStartReading() const;
long getEndReading() const;
long getFare() const;
bool isCompleted() const;
void startTrip(long startRecording);
double completeTrip(long endRecording);
void display() const;
/*overriden virtual method*/
string toString() const;
void setDataFrom(Storable *s);
};
#endif