проект в C++ Skill Tree

Поиск заметок по ключевым словам

Создайте переиспользуемый поиск заметок на C++ с идентификацией по относительному пути, индексом слов ASCII и запросами AND по документам, возвращающими все совпадения и реальные исходные строки.

ПроектC++

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

Поиск заметок по ключевым словам — практический проект на C++ для тех, кто уже знает основы языка. Вы превратите несколько запомнившихся слов в переиспользуемый локальный поиск, который находит все подходящие заметки в разных папках и показывает настоящие места появления этих слов.

Курс состоит из двух пошаговых лабораторных работ и одного самостоятельного задания. Сначала вы свяжете слова с идентификаторами документов в индексе. Затем объедините слова запроса, чтобы найти все содержащие их документы. В завершение примените те же правила к другой коллекции заметок. Каждая работа предоставляет собственные заметки и начальный код, не требуя файлов из предыдущей среды.

Чему вы научитесь

После завершения курса вы сможете:

  • определять документы по относительному пути, различая одноимённые файлы в разных папках;
  • строить индекс слов и множеств документов с помощью map и set, не дублируя документ из-за повторных слов;
  • применять заданное правило целых слов из букв ASCII без учёта регистра ASCII;
  • пересекать множества кандидатов по условию AND и возвращать каждый документ со всеми словами запроса;
  • выводить реальные пути, номера строк и исходные совпавшие строки без дублирования строк результата;
  • повторным запуском перестраивать индекс по текущим учебным заметкам, сохраняя эталонные оригиналы.

Для кого этот курс

Курс предназначен для изучающих C++, которые хотят применить стандартные контейнеры и чтение файлов для создания полезной программы поиска с понятными и проверяемыми правилами.

Предварительные требования: Базовая навигация в терминале и знакомство со строками, функциями, vector, файловыми потоками и основами исключений в C++. Пошаговые работы знакомят с нужными операциями map и set, идентификацией по относительному пути и пересечением множеств.

Учебная среда: LabEx предоставляет подготовленную среду Linux в браузере с компилятором C++17, начальным кодом, коллекциями заметок и Terminal. Вспомогательный код загрузки файлов, выделения слов и форматирования вывода подготовлен. Команды и сообщения программы — на английском; имена и текст заметок сохраняют предоставленное содержимое.

Часто задаваемые вопросы

Должны ли все слова запроса находиться в одной строке?

Нет. Условие AND применяется ко всему документу. Разные слова могут находиться в разных строках. Результат показывает по одному разу каждую исходную строку с любым словом запроса, чтобы вы могли самостоятельно найти подтверждение.

Понимает ли этот поиск все языки?

Словами считаются только последовательности букв ASCII, причём заглавные буквы ASCII переводятся в строчные; остальные байты разделяют слова. cat и catalog — разные слова. Имена файлов Unicode и исходные строки сохраняются, но общей многоязычной сегментации слов в проекте нет.

Как изменённые заметки попадают в индекс?

Каждый запуск заново читает текущие файлы и строит новый индекс в памяти. После изменения, добавления или удаления разрешённой учебной заметки запустите программу ещё раз. Эталонные оригиналы остаются неизменными; постоянного индекса и фонового обновления нет.

Преподаватель

labby
Labby
Labby is the LabEx teacher.

Рекомендовано для вас

no data