More stuff.

Signed-off-by: Abdulkadir Furkan Şanlı <me@abdulocra.cy>
This commit is contained in:
Abdulkadir Furkan Şanlı
2022-01-04 18:05:39 +01:00
parent 28ae19695b
commit fe5269b6ed
2 changed files with 181 additions and 29 deletions
+15 -11
View File
@@ -12,17 +12,17 @@ class Gov;
class Gov
{
public:
int factor = 6; // Money multiplier.
int rate = 2; // Interest rate (%).
time_t last_bailout = 0; // Time since last bailout.
void associate (Bank *const x);
bool disassociate (Bank *const x);
double reserveDeposit (const Bank &x, const double amount);
double reserveWithdraw (const Bank &x, const double amount);
bool bailout (const Bank &x, double amount);
static const int FACTOR = 6; // Money multiplier.
int rate = 2; // Interest rate (%).
bool associate (Bank *const x);
double reserveDeposit (Bank &x, const double amount);
double reserveWithdraw (Bank &x, const double amount);
bool bailout (Bank &x, const double amount);
double getReserve ();
private:
double bankReserves = 0;
time_t lastBailout = 0; // Time since last bailout.
double reserve = 0; // Total in bank reserves.
std::vector<Bank *> banks;
};
@@ -31,14 +31,17 @@ class Bank
friend class Gov;
public:
Gov *centralBank;
Bank (Gov *x) : centralBank (x) { x->associate (this); };
Bank (Gov *x) : centralBank (x) { x->associate (this); }; // Must have Gov.
double deposit (Client &x, const double amount);
double withdraw (Client &x, const double amount);
double getCurrent ();
double getCurrent (const Client &x);
double getCreditable ();
double getCredited ();
bool hire (Employee &x);
bool fire (Employee &x);
bool openAccount (Client &x);
bool closeAccount (Client &x);
bool newCredit (const std::string id, const double amount,
const int installments, const int days,
const float interest); // interest is additional interest on
@@ -48,6 +51,7 @@ public:
void listClients ();
private:
Gov *centralBank;
const int CLIENT_EMPLOYEE = 2; // Max number of clients to employees.
double current = 0; // Total current accts. of clients.
double creditable = 0; // Amount able to be loaned to clients.