Finance manager
Лабораторна робота №2 - Документація коду
Loading...
Searching...
No Matches
ForecastModel.h
Go to the documentation of this file.
1#pragma once
2#include <vector>
3#include <cmath>
4#include "Transaction.h"
5
6
8public:
9 int forecastHorizon = 30; // days by default
10 double confidence = 0.8;
11
12
13 double forecastNextMonth(const std::vector<Transaction>& history);
14 double rollingAverage(const std::vector<double>& values, int window);
15 void trainModel(const std::vector<Transaction>& history);
16 double evaluateForecast(const std::vector<Transaction>& actual);
17};
18
19
20inline double ForecastModel::forecastNextMonth(const std::vector<Transaction>& history) {
21
22 if (history.empty()) return 0.0;
23 double sum = 0.0;
24 for (const auto &t : history) sum += t.amount;
25 double avg = sum / static_cast<double>(history.size());
26 return avg * 30.0;
27}
28inline double ForecastModel::rollingAverage(const std::vector<double>& values, int window) {
29 if (values.empty() || window <= 0) return 0.0;
30 double sum = 0.0;
31 int count = 0;
32 for (int i = std::max(0, (int)values.size() - window); i < (int)values.size(); ++i) { sum += values[i]; ++count; }
33 return count ? sum / count : 0.0;
34}
35inline void ForecastModel::trainModel(const std::vector<Transaction>& /*history*/) { /* placeholder */ }
36inline double ForecastModel::evaluateForecast(const std::vector<Transaction>& /*actual*/) { return 0.0; }
Оголошення класу Transaction, що представляє одну фінансову операцію.
Definition ForecastModel.h:7
double confidence
Definition ForecastModel.h:10
int forecastHorizon
Definition ForecastModel.h:9
void trainModel(const std::vector< Transaction > &history)
Definition ForecastModel.h:35
double evaluateForecast(const std::vector< Transaction > &actual)
Definition ForecastModel.h:36
double forecastNextMonth(const std::vector< Transaction > &history)
Definition ForecastModel.h:20
double rollingAverage(const std::vector< double > &values, int window)
Definition ForecastModel.h:28