Skip to content

Latest commit

 

History

4 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 

Repository files navigation

cpp-spreadsheet

Дипломный проект: Электронная таблица

🚀 Функциональные возможности

cpp-spreadsheet — это легковесное ядро электронной таблицы, реализованное на C++. Оно обеспечивает надёжную и эффективную работу с данными, приближенную к функциональности Excel и Google Sheets, но с фокусом на производительность и корректность.

✅ Что умеет таблица?

  • Поддержка формул — вычисление арифметических выражений, ссылок на ячейки и встроенных функций (SUM, AVERAGE, COUNT и др.).
  • Умное управление зависимостями — автоматическое отслеживание связей между ячейками, пересчёт только изменённых значений и кэширование результатов.
  • Обнаружение циклических ссылок — таблица мгновенно выявляет круговые зависимости и предотвращает бесконечные вычисления, инвалидируя проблемные ячейки.
  • Динамическое определение размеров — таблица автоматически подстраивается под количество заполненных ячеек, оптимизируя память и время доступа.
  • Корректная обработка ошибок — понятные сообщения об ошибочных формулах, неверных ссылках или делении на ноль.
  • Базовые операции с данными — вставка, удаление, очистка ячеек, копирование и перемещение значений/формул.

⚙️ Технические особенности

  • Модульная архитектура — чёткое разделение на парсер формул, вычислительный движок, менеджер зависимостей и контейнер ячеек.
  • Эффективное хранение — разрежённые структуры данных для экономии памяти при работе с большими таблицами.
  • Кроссплатформенность — код написан на стандартном C++17 и готов к компиляции под Windows, Linux и macOS.

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

About

Дипломный проект: Электронная таблица (аналог exel, google sheets) ядро электронной таблицы, поддерживает операции с ячейками и формулами, умеет искать циклические зависимости и инвалидировать их, умеет вычислять размеры таблицы, формулы в ячейках

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages