Дипломный проект: Электронная таблица
cpp-spreadsheet — это легковесное ядро электронной таблицы, реализованное на C++. Оно обеспечивает надёжную и эффективную работу с данными, приближенную к функциональности Excel и Google Sheets, но с фокусом на производительность и корректность.
- Поддержка формул — вычисление арифметических выражений, ссылок на ячейки и встроенных функций (SUM, AVERAGE, COUNT и др.).
- Умное управление зависимостями — автоматическое отслеживание связей между ячейками, пересчёт только изменённых значений и кэширование результатов.
- Обнаружение циклических ссылок — таблица мгновенно выявляет круговые зависимости и предотвращает бесконечные вычисления, инвалидируя проблемные ячейки.
- Динамическое определение размеров — таблица автоматически подстраивается под количество заполненных ячеек, оптимизируя память и время доступа.
- Корректная обработка ошибок — понятные сообщения об ошибочных формулах, неверных ссылках или делении на ноль.
- Базовые операции с данными — вставка, удаление, очистка ячеек, копирование и перемещение значений/формул.
- Модульная архитектура — чёткое разделение на парсер формул, вычислительный движок, менеджер зависимостей и контейнер ячеек.
- Эффективное хранение — разрежённые структуры данных для экономии памяти при работе с большими таблицами.
- Кроссплатформенность — код написан на стандартном C++17 и готов к компиляции под Windows, Linux и macOS.
💡 Проект создан в рамках дипломной работы и демонстрирует глубокое понимание принципов построения электронных таблиц, алгоритмов графов и обработки выражений.