Finance manager
Лабораторна робота №2 - Документація коду
Loading...
Searching...
No Matches
Account.h
Go to the documentation of this file.
1#pragma once
2#include <string>
3#include <vector>
4#include <cmath>
5#include "Transaction.h"
6
7
8class Account {
9public:
10 std::string id;
11 std::string name;
12 double balance = 0.0;
13 std::string currency = "USD";
14 std::string userId;
15 std::time_t createdAt = 0;
16
17
18 virtual ~Account() = default;
19
20
21 virtual bool reconcileAccount(const std::vector<Transaction>& transactions);
22 virtual void persist();
23 virtual std::string type() const { return "Account"; }
24};
25
26
27inline bool Account::reconcileAccount(const std::vector<Transaction>& transactions) {
28 double computed = 0.0;
29 for (const auto &t : transactions) {
30 if (t.accountId == id) computed += t.amount;
31 }
32
33 return std::abs(computed - balance) < 0.01;
34}
35inline void Account::persist() { }
36
37
38class CheckingAccount : public Account { public: std::string type() const override { return "CheckingAccount"; } };
39class CreditAccount : public Account { public: double creditLimit = 0.0; std::string type() const override { return "CreditAccount"; } };
40class SavingsAccount : public Account { public: double interestRate = 0.0; std::string type() const override { return "SavingsAccount"; } };
Оголошення класу Transaction, що представляє одну фінансову операцію.
Definition Account.h:8
std::time_t createdAt
Definition Account.h:15
std::string id
Definition Account.h:10
std::string name
Definition Account.h:11
virtual void persist()
Definition Account.h:35
std::string currency
Definition Account.h:13
double balance
Definition Account.h:12
virtual ~Account()=default
std::string userId
Definition Account.h:14
virtual bool reconcileAccount(const std::vector< Transaction > &transactions)
Definition Account.h:27
virtual std::string type() const
Definition Account.h:23
Definition Account.h:38
std::string type() const override
Definition Account.h:38
Definition Account.h:39
double creditLimit
Definition Account.h:39
std::string type() const override
Definition Account.h:39
Definition Account.h:40
std::string type() const override
Definition Account.h:40
double interestRate
Definition Account.h:40