Уровень сложности:
Длительность курса: 44 ак.ч.
График обучения: 44 ак. часа
Аннотация
Данный образовательный модуль охватывает ключевые аспекты современного программирования, включая архитектуру MVC, взаимодействие с базами данных, межпроцессные коммуникации, многопоточность и сетевые технологии.
Основной акцент делается на освоении паттерна MVC в Qt: работе с моделями данных (QAbstractItemModel), представлениями (QAbstractItemView) и делегатами, а также их интеграции с реляционными базами через QSqlTableModel и QSqlQueryModel.
Значительная часть модуля посвящена параллельным вычислениям: изучаются процессы (QProcess), потоки (QThread, QtConcurrent) и механизмы синхронизации (QMutex, QSemaphore), включая способы обмена данными через разделяемую память (QSharedMemory).
Практическая часть включает разработку сетевых приложений с использованием протоколов TCP/UDP (QTcpSocket, QUdpSocket) и работу с высокоуровневыми сетевыми API, такими как QNetworkAccessManager.
Итоговая аттестация проводится в формате зачёта, на котором обучающиеся демонстрируют навыки, приобретённые в ходе выполнения практических заданий по всем разделам модуля.
Знания и умения, полученные в результате обучения
В результате освоения программы, обучающийся должен уметь:
• решать практические задачи по созданию приложений с использованием архитектуры MVC;
• использовать средства Qt для взаимодействия с БД, создания многопоточных приложений;
• запускать дочернее приложение и осуществлять обмен данными между приложениями.
В результате освоения программы обучающийся должен знать:
• основные классы модулей QtSQL (работа с БД), QtNetwork (обмен по сети);
• основные способы и классы для организации многозадачности;
• принципы создания многопоточного приложения;
• основные классы и принципы архитектуры MVC (model-view-controller).
В результате освоения программы обучающийся должен приобрести практический опыт:
• создания работоспособных приложений на языке С++ с использованием библиотеки Qt.
Курсы, в освоении которых помогут приобретенные знания
Курсы связанных направлений
Сегодня занятий по этому курсу нет.
32 800 ₽
Расчёт стоимости с учётом возможных скидок
32 800 ₽
Скидки предоставляются в зависимости от количества слушателей, суммы договора и других условий, оговариваемых с Заказчиком.
Расчёт стоимости с учётом возможных скидок представлен как справочная информация.
Фактический размер скидки может несколько отличаться из-за округления значения суммы.
Внимательно ознакомьтесь с условиями действующих
акций и скидок...
Занания ООП и основ работы в c библиотекой Qt.
Тема 1. Программирование с использованием архитектуры MVC
1.1 Основные классы архитектуры MVC
Классы модели (QAbstractItemModel, QStandartItemModel), представлений (QAbstractItemView).
Модельные индексы.
Роли элементов.
1.2 Дополнительные возможности архитектуры MVC
Использование делегатов.
Промежуточная модель данных.
Модели выбора.
Практические занятия
1. Реализация модели в виде таблицы хранимых данных
2. Отображение данных модели посредством QTableView
3. Использование делегатов для модификации данных в табличном представлении в удобном для пользователя виде
Тема 2. Взаимодействие с базами данных
2.1 Основные классы для работы с БД
Установление соединения с БД.
Добавление таблиц в БД, работа с записями в таблицах, модификация полей записи, выборка записей, удовлетворяющих условию, упорядочение записей
2.2 Использование архитектуры MVC для работы с БД
Классы моделей: QSqlQueryModel, QSqlTableModel, QSqlRelationalTableModel, QSqlRelationalDelegate.
Создание информационно-связанных форм (QDataWidgetMapper).
Практические занятия
1. Создание однотабличной базы данных и заполнение ее данными с использованием Qt.
2. Работа с БД посредством модели: связь модели с базой данных, занесение, модификация, удаление, упорядочение данных.
Тема 3. Межпроцессное взаимодействие
3.1 Реализация многозадачности посредством процессов
Формирование, хранение (QByteArray), передача «сырых» данных.
Классы ввода/вывода (QIODevice, QFile, QBuffer, QProcess).
3.2 Обмен данными между процессами
Обмен с дочерним процессом посредством перенаправления стандартного ввода/вывод.
Разделяемая память (QSharedMemory)
Практические занятия
1. Запуск обособленного дочернего процесса.
2. Запуск дочернего процесса с ожиданием его завершения.
3. Запуск дочернего процесса с возможностью обмена данными.
4. Использование разделяемой ппамяти.
Тема 4. Использование многопоточности
4.1 Реализация многозадачности посредством потоков
Потоковые классы (обзор).
Использование класса QThread.
Синхронизация потоков с помощью: QMutex, QSemaphore, QSystemSemaphore, QWaitCondition.
4.2 Высокоуровневый API для поддержки многопоточности
Использование классов QtConcurrent, QRunnable, QThreadPool.
Взаимодействие вторичного потока с главным.
Механизмы оповещения главного потока (события, сигналы-слоты).
Практические занятия
1. Использование класса QThread.
2. Создание нескольких потоков для параллельного выполнения задачи.
3. Использование различных объектов синхронизации.
Тема 5. Обмен данными по сети
4.1 Классы для поддержки сетевого взаимодействия
Сетевые протоколы (TCP, UDP).
Модель «клиент- сервер».
Низкоуровневый API для взаимодействия посредством сокетов: QTcpServer, QTcpSocket, QHostAddress, QUdpSocket.
Обмен сообщениями разной длины.
Асинхронный и блокирующий подход.
4.2 Высокоуровневый API для сетевого взаимодействия
Классы: QNetworkAccessManager, QNetworkRequest, QNetworkReply
Практические занятия
1. Создание простых клиента и сервера TCP. Многопоточный сервер TCP.
2. Создание клиента и сервера UDP.
Тема 5. Промежуточная аттестация.
Практические занятия Зачет