-
Notifications
You must be signed in to change notification settings - Fork 0
/
Autohuur.cpp
121 lines (113 loc) · 3.24 KB
/
Autohuur.cpp
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
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
#include <iostream>
#include <sstream>
#include <iomanip>
using namespace std;
//g++ -std=c++17 Autohuur.cpp -o main
//./main
const string undefined{"undefined"};
class Klant{
private:
double kortingsPercentage=0.0;
public:
string naam;
Klant(const string& nm = "undefined"){
naam = nm;
}
void setKorting(double kP){
kortingsPercentage = kP;
}
double getKorting(){
return kortingsPercentage;
}
string toString(){
if(naam == undefined){
return "er is geen huurder bekent";
}
else{
ostringstream oss;
oss<<"op naam van: "<<naam<<" (korting: "<<kortingsPercentage<<"%)"<<fixed << setprecision(2);
return oss.str();
}
}
};
class Auto{
private:
string type;
double prijsPerDag;
public:
Auto(string tp = "undefined", double prPd = 0.0){
type = tp;
prijsPerDag = prPd;
}
void setPrijsPerDag(double prPd){
prijsPerDag = prPd;
}
double getPrijsPerDag(){
return prijsPerDag;
}
string getType(){
return type;
}
string toString(){
if(type == undefined){
return "er is geen auto bekent";
}
else{
ostringstream oss;
oss<<type<<" met de prijs per dag: "<<prijsPerDag;
return oss.str();
}
}
};
class AutoHuur{
public:
int aantalDagen;
Klant klant;
Auto car;
AutoHuur(){
aantalDagen = 0;
}
void setAantalDagen(int aD){
aantalDagen = aD;
}
void setGehuurdeAuto(Auto gA){
car = gA;
}
Auto getGehuurdeAuto(){
return car;
}
void setHuurder(const Klant& k){
klant = k;
}
Klant getHuurder(){
return klant;
}
double totaalPrijs(){
return car.getPrijsPerDag()*((100-klant.getKorting())/100)*aantalDagen;
}
string toString(){
ostringstream oss;
oss << endl << car.toString() << endl << klant.toString()<<endl<< "aantal dagen: " << aantalDagen << fixed << setprecision(1)<<" en dat kost "<< totaalPrijs();
return oss.str();
}
};
int main(){
AutoHuur ah1{};
cout<<"Eerste autohuur: " + ah1.toString()<<endl<<endl; // Print "Eerste autohuur: " + ah1.toString()
Klant k("Mijnheer de Vries");
k.setKorting(10.0);
ah1.setHuurder(k);
cout<<"Eerste autohuur: " + ah1.toString()<<endl<<endl; // Print: "Eerste autohuur: " + ah1.toString()
Auto a1("Peugeot 207", 50.0);
ah1.setGehuurdeAuto(a1);
ah1.setAantalDagen(4);
cout<<"Eerste autohuur: " + ah1.toString()<<endl<<endl; // Print "Eerste autohuur:" + ah1.toString()
AutoHuur ah2{};
Auto a2("Ferrari", 3500);
ah2.setGehuurdeAuto(a2);
ah2.setHuurder(k);
ah2.setAantalDagen(1);
cout<<"Tweede autohuur: " + ah2.toString()<<endl<<endl; // Print "Tweede autohuur: " + ah2.toString()
cout<<"Gehuurd: " + ah1.getGehuurdeAuto().toString()<<endl; // Print "Gehuurd: " + ah1.getGehuurdeAuto()
cout<<"Gehuurd: " + ah2.getGehuurdeAuto().toString(); // Print "Gehuurd: " + ah2.getGehuurdeAuto()
}