diff options
feat(Week02): Add solutions
1 files changed, 49 insertions, 0 deletions
| -rw-r--r-- | Week02/Exercise05/main.cpp | 49 |
diff --git a/Week02/Exercise05/main.cpp b/Week02/Exercise05/main.cpp new file mode 100644 index 0000000..a79d628 --- /dev/null +++ b/Week02/Exercise05/main.cpp @@ -0,0 +1,49 @@ +#include <iostream> +#include "package.h" +#include "warehouse.h" + +int main() { + unsigned warehouseCount; + std::cin >> warehouseCount; + + Warehouse* warehouses = new Warehouse[warehouseCount]; + + for (unsigned i = 0; i < warehouseCount; ++i) { + std::cin >> warehouses[i].ID >> warehouses[i].packageCapacity; + warehouses[i].packages = new Package[warehouses[i].packageCapacity]; + } + + unsigned packagesCount; + std::cin >> packagesCount; + std::cin.ignore(); + + for (unsigned i = 0; i < packagesCount; ++i) { + Package p = readPackage(); + + + char warehouse; + std::cin >> warehouse; + std::cin.ignore(); + + for (unsigned i = 0; i < warehouseCount; ++i) { + if (warehouses[i].ID == warehouse) { + warehouses[i].storePackage(p); + break; + } + } + } + + for (unsigned i = 0; i < warehouseCount; ++i) { + std::cout << warehouses[i].ID << ' ' << warehouses[i].storedPackages << '/' << warehouses[i].packageCapacity << std::endl; + for (unsigned j = 0; j < warehouses[i].storedPackages; ++j) { + std::cout << warehouses[i].packages[j].ID << std::endl; + } + } + + for (unsigned i = 0; i < warehouseCount; ++i) { + delete[] warehouses[i].packages; + } + delete[] warehouses; + + return 0; +} |
