- •Методические указания к лабораторным работам
- •Лабораторная работа №1 простые программы с циклами и операторами консольного ввода/вывода
- •Задание
- •Описание примера
- •Методика выполнения
- •Содержание отчета
- •Контрольные вопросы
- •Лабораторная работа №2 работа с текстовыми файлами, структурами данных и меню
- •Задание
- •Структурное программирование и функциональная декомпозиция системы
- •Функции
- •Организация меню в консольном приложении
- •Структуры данных
- •Операции с файлами
- •Методика выполнения
- •Содержание отчета
- •Контрольные вопросы
- •Лабораторная работа №3 разработка и спецификация функций и модулей программы
- •Задание
- •Модульная структура программ
- •Параметры командной строки
- •Методика выполнения
- •Содержание отчета
- •Контрольные вопросы
- •Лабораторная работа №4 разработка и спецификация структур данных, использование указателей и динамических массивов структур
- •Задание
- •Указатели
- •Методика выполнения
- •Содержание отчета
- •Контрольные вопросы
- •Лабораторная работа №5 использование объектно-ориентированного программирования в разработке приложений
- •Задание
- •Конструкторы и деструкторы
- •Конструктор по умолчанию
- •Конструктор копирования
- •Массивы объектов
- •Friend-конструкции
- •Методика выполнения
- •Содержание отчета
- •Контрольные вопросы
- •Лабораторная работа №6 использование наследования, полиморфизма и абстрактных классов
- •Задание
- •Наследование данных и методов
- •Полиморфизм и виртуальные функции
- •Абстрактный класс
- •Методика выполнения
- •Содержание отчета
- •Контрольные вопросы
- •Лабораторная работа №7
- •Сложные структуры из объектов классов
- •Цель работы - изучение организации различных структур данных и разработка методов манипулирования данными.
- •Задание
- •Методика выполнения
- •Содержание отчета
- •Контрольные вопросы
- •Лабораторная работа №8 разработка windows-интерфейса приложения
- •Задание
- •Методика выполнения
- •Содержание отчета
- •Контрольные вопросы
- •Лабораторная работа №9 разработка и использование com-сервера
- •Задание
- •Шаблоны классов
- •Использование библиотеки atl для создания серверов сом
- •Методика выполнения
- •Содержание отчета
- •Контрольные вопросы
- •Литература
Методика выполнения
Разработайте модель организации данных и представьте ее в виде схемы. Изобразите на схеме выполнение операций добавления, удаления и перестановки элементов при сортировке.
Запустите MS Visual Studio и создайте новый проект консольного приложения для платформы Win32.
Скопируйте и подключите к проекту модули объявления и определения классов из работы №6. Используя определение абстрактного класса из работы № 6, создайте класс для представления заданной структуры объектов (см. таблицу).
Определите методы класса для выполнения операций добавления, удаления, редактирования, отображения, поиска и сортировки.
Переопределите методы классов, выполняющие операции с бинарным файлом, заменив библиотеку stdio.h библиотекой классов потокового ввода/вывода.
Содержание отчета
Отчет готовится в письменном или печатном виде один на бригаду. В отчет включить модель данных и схемы выполнения операций пунктов 2.4, 2.5 и 2.6 задания, листинги модулей, результаты тестовых прогонов программы. Листинги должны содержать спецификации модулей и функций, иметь структурированный вид и комментарии.
Контрольные вопросы
Что означает зарезервированное ключевое слово this в C++?
Какой общий принцип используется при создании сложных структур данных из объектов классов?
Назовите основные операции со стеком.
Как устроены различные виды списков?
Что такое бинарное дерево?
В чем состоит отличие линейного списка от циклического?
В чем разница между однонаправленными и двунаправленными списками?
С помощью каких классов и методов библиотеки классов потокового ввода/вывода организуется работа с текстовыми файлами?
Лабораторная работа №8 разработка windows-интерфейса приложения
Цель работы – знакомство на практике с приемами программирования на С++, применяемыми при разработке Windows-приложений с графическим интерфейсом пользователя и событийным управлением.
Задание
Разработать на языке С++ 7-ю версию приложения с графическим Windows-интерфейсом пользователя.
Приложение должно содержать одно диалоговое окно с главным меню.
Для вывода таблицы данных использовать список (LISTBOX).
Поля текущей строки таблицы отображать под таблицей отдельно с помощью элементов управления редактор (EDIT). Для подписей полей использовать статический элемент – метка (STATIC). Использовать эти поля также для ввода и редактирования данных в таблице.
Для запуска функций приложения использовать кнопки (BUTTON) и пункты меню.
Для вывода сообщений пользователю использовать всплывающие окна.
Краткая теория
Окна, элементы управления, диалоги
Графический интерфейс пользователя в Windows формируется из окон, блоков диалога и различных элементов управления.
Графические пользовательские интерфейсы поддерживаются операционными системами Windows, Apple Macintosh, OS/2 и т. д. В рамках указанных операционных систем для таких интерфейсов разработаны наборы стандартных компонентов взаимодействия с пользователем. Эти наборы не идентичны, как и основные приемы работы с интерфейсами различных операционных систем.
Пользовательские интерфейсы большинства современных программ строятся по технологии WIMP: W - Windows (окна), I - Icons (пиктограммы), М - Mouse (мышь), Р - Pop-up (всплывающие или выпадающие меню). Основными элементами графических интерфейсов, таким образом, являются: окна, пиктограммы, компоненты ввода-вывода и мышь, которую используют в качестве указующего устройства и устройства прямого манипулирования объектами на экране.
Окна. Окно - обычно прямоугольная, ограниченная рамкой область физического экрана. Окно может менять размеры и местоположение в пределах экрана. Все окна можно разделить на 5 категорий:
основные окна (окна приложений);
дочерние или подчиненные окна;
окна диалога;
информационные окна;
окна меню.
Окно приложения Windows (рис. 8.14) обычно содержит: рамку, ограничивающую рабочую область окна, строку заголовка с кнопкой системного меню и кнопками выбора представления окна и выхода, строку меню, пиктографическое меню (панель инструментов), горизонтальные и вертикальные полосы прокрутки и строку состояния.
Дочернее окно Windows (рис. 8.15, а) используют в многодокументных программных интерфейсах (MDI), предполагающих, что программное обеспечение должно работать с несколькими документами одновременно. В отличие от окна приложения дочернее окно не содержит меню. В строке заголовка - специальное имя, идентифицирующее связанный с ним документ или файл. Пиктограммы всех дочерних окон одинаковы.
Диалоговое окно Windows (рис. 8.15, б) используют для просмотра и задания различных режимов работы, необходимых параметров или другой информации. Оно может содержать:
строку заголовка с кнопкой системного меню;
компоненты, обеспечивающие пользователю возможность ввода или выбора ответа;
вспомогательные компоненты, обеспечивающую подсказку, напри мер, поле предварительного просмотра или кнопку вызова справки.
Как правило, размер диалогового окна неизменяем, но его можно перемещать по экрану.
Информационные окна бывают двух типов: окна сообщений и окна помощи. Окна сообщений (рис. 8.15, в), кроме заголовка с кнопкой системного меню, обычно содержат текст сообщения и одну или несколько кнопок реакции пользователя, например, кнопки Yes и No или кнопки Yes, No и Cancel.
Окно помощи имеет более сложную структуру: оно может содержать меню, полосы прокрутки и информационная область, т. е. по структуре оно аналогично окну приложения, но отличается от него тем, что имеет узко специальное назначение, обеспечивая навигацию по справочной информации.
Окна меню Windows (рис. 8.15, г) можно использовать как открывающиеся панели иерархического меню или как отдельные контекстные меню. Каждой строке окна меню может соответствовать:
команда;
меню следующего уровня, что обозначается стрелкой;
окно диалога, что обозначается тремя точками.
Кроме того, в некоторых строках добавляется указание клавиш быстрого вызова.
Пиктограммы. Пиктограмма представляет собой небольшое окно с графическим изображением, отражающим содержимое буфера, с которым она связана. Различают:
программные пиктограммы;
пиктограммы дочерних окон;
пиктограммы панели инструментов;
пиктограммы объектов.
Программными пиктограммами, которые связаны с соответствующей программой, управляет операционная система. Так, можно «свернуть» окно приложения в пиктограмму на панели задач Windows или «развернуть» его обратно «на рабочий стол».
Аналогично многодокументная программная система управляет пиктограммами дочерних окон, обеспечивающими доступ к различным документам, одновременно обрабатываемым программной системой.
Пиктограммы панели инструментов обычно дублируют доступ к соответствующим функциям через меню, обеспечивая их быстрый вызов.
Пиктограммы объектов используют для прямого манипулирования этими объектами.
Как правило, все пиктограммы можно перемещать мышью. Кроме того, для облегчения работы с пиктограммами обычно используют «всплывающие» подсказки, которые появляются, если пользователь в течение некоторого времени удерживает мышь над пиктограммой панели инструментов.
Прямое манипулирование изображением. Прямое манипулирование изображением - это возможность замены команды воздействия на некоторый объект физическим действием в интерфейсе, осуществляемым с помощью мыши. При этом любая область экрана рассматривается как адресат, который может быть активизирован при подведении .курсора и нажатии клавиши мыши.
По реакции на воздействие различают следующие типы адресатов:
указание и выбор (развертывание пиктограмм, определение активно го окна и т. п.);
буксировка и «резиновая нить» (перенос объекта или его границ);
экранные кнопки и «скользящие» барьеры (выполнение дискретных или циклически повторяемых действий, например, выполнение некоторой операции или рисование, подразумеваемых при активизации определенной области экрана - кнопки).
Не последняя роль в графических интерфейсах отводится динамическим визуальным сигналам, которые представляют собой изменение изображения на экране. Основная цель этих сигналов заключается в предоставлении пользователям дополнительной информации. Простейшим примером такого сигнала является изменение изображения курсора мыши при выполнении конкретных операций, например, изображение его в форме песочных часов во время обработки. Другой пример - изменение изображения кнопки при нажатии на нее. Хотя в отличие от анимационных интерфейсов прямого манипулирования эти визуальные сигналы играют в графических интерфейсах вспомогательную роль, обеспечивая более реалистическую картинку.
Компоненты ввода-вывода. Как уже упоминалось, в окнах приложения могут размещаться специальные компоненты, используемые для ввода-вывода информации. Интерфейс практически любого современного программного обеспечения включает несколько меню: основное или «ниспадающее» иерархическое меню, пиктографические меню (панели инструментов) и контекстные меню для разных ситуаций. Любое из указанных меню представляет собой компонент ввода-вывода, реализующий диалог с пользователем, используя табличную форму.
Иерархические меню используют, чтобы организовать выполняемые программным обеспечением операции, если их число превышает 5-8 (6 в соответствии с рекомендациями фирмы IBM), и обеспечить пользователю их обзор. Панели инструментов и контекстные меню применяют для обеспечения быстрого доступа к часто используемым командам, обеспечивая пользователю возможность относительно свободной навигации.
Кроме меню в интерфейсе используют и другие компоненты ввода-вывода, которые можно разделить на три группы в соответствии с тем, какую форму диалога они реализуют: фразовую, табличную или смешанную. Директивная форма диалога обычно предполагает ввод комбинаций клавиш или перемещение пиктограмм, а потому не требует использования компонентов ввода-вывода. В табл. 8.2 приведены основные компоненты WINP-интерфейса Windows и даны рекомендации по их использованию.