Загрузка...

Recommend educational projects for C++

Thread in C/C++ created by senkfarc Mar 9, 2026. 139 views

  1. senkfarc
    senkfarc Topic starter Mar 9, 2026 1 Jan 9, 2022
    Изучаю язык, может у кого есть интересные идеи для простых учебных проектов.
     
    1. steeve
      avatarsenkfarc, Что тебе именно нравиться? Какие темы
    2. senkfarc Topic starter
      avatarsteeve, Да пока не определился что нравится и куда углубится. Пробовал разобраться с windows.h работа с ядром винды, но как то слишком муторно. Недавно загорелся мессенджер написать , неплохой концепт нарисовал себе, придется разбиратся с Cmake и Git
    3. steeve
      avatarsenkfarc, если хочешь пойти в мессенджер например, попробуй написать свой веб-браузер, как говориться прадедушку интернета, посмотри как работает nginx, старый интернет работал и тд, когда поймешь, сможешь понимать весь бекенд потом)

      - возьми за основу видео, чювак хорошо объясняет многое
  2. депо
    avatarChatGPT Изучаю язык С++, придумай интересные идеи для простых учебных проектов
     
    1. ChatGPT
      avatarдепо

      Вот подборка учебных идей на C++, от простого к посложнее. Каждая прокачивает конкретные навыки.

      Уровень 1 — базовые консольные и работа с файлами

      ToDo CLI с сохранением в JSON/CSV (чтение/запись файлов, STL, структурирование кода). Бонус: сортировка/фильтры.
      Конвертер единиц (длины/веса/температуры) с конфигом в файле. Бонус: парсинг строк типа "12 km to mi".
      Калькулятор выражений с приоритетами (шунтинг-ярд, стек). Бонус: функции sin/cos, переменные.
      Мини-grep: фильтрация строк по regex (std::regex), ключи -i/-n. Бонус: рекурсивно по папке.
      Анализатор ***** Nginx/Apache: парсинг, топ-URL, статус-коды, гистограммы по времени.


      Уровень 2 — алгоритмы и структуры данных

      Сортировщик/визуализатор в консоли: сравнение пузырька/быстрой/слиянием по времени.
      Решатель Судоку (backtracking). Бонус: генератор валидных Sudoku.
      Поиск пути A* на сетке (манхэттен, препятствия). Бонус: диагонали, разные эвристики.
      LRU-кэш (список + unordered_map). Бонус: шаблонный, с тестами.
      Bloom Filter/Counting Bloom (битовые операции, хеши). Бонус: настройка вероятности ложных срабатываний.


      Уровень 3 — ООП, шаблоны, чистый C++

      Свой vector/optional (минимальный) с RAII, итераторами и исключениями.
      Плагинная система экспорта изображений PGM/PPM (Strategy/Factory). Бонус: PNG через внешнюю lib.
      Кошелёк/банк: счета, транзакции, откат при ошибках (исключения, RAII). Бонус: журналирование.
      Мини-ranges адаптеры: filter/map поверх итераторов (templates, lazy eval).


      Уровень 4 — многопоточность, сеть, БД

      Producer/Consumer: очередь с mutex/condition_variable, измерение пропускной способности.
      Пул потоков + таски (packaged_task/future). Бонус: планировщик по приоритетам.
      TCP-чат (клиент/сервер) на Boost.Asio или ASIO. Бонус: комнаты, история.
      HTTP-клиент: скачивание страниц (cURL/Boost.Beast), параллельные запросы.
      Заметочник на SQLite (CLI): CRUD, поиск, индексы. Бонус: транзакции, миграции.


      Уровень 5 — GUI/игры

      Заметки на Qt: список, поиск, автосохранение. Бонус: Markdown предпросмотр.
      Консольные игры: змейка/тетрис/сапёр (логика, таймеры). Бонус: таблица рекордов в файле.
      Арканоид на SDL2: столкновения, уровни. Бонус: редактор уровней.


      Инфраструктура (советую добавить к любому проекту)

      Сборка через CMake, форматирование clang-format, статический анализ clang-tidy.
      Юнит-тесты (Catch2/GoogleTest).
      **** (spdlog) и удобный вывод (fmt).


      Если хочешь, накидаю конкретный план из 3–5 проектов “лестницей” под твой уровень. Напиши:
      - ОС и компилятор/IDE (Windows/Linux/macOS; MSVC/Clang/GCC; CLion/VS/VSCodium).
      - Готов ли подключать библиотеки (Boost/Qt/SQLite) или чистый STL.
      - Что интереснее: алгоритмы, утилиты, сеть, игры, GUI?
      - Сколько времени готов тратить на один проект.
Loading...