/
serge.balakshiy
/
idef0_model_cpp
Обзор
Документация
Войти
/
serge.balakshiy
/
idef0_model_cpp
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
main.cpp
52 строки
2 KB
sergebn
Начало проекта
09 май 2026, 02:21
09 май 2026, 02:21
c6a5429
Код
Авторство
О чём код?
#include "IDEF0Model.h" int main() { auto root = std::make_shared<Function>("A0", "Обработать заказ клиента"); IDEF0Model model(root); if (model.load_from_json("idef0_model.json")) { model.print_hierarchy(); model.validate_decomposition("A0"); model.build_incidence_matrix("F2"); } else { std::cout << "Не удалось загрузить модель из JSON\n"; } // Получаем доступ через геттер const auto& all_functions = model.get_functions(); std::cout << "Все функции модели:\n"; for (const auto& [func_id, func_ptr] : all_functions) { auto matrix = model.build_incidence_matrix(func_id); std::cout << "Матрица инцидентности для блока: " << func_id << ", Имя: " << func_ptr->get_name() << "\n"; //std::cout << "Матрица инцидентности для " << func_id <<":\n"; for (const auto& [func, flows] : matrix) { for (const auto& [flow, value] : flows) { if (value == 1) { std::cout << " " << func << " -> " << flow << "\n"; } } } } // Получаем доступ через другой геттер, только id auto ids = model.get_function_ids(); for (const auto& id : ids) { std::cout << "ID функции: " << id << "\n"; auto matrix = model.build_incidence_matrix(id); std::cout << "Матрица инцидентности для блока: " << id << "\n"; for (const auto& [func, flows] : matrix) { for (const auto& [flow, value] : flows) { if (value == 1) { std::cout << " " << func << " -> " << flow << "\n"; } } } } model.print_hierarchy(); model.print_all_connections(); return 0; }