Учебные лабораторные работы по курсу «Программирование на C++».
| № | Папка | Тема |
|---|---|---|
| 1 | lab_datatypes |
Исследование типов данных. Битовые vs арифметические операции |
| 2 | lab_pointers |
Динамические массивы, указатели и функции |
| 3 | lab_classes |
ООП: конструкторы, операторы, Singleton, push_back vs emplace_back |
Каждая лабораторная работа — отдельный CMake-проект в своей папке. Внутри каждой работы — задания по подпапкам.
cpp-labs/
├── README.md ← этот файл
├── .gitignore
├── lab_datatypes/ ← лабораторная 1
│ ├── CMakeLists.txt
│ ├── 01_task/
│ ├── 02_task/
│ ├── 03_task/
│ ├── 04_task/
│ └── 05_task/
├── lab_pointers/ ← лабораторная 2
│ ├── CMakeLists.txt
│ ├── 01_task/
│ ├── 02_task/
│ ├── 03_task/
│ ├── 04_task/
│ └── 05_task/
└── lab_classes/ ← лабораторная 3
├── CMakeLists.txt
├── common/ ← общая библиотека logger (Singleton)
├── 01_task/
├── 02_task/
├── 03_task/
├── 04_task/
├── 05_task/
├── 06_task/
└── logs/
В каждой папке NN_task/ лежат:
main.cpp— самодостаточная программа (все данные через параметры, без глобальных переменных),CMakeLists.txt— сборка отдельного исполняемого файла,<utils>.h/<utils>.cpp— модульный код задания (там, где требуется),README.md— ответы на контрольные вопросы и выводы по заданию.
- CMake ≥ 3.10 (для
lab_classes— ≥ 3.20) - Компилятор C++ с поддержкой C++23 (GCC 13+, Clang 16+)
- IDE: CLion, VS Code + CMake Tools — на выбор
Зайти в папку работы и собрать, например в Release:
cd lab_datatypes
cmake -S . -B cmake-build-release -DCMAKE_BUILD_TYPE=Release
cmake --build cmake-build-releaseИсполняемые файлы появятся в cmake-build-release/NN_task/taskNN.
cmake --build cmake-build-release --target task04
./cmake-build-release/04_task/task04- Каждая работа независима: запуск одного задания не зависит от других папок.
- Папки сборки (
cmake-build-*) в репозиторий не попадают (см..gitignore). - В
lab_classesпапкаlogs/не игнорируется — в README заданий приводятся фрагменты логов.