Skip to content

Proger1298/spreadsheet

Repository files navigation

📊 Электронная таблица

Описание проекта

Электронная таблица — это консольное приложение для работы с табличными данными, поддерживающее формулы и текстовые значения в ячейках.
Программа позволяет создавать, редактировать и вычислять таблицы с поддержкой ссылок между ячейками и обработкой циклических зависимостей.

Проект разрабатывался для освоения:

  • Работы с абстрактными синтаксическими деревьями (AST)
  • Парсинга и обработки формул
  • Оптимизации вычислений через кэширование
  • Обработки циклических зависимостей

Основные возможности:

  • Поддержка текстовых и числовых значений в ячейках
  • Формулы с арифметическими операциями и скобками
  • Ссылки на другие ячейки в формулах (например, A1+B2*C3)
  • Автоматическое вычисление зависимостей
  • Обнаружение циклических зависимостей
  • Печать таблицы в текстовом виде

Используемые паттерны и технологии:

  • ANTLR 4 для генерации парсера формул
  • C++20
  • Шаблон "Посетитель" для обхода AST
  • Кэширование результатов вычислений
  • CMake для сборки

Инструкция по развёртыванию и системные требования

Для запуска локально:

  1. Установить JDK 11+
    Под Linux:
sudo apt install openjdk-11-jdk
  1. Установить ANTLR (Another Tool for Language Recognition) 4.13.2+
  2. Проверить в файлах FindANTLR.cmake и CMakeLists.txt название файла antlr-X.X.X-complete.jar на корректность версии. Вместо "X.X.X" указать свою версию antlr.
  3. Создайть папку с названием "antlr4_runtime" без кавычек и скачайть в неё файлы.
  4. :
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Debug(Release) ..
cmake --build .
./spreadsheet

Системные требования:

  • Linux (Ubuntu 22.04)

Зависимости:

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published