Website Summary Files Commits Branches @commit @diff @stats
path: root / Week04 / Exercise01 / Train.cpp
diff options
context:
space:
mode:
Commite5c06fbc864205a9736f07f9237ace80617ca471 (patch)
Author
 Syndamia <kamen@syndamia.com>
2026-03-16 22:41:31 +0200
Committer
 Syndamia <kamen@syndamia.com>
2026-03-16 22:41:31 +0200
Filesf916efca600b104f3489a8501bffa448f11dfe79 /Week04/Exercise01/Train.cpp
oop-2025-solutions-e5c06fbc864205a9736f07f9237ace80617ca471.tar
oop-2025-solutions-e5c06fbc864205a9736f07f9237ace80617ca471.tar.gz
oop-2025-solutions-e5c06fbc864205a9736f07f9237ace80617ca471.zip
Parent5624cd9b63bec13fc464a3d7820d703abd8de113 (diff)
feat(Week04): Add solutions
1 files changed, 24 insertions, 0 deletions
-rw-r--r--Week04/Exercise01/Train.cpp24
diff --git a/Week04/Exercise01/Train.cpp b/Week04/Exercise01/Train.cpp
new file mode 100644
index 0000000..5ff2db1
--- /dev/null
+++ b/Week04/Exercise01/Train.cpp
@@ -0,0 +1,24 @@
+#include "Train.h"
+#include <iostream>
+
+void Train::ArriveAtStation(unsigned passengersGettingOff, unsigned passengersGettingOn) {
+ if (passengersGettingOff > passengersOnBoard)
+ passengersOnBoard = 0;
+ else
+ passengersOnBoard -= passengersGettingOff;
+
+ passengersOnBoard += passengersGettingOn;
+ earnings += passengersGettingOn * ticketPrice;
+
+ passedStops++;
+ upcomingStops--;
+}
+
+void Train::Print() {
+ std::cout << "Carriages: " << carriages << ' '
+ << "Seats: " << passengersOnBoard << '/' << seatsAvailable << ' '
+ << "Stops: " << passedStops << " < " << upcomingStops << ' '
+ << "Ticket: " << ticketPrice << ' '
+ << "Earnings: " << earnings
+ << std::endl;
+}