- •А.Ю. Быков
- •Быков Александр Юрьевич
- •Подхода
- •Оглавление
- •Введение
- •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
1.4. Форма отчета по лабораторной работе
Отчет должен содержать: титульный лист, цель работы, условие задачи, исходные тексты программ с комментариями, скриншот окна с данными, выводы по работе.
1.5. Вопросы для самоконтроля
1. Модальные диалоговые окна.
2. Создание диалогового окна в Win API.
3. Основные элементы управления в диалоговом окне.
4. Обработка сообщений от элементов управления.
5. Изменение состояний элементов управления с помощью механизма отправки сообщений.
2. Лабораторная работа № 2. Изучение классов языка Си++
2.1. Цель и задачи работы, требования к результатам ее выполнения
Цель работы состоит в изучении основных понятий объектно- ориентированного программирования языка Си++ – классов и объектов, и овладении навыками разработки программ на языке Си++ с использованием объектно- ориентированных средств. Для достижения цели необходимо выполнить следующие задачи:
- изучить необходимые учебные материалы, посвященные основам объектно- ориентированного программирования на языке Си++ [1, 3];
- разработать программу на языке Си++ для решения заданного варианта задания;
- отладить программу;
- выполнить решение контрольного примера с помощью программы и ручной расчет контрольного примера;
- подготовить отчет по лабораторной работе.
2.2. Краткая характеристика объекта изучения
2.2.1. Понятие класса и объекта
Класс в языке Си++ – это новый тип, определяемый программистом, включающий данные (поля класса) и методы (функции) для обработки этих данных. Переменные этого типа называются объектами [1, 3].
Формат объявления класса:
<Ключевое слово> <Имя_класса>
{
<список компонент>
};
В качестве ключевого слова используется одно из трех ключевых слов:
- struct
- class
- union
Можно дать такое определение класса через структуру, которая была в языке Си. Класс – это структура, в которую введены методы для обработки полей.
Объекты – это переменные типа класса. Формат определения объектов:
<Имя_класса> <Имя_объекта1>,…<Имя_объекта_N>;
Обращение к полям и методам класса внутри методов класса просто по имени, а за пределами класса через имя объекта и операцию «.» или через имя указателя на объект и операцию «->». Каждый объект класса имеет в оперативной памяти свои копии полей класса.
Пример работы с полями:
struct A { int i; void print() { printf(“i=%d”, i); } };
A a1; A *pA=&a1;
a1.i=10; a1.print(); pA->i=10; pA->print();
a1.A::i=10; a1.A::print(); pA->A::i=10; pA->A::print();
2.2.2. Доступность компонент класса
Свойство доступности определяет возможность доступа к полям и методам за пределами класса (через имя объекта или через указатель на объект).
Существуют три статуса доступа:
public (полностью доступны за пределами класса);
private (не доступны за пределами класса, можно обращаться к компонентам только в методах своего класса);
protected (доступны только в своем классе и в производных классах).
По умолчанию, если класс определен с ключевым словом struct, то все компоненты имеют статус доступа public. Если с ключевым словом union, тоже public, но все поля каждого объекта располагаются в памяти, начиная с одного адреса. Если класс определен с ключевым словом class, то все поля и методы по умолчанию имеют статус доступа private.
Статус доступа можно изменить с помощью соответствующих модификаторов, что продемонстрировано в следующем примере:
struct A
{
…… // Статус доступа public
private:
………. // Статус доступа private
protected:
……….// Статус доступа protected
};
class B
{
…… // Статус доступа private
public:
………. // Статус доступа public
protected:
……….// Статус доступа protected
};
