- •А.Ю. Быков
- •Быков Александр Юрьевич
- •Подхода
- •Оглавление
- •Введение
- •1. Лабораторная работа № 1. Изучение диалоговых окон и элементов управления в Win api
- •1.1. Цель и задачи работы, требования к результатам ее выполнения
- •1.2.2. Окна сообщений
- •1.2.3. Создание модального диалогового окна
- •1.2.4. Элементы управления диалогового окна
- •1.2. Краткая характеристика объекта изучения
- •1.2.1. Классификация диалоговых окон
- •Кнопка, контрольный переключатель, радио кнопка
- •Текстовое поле
- •Примеры
- •Примеры посылки сообщений списку
- •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
Варианты заданий для лабораторной работы № 3
Дан класс (например, с именем Vector), задающий вектор размерности n. Поля класса: указатель на массив, задающий вектор (тип элемента int или double в зависимости от варианта), массив должен создаваться динамически, число элементов (размерность) вектора (тип int). Класс включает: конструктор без параметров, задающий пустой вектор (число элементов равно 0), конструктор, создающий объект вектор на основе обычного одномерного массива размерности n, деструктор.
Необходимо перегрузить операции и продемонстрировать их работу. Перегрузить операцию [] (обращение к элементу вектора по индексу) и операцию = (копирование вектора или создание копии вектора).
Варианты заданий представлены в таблице А.1.
Таблица А.1 – Варианты заданий
|
Описание операции перегруженной операции |
Тип элемента вектора (массива) |
Типы операндов и результата для перегруженной операции |
№ варианта | |||
|
Первый операнд |
Второй операнд |
Результат |
| |||
|
+ сложение векторов одинаковой размерности, на выходе вектор такой же размерности элемент которого равен сумме соответствующих элементов двух векторов |
double |
Vector |
Vector |
Vector |
| |
|
Vector |
double * |
Vector |
| |||
|
double * |
Vector |
Vector |
| |||
|
double * |
Vector |
double * |
| |||
|
Vector |
Vector |
double * |
| |||
|
Vector |
double * |
double * |
| |||
|
+ сложение векторов, на выходе вектор, длина которого сумме длин векторов вначале идут элементы первого вектора, затем второго, если один из векторов задан обычным массивом, то считать, что его длина равна длине вектора, заданным объектом класса |
double |
Vector |
Vector |
Vector |
| |
|
Vector |
double * |
Vector |
| |||
|
double * |
Vector |
Vector |
| |||
|
double * |
Vector |
double * |
| |||
|
Vector |
Vector |
double * |
| |||
|
Vector |
double * |
double * |
| |||
|
* умножение вектора на число, на выходе вектор такой же размерности, каждый элемент которого равен произведению соответствующего элемента исходного вектора на число |
double |
Vector |
double |
Vector |
| |
|
double |
Vector |
Vector |
| |||
|
Vector |
double |
double * |
| |||
|
double |
Vector |
double * |
| |||
|
++ каждый элемент исходного вектора увеличивается на 1 |
int |
Vector |
_____ |
Vector (тот же объект) |
| |
|
* скалярное произведение векторов (одинаковой размерности), на выходе значение этого произведения |
double |
Vector |
Vector |
double |
| |
|
Vector |
double * |
double |
| |||
|
double * |
Vector |
double |
| |||
|
^ побитовая операция с двумя векторами одинаковой размерности, на выходе вектор такой же размерности элемент, которого равен битовой операции ^ соответствующих элементов двух векторов |
int |
Vector |
Vector |
Vector |
| |
|
Vector |
int * |
Vector |
| |||
|
int * |
Vector |
Vector |
| |||
|
int * |
Vector |
int * |
| |||
|
Vector |
Vector |
int * |
| |||
|
Vector |
int * |
int * |
| |||
|
-- каждый элемент исходного вектора уменьшается на 1 |
int |
Vector |
_____ |
Vector (тот же объект) |
| |
