Лабораторная работа № 1. Изучение диалоговых окон и элементов управления в Win API А.Ю. Быков
Решение задач на языке программирования Си++ с использованием объектно-ориентированного подхода
Методические указания к лабораторным работам
по дисциплине «Алгоритмические языки» для студентов направления 1005010065 – Компьютерная безопасность и 1005030065 – Информационная безопасность автоматизированных систем
Москва
(С) 2015 МГТУ им. Н.Э. БАУМАНА
УДК 004.43
Рецензент:
Быков А.Ю.
Решение задач на языке программирования Си++ с использованием объектно-ориентированного подхода. М.: МГТУ имени Н.Э. Баумана, 2015. 131 с.
Методические указания являются руководством для выполнения лабораторных работ по дисциплине «Алгоритмические языки». Они охватывают основные средства языка программирования Си++ и библиотек классов MFC и .NET Framework.
Пособие предназначено для студентов МГТУ имени Н.Э. Баумана, обучающихся по специальностям 1005010065 «Компьютерная безопасность» и 1005030065 «Информационная безопасность автоматизированных систем». Может быть полезна студентам других специальностей, интересующимися программированием.
Рекомендовано учебно-методической комиссией факультета «Информатика и системы управления» МГТУ им. Н.Э. Баумана
Быков Александр Юрьевич
Решение задач на языке программирования Си++ с использованием объектно-ориентированного
Подхода
© 2015 МГТУ имени Н.Э. Баумана
Оглавление
Введение. 6
1. Лабораторная работа № 1. Изучение диалоговых окон и элементов управления в Win API 8
1.1. Цель и задачи работы, требования к результатам ее выполнения. 8
1.2. Краткая характеристика объекта изучения. 8
1.2.1. Классификация диалоговых окон. 8
1.2.2. Окна сообщений. 9
1.2.3. Создание модального диалогового окна. 10
1.2.4. Элементы управления диалогового окна. 11
1.3. Задачи и порядок выполнения работы.. 13
1.4. Форма отчета по лабораторной работе. 16
1.5. Вопросы для самоконтроля. 17
2. Лабораторная работа № 2. Изучение классов языка Си++. 18
2.1. Цель и задачи работы, требования к результатам ее выполнения. 18
2.2. Краткая характеристика объекта изучения. 18
2.2.1. Понятие класса и объекта. 18
2.2.2. Доступность компонент класса. 19
2.2.3. Основные элементы класса. 20
2.3. Задачи и порядок выполнения работы.. 22
2.4. Форма отчета по лабораторной работе. 26
2.5. Вопросы для самоконтроля. 26
3. Лабораторная работа № 3. Изучение перегрузки стандартных операций в языке Си++. 27
3.1. Цель и задачи работы, требования к результатам ее выполнения. 27
3.2. Краткая характеристика объекта изучения. 27
3.3. Задачи и порядок выполнения работы.. 28
3.4. Форма отчета по лабораторной работе. 31
3.5. Вопросы для самоконтроля. 31
4. Лабораторная работа № 4. Изучение возможностей наследования классов. 32
4.1. Цель и задачи работы, требования к результатам ее выполнения. 32
4.2. Краткая характеристика объекта изучения. 32
4.2.1 Общие сведения о наследовании классов. 32
4.2.2 Статусы доступа при наследовании классов. 33
4.2.3. Особенности конструкторов при наследовании. 33
4.2.4. Особенности деструкторов при наследовании. 34
4.2.5. Переопределение функций. Виртуальные функции. 34
4.3. Задачи и порядок выполнения работы.. 35
4.4. Форма отчета по лабораторной работе. 37
4.5. Вопросы для самоконтроля. 37
5. Лабораторная работа № 5. Изучение абстрактных классов. 38
5.1. Цель и задачи работы, требования к результатам ее выполнения. 38
5.2. Краткая характеристика объекта изучения. 38
5.3. Задачи и порядок выполнения работы.. 39
5.4. Форма отчета по лабораторной работе. 48
5.5. Вопросы для самоконтроля. 48
6. Лабораторная работа № 6. Изучение потоковой многозадачности. 49
6.1. Цель и задачи работы, требования к результатам ее выполнения. 49
6.2. Краткая характеристика объекта изучения. 49
6.2.1. Понятие многозадачность в Windows. 49
6.2.2. Создание потока с помощью API – функций. 50
6.2.3. Синхронизация потоков. 51
6.2.4. Синхронизация процессов. 55
6.2.6. Создание потока в Си++ с помощью стандартной библиотеки C++. 55
6.3. Задачи и порядок выполнения работы.. 58
6.4. Форма отчета по лабораторной работе. 70
6.5. Вопросы для самоконтроля. 70
7. Лабораторная работа № 7. Изучение библиотеки классов MFC.. 71
7.1. Цель и задачи работы, требования к результатам ее выполнения. 71
7.2. Краткая характеристика объекта изучения. 71
7.2.1. Обзор упрощенной иерархии классов библиотеки MFC.. 71
7.2.2. Состав простейшего приложения в MFC.. 73
7.2.3. Обработка сообщений в MFC.. 73
7.2.4. Вывод графики в MFC.. 74
7.3. Задачи и порядок выполнения работы.. 77
7.4. Форма отчета по лабораторной работе. 86
7.5. Вопросы для самоконтроля. 86
8. Лабораторная работа № 8. Изучение разработки приложений для платформы Microsoft .NET с использование библиотеки классов .NET Framework. 87
8.1. Цель и задачи работы, требования к результатам ее выполнения. 87
8.2. Краткая характеристика объекта изучения. 87
8.2.1. Обзор платформы Microsoft .NET. 87
8.2.2. Единая среда исполнения. 88
8.2.3. Новые возможности Си++. 88
8.2.4. Понятие управляемого кода. 89
8.2.5. Пространство имен Си++. 89
8.2.6. Система общих типов. 90
8.2.7. Обзор библиотеки классов .NET Framework. 90
8.2.8. Класс Form.. 91
8.2.9. Обработка событий. 92
8.2.10. Основные элементы управления. 92
8.3. Задачи и порядок выполнения работы.. 94
8.4. Форма отчета по лабораторной работе. 99
8.5. Вопросы для самоконтроля. 99
Заключение. 100
Рекомендуемые источники. 101
Приложение А. Варианты заданий для выполнения лабораторных работ. 102
Введение
Язык программирования Си++ разработан фирме Bell Labs в начале 1980-х годов, создателем языка считается Бьерн Страуструп [1]. Он предложил ряд усовершенствований к языку Си, главное, дополнительно к возможностям языка Си язык Си++ включает объектно-ориентированные средства. Первоначально новый язык называли «Си с классами», название «Си++» появилось в 1983 г.
Язык Си++ содержит все возможности языка Си, который был ориентирован, прежде всего, на системное программирование, и содержит средства, присущие языкам высокого уровня, ориентированным на прикладное программирование.
Синтаксис языка Си++ оказался настолько удачным, что многие языки программирования, созданные позже для других целей, например, для разработки Интернет приложений, наследовали основные элементы синтаксиса языка Си++. К таким языкам относятся: Java, C# (Си шарп), PHP. Изучив язык Си++, освоить данные языки можно достаточно быстро.
Методические указания к лабораторным работам включают в себя работы по решению различных задач на языке Си++. Рассмотрены примеры решения задач, с использованием следующих синтаксических конструкций и возможностей языка: классы языка Си++, перегрузка стандартных операций, наследование классов, абстрактные классы и полиморфизм, применение библиотек классов, таких как, MFC и .NET Framework для решения различных задач, потоковая многозадачность.
При выполнении лабораторных работ целесообразно использовать программный продукт Microsoft Visual Studio версии 2013 или более поздних версий. Студент может этот программный продукт получить бесплатно, воспользовавшись программой DreamSpark (бывшая MSDN AA) [2], для этого достаточно зарегистрироваться на сайте библиотеки МГТУ им. Н.Э. Баумана.
При подготовке отчета по каждой лабораторной работе необходимо последовательно и полно представить все основные шаги алгоритма решения задачи. В тексте программы необходимо представить необходимые комментарии. Студент должен быть знаком с основными понятиями объектно-ориентированного программирования и быть способным ответить на предложенные ему контрольные вопросы. Типовые варианты лабораторных работ представлены в приложении А. Студент должен выбрать свой вариант в соответствии с номером в списке группы в электронном университете.
Целевая аудитория методических указаний - студенты МГТУ имени Н.Э. Баумана, обучающиеся по специальностям 1005010065 «Компьютерная безопасность» и 1005030065 «Информационная безопасность автоматизированных систем», также методические указания могут быть использованы студентами других специальностей, занимающимися программированием.
Лабораторная работа № 1. Изучение диалоговых окон и элементов управления в Win API
|