- •А.Ю. Быков
- •Быков Александр Юрьевич
- •Подхода
- •Оглавление
- •Введение
- •1. Лабораторная работа № 1. Изучение диалоговых окон и элементов управления в Win api
- •1.1. Цель и задачи работы, требования к результатам ее выполнения
- •1.2. Краткая характеристика объекта изучения
- •1.2.1. Классификация диалоговых окон
- •1.2.2. Окна сообщений
- •1.2.3. Создание модального диалогового окна
- •1.2.4. Элементы управления диалогового окна
- •Кнопка, контрольный переключатель, радио кнопка
- •Текстовое поле
- •Примеры
- •Примеры посылки сообщений списку
- •1.3. Задачи и порядок выполнения работы
- •Пример выполнения работы
- •1.4. Форма отчета по лабораторной работе
- •1.5. Вопросы для самоконтроля
- •2.1. Цель и задачи работы, требования к результатам ее выполнения
- •2.2. Краткая характеристика объекта изучения
- •2.2.1. Понятие класса и объекта
- •2.2.2. Доступность компонент класса
- •2.2.3. Основные элементы класса Компонентные данные и функции класса
- •Конструктор класса
- •Деструктор класса
- •2.3. Задачи и порядок выполнения работы
- •Пример выполнения работы
- •2.4. Форма отчета по лабораторной работе
- •2.5. Вопросы для самоконтроля
- •3.1. Цель и задачи работы, требования к результатам ее выполнения
- •3.2. Краткая характеристика объекта изучения
- •3.3. Задачи и порядок выполнения работы
- •Пример выполнения работы
- •3.4. Форма отчета по лабораторной работе
- •4.2.3. Особенности конструкторов при наследовании
- •4.2.4. Особенности деструкторов при наследовании
- •4.2.5. Переопределение функций. Виртуальные функции
- •4.3. Задачи и порядок выполнения работы
- •Пример выполнения работы
- •4.4. Форма отчета по лабораторной работе
- •5.3. Задачи и порядок выполнения работы
- •Пример выполнения работы
- •5.4. Форма отчета по лабораторной работе
- •6.2.2. Создание потока с помощью api – функций
- •6.2.3. Синхронизация потоков
- •1. Взаимное исключение.
- •3. Семафор
- •4. Событие
- •6.2.4. Синхронизация процессов
- •6.3. Задачи и порядок выполнения работы
- •Пример выполнения работы
- •6.4. Форма отчета по лабораторной работе
- •6.5. Вопросы для самоконтроля
- •7. Лабораторная работа № 7. Изучение библиотеки классов mfc
- •7.1. Цель и задачи работы, требования к результатам ее выполнения
- •7.2. Краткая характеристика объекта изучения
- •7.2.1. Обзор упрощенной иерархии классов библиотеки mfc
- •7.2.2. Состав простейшего приложения в mfc
- •7.2.3. Обработка сообщений в mfc
- •Некоторые функции обработчики
- •7.2.4. Вывод графики в mfc
- •Графические объекты
- •Добавление обработчиков сообщений и событий в однодокументном приложении
- •Вывод графики и перерисовка
- •7.3. Задачи и порядок выполнения работы
- •Пример выполнения работы
- •7.4. Форма отчета по лабораторной работе
- •7.5. Вопросы для самоконтроля
- •8. Лабораторная работа № 8. Изучение разработки приложений для платформы Microsoft .Net с использование библиотеки классов .Net Framework
- •8.1. Цель и задачи работы, требования к результатам ее выполнения
- •8.2. Краткая характеристика объекта изучения
- •8.2.1. Обзор платформы Microsoft .Net
- •8.2.2. Единая среда исполнения
- •8.2.4. Понятие управляемого кода
- •8.2.6. Система общих типов
- •8.2.7. Обзор библиотеки классов .Net Framework
- •8.2.8. Класс Form
- •8.2.9. Обработка событий
- •8.2.10. Основные элементы управления
- •8.4. Форма отчета по лабораторной работе
- •8.5. Вопросы для самоконтроля
- •Заключение
- •Рекомендуемые источники
- •Приложение а. Варианты заданий для выполнения лабораторных работ Варианты заданий для лабораторной работы № 1
- •Варианты заданий для лабораторной работы № 2
- •Варианты заданий для лабораторной работы № 3
- •Варианты заданий для лабораторной работы № 4
- •Варианты заданий для лабораторной работы № 5
- •Варианты заданий для лабораторной работы № 6
- •Часть I
- •Часть II
- •Варианты заданий для лабораторной работы № 7
- •Варианты заданий для лабораторной работы № 8
Варианты заданий для лабораторной работы № 5
Создать абстрактный класс- «геометрическая фигура» (на экране). Класс содержит следующие поля: координаты геометрического центра фигуры на экране; поле, задающее размер фигуры (например, расстояние от центра до вершины или радиус окружности в пикселях); поле, задающее угловое положение фигуры; поле, задающее угловую скорость вращения фигуры; поле, определяющее направление движения (возможно два варианта: движение по вертикали и движение по горизонтали); поле, определяющее скорость движения; поле, определяющее цвет фигуры; поле, содержащее хэндл окна для рисования; при необходимости можно включить другие поля. Класс включает: конструктор для инициализации полей, функцию, изменяющую угловое положение фигуры и положение на экране во время движения за один такт времени, и чистую виртуальную функцию (или функции) для рисования и стирания фигуры на экране.
На основе абстрактного класса «фигура» разработать три производных класса, задающих геометрические фигуры своего варианта, номера фигур представлены в таблице А.2. Создать несколько объектов каждого из трех классов (не менее трех) для этого использовать один массив указателей типа базового класса «фигура». Реализуя механизм полиморфизма, привести объекты классов в одновременное вращение вокруг их центров с различными угловыми скоростями и в движение с отскоком от краев окна в заданном режиме (по горизонтали или по вертикали). При этом использовать обработку сообщений от таймера. Таймер периодически с интервалом несколько миллисекунд генерирует сообщение, при обработке сообщения стирается старая фигура и рисуется новая на новом месте.
Геометрические фигуры:
Отрезок (линия).
Окружность с вырезанной четвертью.
Правильный многоугольник (число вершин- поле класса).
Ромб (не квадрат).
Прямоугольник (не квадрат).
Равнобедренный прямоугольный треугольник.
Параллелограмм, не являющийся ромбом или прямоугольником.
Таблица А.2 – Номера фигур для вариантов
|
№ варианта |
Номера фигур |
№ варианта |
Номера фигур |
|
1 |
1, 2, 3 |
15 |
1, 6, 7 |
|
2 |
1, 2, 4 |
16 |
2, 3, 4 |
|
3 |
1, 2, 5 |
17 |
2, 3, 5 |
|
4 |
1, 2, 6 |
18 |
2, 3, 6 |
|
5 |
1, 2, 7 |
19 |
2, 3, 7 |
|
6 |
1, 3, 4 |
20 |
2, 4, 5 |
|
7 |
1, 3, 5 |
21 |
2, 4, 6 |
|
8 |
1, 3, 6 |
22 |
2, 4, 7 |
|
9 |
1, 3, 7 |
23 |
3, 4, 5 |
|
10 |
1, 4, 5 |
24 |
3, 4, 6 |
|
11 |
1, 4, 6 |
25 |
3, 4, 7 |
|
12 |
1, 4, 7 |
26 |
3, 5, 6 |
|
13 |
1, 5, 6 |
27 |
3, 5, 7 |
|
14 |
1, 5, 7 |
28 |
3, 6, 7 |
Варианты заданий для лабораторной работы № 6
Часть I
Программу, разработанную в лабораторной работе № 5 преобразовать следующим образом: для обеспечения движения геометрических фигур в окне вместо таймера использовать потоки. Для каждой геометрической фигуры использовать свой поток. Потоковая функция должна быть одна, в качестве параметра в потоковую функцию передается указатель на объект «Фигура». При необходимости использовать синхронизацию.
