-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtugas5.cpp
More file actions
90 lines (74 loc) · 1.9 KB
/
tugas5.cpp
File metadata and controls
90 lines (74 loc) · 1.9 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
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
#include <iostream>
#include <string>
using namespace std;
class Kendaraan{
public:
string jenis;
int biayaAwal;
int biayaPerjam;
Kendaraan(string _jenis){
jenis =_jenis;
if (jenis== "motor"){
biayaAwal=1000;
biayaPerjam=2000;
} else if (jenis=="mobil"){
biayaAwal=1000;
biayaPerjam=3000;
} else {
biayaAwal=0;
biayaPerjam=0;
}
}
bool Benar(){
return jenis== "motor" || jenis=="mobil";
}
};
class Parkir {
public:
Kendaraan kendaraan;
int waktuDetik;
Parkir(Kendaraan _kendaraan, int _waktuDetik) : kendaraan(_kendaraan){
waktuDetik=_waktuDetik;
}
int hitungBiaya(){
if (waktuDetik<= 0) return kendaraan.biayaAwal;
int jam= waktuDetik/3600;
int sisa= waktuDetik% 3600;
if (sisa>0){
jam=jam+1;
}
if (jam>1){
return kendaraan.biayaAwal +(jam-1)*kendaraan.biayaPerjam;
} else {
return kendaraan.biayaAwal;
}
}
void tampilkanStruk(){
int jam= waktuDetik/3600;
int sisa= waktuDetik% 3600;
int menit= sisa/60;
int detik= sisa% 60;
cout<<"\n Jenis Kendaraan:"<<kendaraan.jenis;
cout<<"\n Durasi Parkir :"<<jam<<" jam "<< menit << " menit " << detik <<" detik";
cout<<"\n Total Biaya :"<<hitungBiaya()<<endl;
}
};
int main (){
while (true){
string jenis;
int waktu;
cout<<"\n Masukan jenis kendaraan (motor/mobil atau 'exit'):";
cin>>jenis;
if (jenis=="exit") break;
Kendaraan kendaraan(jenis);
if (!kendaraan.Benar()) {
cout << "Jenis kendaraan tidak valid!\n";
continue;
}
cout << "Masukkan waktu parkir dalam detik: ";
cin >> waktu;
Parkir parkir(kendaraan, waktu);
parkir.tampilkanStruk();
}
return 0;
}