Website Summary Files Commits Branches @commit @diff @stats
path: root / Week03 / Exercise01 / Product.cpp
diff options
context:
space:
mode:
Commit5624cd9b63bec13fc464a3d7820d703abd8de113 (patch)
Author
 Syndamia <kamen@syndamia.com>
2026-03-08 19:54:32 +0200
Committer
 Syndamia <kamen@syndamia.com>
2026-03-08 19:54:32 +0200
Files8d9915e71a7b9e757752fe3b379138804e51a8b7 /Week03/Exercise01/Product.cpp
oop-2025-solutions-5624cd9b63bec13fc464a3d7820d703abd8de113.tar
oop-2025-solutions-5624cd9b63bec13fc464a3d7820d703abd8de113.tar.gz
oop-2025-solutions-5624cd9b63bec13fc464a3d7820d703abd8de113.zip
Parentf18c44909c604a01bb0265d006a84223ee88d603 (diff)
feat(Week03): Add solution to first exercise
1 files changed, 33 insertions, 0 deletions
-rw-r--r--Week03/Exercise01/Product.cpp33
diff --git a/Week03/Exercise01/Product.cpp b/Week03/Exercise01/Product.cpp
new file mode 100644
index 0000000..1bfa66e
--- /dev/null
+++ b/Week03/Exercise01/Product.cpp
@@ -0,0 +1,33 @@
+#include <iostream>
+#include <cstring>
+#include "Product.h"
+
+void ProductArray::add(const Product& product) {
+ if (count >= allocated) {
+ std::cout << "No more products are allowed!" << std::endl;
+ return;
+ }
+
+ products[count++] = product;
+}
+
+Product* ProductArray::find(char* username) {
+ for (unsigned i = 0; i < count; ++i)
+ if (strcmp(username, products[i].name) == 0)
+ return &products[i];
+ return nullptr;
+}
+
+ProductArray newProductArray(unsigned allocatedSize) {
+ ProductArray pa;
+ pa.products = new Product[allocatedSize];
+ pa.count = 0;
+ pa.allocated = allocatedSize;
+ return pa;
+}
+
+void deleteProductArray(ProductArray& pa) {
+ delete[] pa.products;
+ pa.products = nullptr;
+ pa.count = pa.allocated = 0;
+}