Website Summary Files Commits Branches @commit @diff @stats
path: root / Week07 / Exercise01 / LibraryBanking.h
diff options
context:
space:
mode:
Commit945f7e67d6ca8047c961457786fac5e2d9a13d82 (patch)
Author
 Syndamia <kamen@syndamia.com>
2026-04-03 18:17:51 +0300
Committer
 Syndamia <kamen@syndamia.com>
2026-04-03 18:17:51 +0300
Files5c6b23aaee4eb653f9c461d7303edcd31d697f10 /Week07/Exercise01/LibraryBanking.h
oop-2025-solutions-945f7e67d6ca8047c961457786fac5e2d9a13d82.tar
oop-2025-solutions-945f7e67d6ca8047c961457786fac5e2d9a13d82.tar.gz
oop-2025-solutions-945f7e67d6ca8047c961457786fac5e2d9a13d82.zip
Parent8f162cde46a34d04e3a8a655067ee5174258e249 (diff)
feat(Week07): Add solutions
1 files changed, 40 insertions, 0 deletions
-rw-r--r--Week07/Exercise01/LibraryBanking.h40
diff --git a/Week07/Exercise01/LibraryBanking.h b/Week07/Exercise01/LibraryBanking.h
new file mode 100644
index 0000000..08e9d9d
--- /dev/null
+++ b/Week07/Exercise01/LibraryBanking.h
@@ -0,0 +1,40 @@
+#ifndef _LIBRARY_BANKING
+#define _LIBRARY_BANKING
+
+#include "BankClerk.h"
+#include "Transaction.h"
+
+class LibraryBanking {
+ BankClerk* clerks;
+ unsigned clerksCount;
+ unsigned clerksAlloc;
+
+ Transaction* transactions;
+ unsigned transactionsCount;
+ unsigned transactionsAlloc;
+
+ void free();
+ void copyFrom(const LibraryBanking& other);
+
+ void resizeClerks();
+ void resizeTransactions();
+
+public:
+ LibraryBanking();
+ ~LibraryBanking();
+ LibraryBanking(const LibraryBanking& other);
+ LibraryBanking& operator=(const LibraryBanking& other);
+ LibraryBanking(LibraryBanking&& other);
+ LibraryBanking& operator=(LibraryBanking&& other);
+
+ void RegisterClerk(const BankClerk& clerk);
+ BankClerk* LoginClerk(unsigned clerkNumber, unsigned dynamicPassword, const String& staticPassword);
+
+ void ListPendingTransactions();
+ Transaction* GetTransaction(unsigned index);
+ const Transaction* RegisterTransaction(const Transaction& transaction);
+
+ void ExportNonPendingTransactions(const String& fileName);
+};
+
+#endif /* _LIBRARY_BANKING */