aboutsummaryrefslogtreecommitdiff
path: root/week05/Exercise1.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'week05/Exercise1.cpp')
-rw-r--r--week05/Exercise1.cpp32
1 files changed, 32 insertions, 0 deletions
diff --git a/week05/Exercise1.cpp b/week05/Exercise1.cpp
new file mode 100644
index 0000000..28fc290
--- /dev/null
+++ b/week05/Exercise1.cpp
@@ -0,0 +1,32 @@
+struct Patient {
+ unsigned id;
+ char name[1024];
+};
+
+struct Hospital {
+private:
+ Patient* patients;
+ unsigned maxPatients;
+ unsigned lastIndex;
+
+public:
+ Hospital(unsigned maxPatients) {
+ this->maxPatients = maxPatients;
+ patients = new Patient[maxPatients];
+ lastIndex = 0;
+ }
+ ~Hospital() {
+ delete[] patients;
+ }
+
+ void AddPatient(const Patient& newPatient) {
+ if (lastIndex == maxPatients) return;
+ patients[lastIndex++] = newPatient;
+ }
+
+ // По принцип логиката трябва да е по-сложна, да се маха пациент по индекс и
+ // след това да се изместват останалите, но за целите на задачата това не е нужно
+ void RemovePatient() {
+ lastIndex--;
+ }
+};