aboutsummaryrefslogtreecommitdiff
path: root/C++/BABS/BankSystem.cpp
diff options
context:
space:
mode:
authorSyndamia <kamen.d.mladenov@protonmail.com>2020-10-24 15:25:54 +0300
committerSyndamia <kamen.d.mladenov@protonmail.com>2020-10-24 15:25:54 +0300
commitbe891b06d065504be51d094503c654377ebc22d7 (patch)
tree9ab8742b063a19c713a5ba923aa96605b4b752fa /C++/BABS/BankSystem.cpp
parent8f5cbebb028d9f9fba367019de0a45b43ab7ed4d (diff)
downloadSelf-learning-be891b06d065504be51d094503c654377ebc22d7.tar
Self-learning-be891b06d065504be51d094503c654377ebc22d7.tar.gz
Self-learning-be891b06d065504be51d094503c654377ebc22d7.zip
Renamed C++ folder to C++ (from CPP)
Diffstat (limited to 'C++/BABS/BankSystem.cpp')
-rw-r--r--C++/BABS/BankSystem.cpp109
1 files changed, 109 insertions, 0 deletions
diff --git a/C++/BABS/BankSystem.cpp b/C++/BABS/BankSystem.cpp
new file mode 100644
index 0000000..0b4e726
--- /dev/null
+++ b/C++/BABS/BankSystem.cpp
@@ -0,0 +1,109 @@
+#include <iostream>
+#include <vector>
+
+#include "BankSystem.h"
+
+using namespace std;
+
+std::vector<BankAccount> BADatabase;
+
+int getIndexFromID(int id) {
+ for(int i = 0; i < BADatabase.size(); i++) {
+ if (BADatabase[i].getId() == id) {
+ return i;
+ }
+ }
+ return -1;
+}
+
+void listAllAccounts() {
+ for(BankAccount ba: BADatabase) {
+ cout << ba.toString() << endl;
+ }
+}
+
+void openBankAccount() {
+ cout << "Initial balance: ";
+ int initBalance;
+ cin >> initBalance;
+
+ BankAccount newBA(initBalance);
+ BADatabase.push_back(newBA);
+ cout << "Created new bank account with ID: " << newBA.getId() << endl;
+}
+
+void closeBankAccount() {
+ cout << "Bank account ID: ";
+ int id;
+ cin >> id;
+
+ cout << "Are you really sure you want to close bank account with ID: " << id << "? [y/n]";
+ char answer;
+ cin >> answer;
+
+ if (answer == 'y' || answer == 'Y') {
+ BADatabase[getIndexFromID(id)].close();
+ }
+
+ cout << "Bank account with ID: " << id << " is closed!" << endl;
+}
+
+void reopenBankAccount() {
+ cout << "Bank account ID: ";
+ int id;
+ cin >> id;
+
+ cout << "Are you really sure you want to reopen bank account with ID: " << id << "? [y/n]";
+ char answer;
+ cin >> answer;
+
+ if (answer == 'y' || answer == 'Y') {
+ BADatabase[getIndexFromID(id)].reopen();
+ }
+
+ cout << "Bank account with ID: " << id << " is closed!" << endl;
+}
+
+void bankerMode() {
+ while(true) {
+ cout << "What do you want to do: [0] Exit, [1] List bank accounts, [2] Open bank account, [3] Close bank account, [4] Reopen bank account" << endl;
+
+ int value;
+ cin >> value;
+
+ switch(value) {
+ case 0: return;
+ case 1: listAllAccounts(); break;
+ case 2: openBankAccount(); break;
+ case 3: closeBankAccount(); break;
+ case 4: reopenBankAccount(); break;
+ }
+ }
+}
+
+void atmMode() {
+ cout << "Bank accont ID: ";
+ int userId;
+ cin >> userId;
+ cout << endl;
+
+ BankAccount ba = BADatabase[userId];
+ if (ba.getCloseStatus()) {
+ cout << "Bank account is closed!" << endl;
+ return;
+ }
+
+ while(true) {
+ cout << "What do you want to do: [0] Exit, [1] View balance, [2] Deposit money, [3] Withdraw money?" << endl;
+
+ int value;
+ cin >> value;
+
+ switch(value) {
+ case 0: return;
+ case 1: cout << ba.getBalance() << endl; break;
+ case 2: cout << "Amount to deposit: "; cin >> value; ba.deposit(value); break;
+ case 3: cout << "Amount to withdraw: "; cin >> value; ba.withdraw(value); break;
+ }
+ }
+} \ No newline at end of file