Создание приложений с графическим интерфейсом пользователя. Оконное приложение и графический интерфейс пользователя Ос windows графический интерфейс и основы работы

27.06.2020

Программирование в Windows основывается на использовании функций API (Application Program Interface, т.е. интерфейс программного приложения).

Программа для Windows в значительной степени состоит из таких вызовов. Все взаимодействие с внешними устройствами и ресурсами операционной системы происходит посредством таких функций.

Программный интерфейс приложений

Windows API (Application Programming Interfaces) - общее наименование целого набора базовых функций интерфейсов программирования приложений операционных систем семейств Microsoft Windows.

Windows API в настоящее время поддерживает свыше тысячи вызовов функций, которые можно использовать в приложениях. Каждая функция Windows API имеет развернутое имя, написанное буквами как верхнего, так и нижнего регистров.

Все основные функции Windows объявляются в заголовочных файлах. Главный заголовочный файл называется WINDOWS.H, и в этом файле содержится множество ссылок на другие заголовочные файлы.

Основное отличие функций API от библиотечных функций С: код библиотечных функций связывается с кодом программы пользователя, а код функций API остается вне программы пользователя в динамически подключаемых библиотеках (DLL – Dynamic Link Library), что позволяет создавать более компактный и эффективный код приложений.

При запуске программы Windows она взаимодействует с операционной системой посредством процесса «динамического связывания». Большая часть динамических библиотек DLL расположена в каталоге WINDOWS\SYSTEM.

При компоновке программы для Windows, чтобы сделать ее исполняемой, необходимо связывать ее с «библиотеками импорта», поставляемыми в составе среды программирования (IDE – Integrated Development Environment), которой может являться, в частности, Microsoft Visual Studio. Библиотеки импорта содержат имена всех функций Windows из динамически подключаемых библиотек и ссылки на них. Компоновщик использует эту информацию для создания в исполняемом EXE-файле таблицы, которую Windows использует при загрузке программы для настройки адресов функций API.

Графический интерфейс пользователя

Графический интерфейс пользователя (Graphical User Interface, GUI) еще называют «визуальный интерфейс» или «графическая оконная среда».

GUI делает возможным использование графики на растровом экране. Графика дает лучшее восприятие элементов управления на экране, визуально богатую среду для передачи информации. В GUI экран становится устройством ввода и показывает различные графические объекты в виде картинок и конструкций для ввода информации, таких как кнопки или полосы прокрутки. Используя клавиатуру и манипулятор (мышь, тачпад), пользователь может непосредственно оперировать объектами на экране. Графические объекты можно перетаскивать, кнопки можно нажимать, полосы прокрутки можно прокручивать. Взаимодействие между пользователем и программой становится более тесным.

Пользователям не надо тратить слишком много времени на то, чтобы научиться пользоваться компьютером и составлять новые программы. Система Windows способствует этому, поскольку все программы для Windows выглядят и воспринимаются одинаково.

Любая программа для Windows имеет окно - прямоугольную область на экране, в котором приложение отображает информацию и получает реакцию от пользователя. Окно идентифицируется заголовком. Большинство функций программы запускается посредством меню. Слишком большой для экрана объем информации может быть просмотрен с помощью полос прокрутки. Некоторые пункты меню вызывают появление окон диалога, в которые пользователь вводит дополнительную информацию.

Программирование Windows-приложений тесно связано с понятиями объектно-ориентированного программирования . Главным объектом в операционной системе Windows является окно. Окно может содержать элементы управления: кнопки, списки, окна редактирования и др. Эти элементы, по сути, также являются окнами, но обладающими особыми свойствами.

Активное окно – окно, получающее реакцию от пользователя в данный момент.

Основными элементами окна являются

  • 1 — строка заголовка title bar
  • 2 — строка меню menu bar
  • 3 — системное меню system menu
  • 4 — кнопка сворачивания окна minimize box
  • 5 — кнопка разворачивания окна maximize box
  • 6 — рамка изменения размеров sizing border
  • 7 — клиентская область client area
  • 8 — горизонтальная и вертикальная полосы прокрутки scroll bars

Многозадачность

Многозадачность (multitasking ) - свойство операционной системы обеспечивать возможность параллельной (или псевдопараллельной) обработки нескольких процессов.

Операционная система Windows является многозадачной. Если программа DOS после своего запуска должна быть постоянно активной, и если ей что-то требуется (к примеру, получить очередную порцию данных с устройства ввода-вывода), то она сама должна выполнять соответствующие запросы к операционной системе, то в Windows все наоборот. Программа пассивна, после запуска она ждет, когда ей уделит внимание операционная система. Операционная система делает это посылкой специально оформленных групп данных, называемых сообщениями . Сообщения могут быть разного типа, они функционируют в системе достаточно хаотично, и приложение не знает, какого типа сообщение придет следующим.

Логика построения Windows-приложения должна обеспечивать корректную и предсказуемую работу при поступлении сообщений любого типа. Одновременно несколько программ могут выполняться и иметь вывод на экран. Каждая программа занимает на экране прямоугольное окно. Пользователь может перемещать окна по всему экрану, менять их размер, переключаться между разными программами и передавать данные от одной программы к другой.

Операционная система не сможет реализовать многозадачность без управления памятью. Так как одни программы запускаются, а другие завершаются, память фрагментируется. Операционная система Windows имеет средства управления фрагментами памяти.

Процессы и потоки

Процессом (process ) называется экземпляр программы, загруженной в память. Экземпляр программы может создавать потоки (thread ), которые представляют собой последовательность инструкций на выполнение.

Выполняются не процессы, а именно потоки. Любой процесс имеет хотя бы один поток. Этот поток называется главным (основным) потоком приложения .

Потоки на самом деле выполняются не одновременно, а по очереди. Распределение процессорного времени происходит между потоками, но переключение между ними происходит так часто, что кажется будто они выполняются параллельно.

Все потоки ранжируются по приоритетам. Приоритет потока обозначается числом от 0 до 31, и определяется исходя из приоритета процесса, породившего поток, и относительного приоритета самого потока. Таким образом, достигается наибольшая гибкость, и каждый поток в идеале получает столько времени, сколько ему необходимо.

Дескрипторы

Дескриптор (описатель) объекта — служебная структура данных, представляющая собой беззнаковое целое число и служащая для идентификации различных объектов. Дескриптор представляет собой указатель на некоторую системную структуру или индекс в некоторой системной таблице.

Примеры дескрипторов, описанных в заголовочном файле windows.h

typedef void *HBITMAP ; // дескриптор картинки
typedef void *HFONT ; // дескриптор шрифта

Контекст устройства

GDI – графический интерфейс устройства. Функции системной библиотеки GDI32.dll используются для вывода графики на экран.

Дескриптор контекста устройства - это паспорт конкретного окна для функций GDI. Контекст устройства фактически является структурой данных, которая внутренне поддерживается GDI. Он связан с конкретным устройством вывода информации (принтер, дисплей). Что касается дисплея, то в данном случае контекст устройства обычно связан с конкретным окном на экране.

Определение 1

Графический интерфейс пользователя (Graphical User Interface, GUI) – разновидность пользовательского интерфейса, в котором элементы интерфейса представлены пользователю на дисплее в виде графических изображений.

Графический интерфейс дает пользователю возможность с помощью манипуляторов (клавиатура, мышь, джойстик и т.п.) управлять всеми элементами интерфейса. Элементы графического интерфейса оформлены таким образом, чтобы отображать их назначение и свойства для облегчения понимания и освоения программ пользователями любого уровня.

Классификация

Выделяют следующие виды графического интерфейса:

  • простой: имеет типовые экранные формы и стандартные элементы интерфейса, которые обеспечивает сама подсистема графического интерфейса;
  • истинно-графический , двумерный : имеет нестандартные элементы интерфейса и оригинальные метафоры, которые реализуются собственными средствами приложения или сторонней библиотекой;
  • трёхмерный.

Замечание 1

Одним из требований к хорошему графическому интерфейсу программной системы является концепция DWIM (Do What I Mean – делай то, что я имею в виду). Данная концепция требует, чтобы система работала предсказуемо для интуитивного понимания пользователем действий , которые выполнит программа после получения его команды.

Достоинства

Графический интерфейс является интуитивно понятным, «дружелюбным» для пользователей любого уровня; для работы с программами обработки графики графический интерфейс является единственно возможным.

Недостатки

Графический интерфейс использует больше потребление памяти по сравнению с текстовым интерфейсом; сравнительная сложность организации удаленной работы; невозможна автоматизация работы при условии, если она не была заложена разработчиком программы; к графическому интерфейсу трудно привыкнуть пользователям, которые работали с интерфейсом командной строки.

Основные элементы графического интерфейса

Элемент интерфейса, элемент управления, виджет – примитив графического интерфейса пользователя, который имеет стандартный внешний вид и выполняет стандартные действия.

Рисунок 1.

Окно является одним из основных элементов интерфейса операционной системы Windows. Рабочий стол , на котором расположены программы и инструменты в виде значков или иконок. Окна папок Windows имеют одинаковый вид или интерфейс, что облегчает работу на ПК.

Рисунок 2. Вид окна папки и его элементы

Диалоговое окно – в графическом интерфейсе является специальным элементом интерфейса, предназначенным для вывода информации и (или) получения ответа от пользователя. Осуществляет двусторонний «диалог» между пользователем и ПК.

Рисунок 3. Пример диалогового окна

Диалоговые окна бывают модальными и немодальными , в зависимости от блокировки или возможности взаимодействия пользователя с приложением (или системой в целом) до получения ответа от него.

Простейшим типом диалогового окна является окно сообщения, которое предназначено для выведения сообщения и запрашивает у пользователя подтверждение того, что он прочитал сообщение, нажатием кнопки OK. Окно сообщения информирует пользователя о завершении действия, которое выполнялось, об ошибке или подобном случае, который не требует от пользователя никакого выбора.

В диалоговых окнах, которые посвящены настройкам параметров, встречаются особые значки – выключатели и переключатели:

Выключатель – значок (флажок) в виде «галочки» в квадратном окошечке, который показывает, что установленный элемент включен.

Соответственно отсутствие «галочки» означает, что данный элемент выключен. Включение/отключение выключателя осуществляется щелчком мыши по названию соответствующей команды. Выключатель может быть установлен сразу у нескольких команд.

Переключатель – значок в виде черного кружка в круглом окошке, установленный слева от команды. Включение/отключение, как и у выключателя, происходит щелчком мыши, но в отличие от выключателя, может быть включен только у одной команды из списка.

Окно приложения. Приложениями принято называть прикладные программы. Каждое приложение имеет главное окно. В ходе работы с приложением могут открываться дополнительные подчиненные окна.

Рисунок 4. Окно приложения – графического редактора Paint

Окно документа не может существовать самостоятельно, оно управляется каким-либо приложением. Такие окна называются дочерними. Они размещаются только внутри главного окна приложения и исчезают при закрытии главного окна.

Рисунок 5. Окно документа, управляемое приложением MS Word

Меню является важным элементом графического интерфейса пользователя, с помощью которого можно выбрать одну из нескольких перечисленных опций программы.

Выбор пунктов меню может осуществляться пользователем любым из указательных устройств ввода, которые предоставляет электронное устройство (с помощью мыши, клавиатуры, тачпада и т.п.).

Контекстное меню – элемент графического интерфейса операционной системы в виде списка команд, который вызывается пользователем для выбора необходимого действия над выбранным объектом. Команды контекстного меню относятся лишь к тому объекту, для которого это меню вызвано.

Элементами графического интерфейса операционной системы Windows также являются:

  • Значки, которыми обозначаются программы и документы. Для запуска выполняется двойной щелчок кнопки мыши по значку.
  • Ярлыки, которые используются для быстрого доступа к программе, которая может храниться не на Рабочем столе и даже на другом диске.
  • Панель задач располагается в нижней части экрана. На ней располагаются кнопка Пуск, кнопки открытых окон, индикаторы и время.

Взаимодействие человека и современного ПК осуществляется с помощью объектно-ориентированного графического интерфейса, в котором:

  • все объекты представлены в виде значков;
  • операции над объектами осуществляются в окнах;
  • основным элементом программного управления является меню;
  • основным элементом аппаратного управления являются различные манипуляторы.

Урок №12.
Тема: «Графический интерфейс Windows».
Цели урока:

- помочь учащимся усвоить понятие графический интерфейс, способы управления в Windows, дать основные понятия, необходимые для работы на компьютере.
- воспитание информационной культуры учащихся, внимательности, аккуратности, дисциплинированности, усидчивости.
- развитие познавательных интересов, навыков работы с мышью и клавиатурой, самоконтроля, умения конспектировать.

Оборудование:
доска, компьютер, компьютерная презентация.

План урока:
I. Орг. момент. (1 мин)
II. Проверка и актуализация знаний. (2 мин)
III. Теоретическая часть. (12 мин)
IV. Практическая часть. (16 мин)
V. Д/з (2 мин)
VI. Вопросы учеников. (5 мин)
VII. Итог урока. (2 мин)

Ход урока:
I. Орг. момент.

Приветствие, проверка присутствующих. Объяснение хода урока.

II. Актуализация знаний.
В настоящее время все операционные системы для персональных компьютеров обеспечивают взаимодействие с пользователем с помощью графического интерфейса.

Это позволяет даже начинающему пользователю компьютера уверенно работать в среде операционной системы (проводить операции с файлами, запускать программы и так далее).

На этом уроке мы рассмотрим, как же управлять этой самой главной и сложной программой, т.е. ОС Windows.

III. Теоретическая часть.

Графический интерфейс позволяет осуществлять взаимодействие человека с компьютером в форме диалога с использованием окон, меню и элементов управления (диалоговых панелей, кнопок и так далее).
Интерфейс - это посредник, переводчик, задача которого преобразовать все внутренние «рычаги управления» Windows в понятную людям графическую форму. Можно без конца спорить о многочисленных недостатках и недоработках в тех или иных элементах интерфейса Windows. Можно, потрясая пыльными историческими справочниками, доказывать, что все лучшее, что заключено в нем, Microsoft просто-напросто скопировала у своих конкурентов - Unix, MacOS, Linux, OS/2... Но только зачем? В любом случае то, что мы видим во время сеанса работы с Windows, выглядит не просто логично и удобно, но в некоторых случаях еще и просто красиво!

Интерфейс Windows прост и доступен, а разгадать почти все его загадки может практически каждый.

Для работы с графическим интерфейсом используется мышь или другое координатное устройство ввода, при этом пользователь должен уметь производить:
левый щелчок - однократное нажатие и отпускание основной (обычно левой) кнопки мыши;
правый щелчок - однократное нажатие и отпускание дополнительной (обычно правой) кнопки мыши;
двойной щелчок - два нажатия основной кнопки мыши с минимальным интервалом времени между ними;
перетаскивание (протаскивание) - нажатие левой или правой кнопки мыши и перемещение объекта с нажатой кнопкой.

Элементы графического интерфейса Windows :
Рабочий стол.
Название «Рабочий стол» подобрано удачно. На нем, как и на обычном рабочем столе расположены различные программы и инструменты, представленные в виде значков, или иконки.
Значки.
Значками в Windows обозначаются программы, документы. Запуск производится двойным щелчком кнопки мыши по значку. Программа может быть расположена непосредственно на Рабочем столе, а может быть скрыта глубоко на диске, но и в этом случае представлена на Рабочем столе своим образом – ярлыком.
Ярлыки.
Ярлык программы – это не сама программа, а только ее образ, указание на то место на диске, где она находится. Двойной щелчок по ярлыку также вызывает запуск программы. Ярлыки от значков отличаются наличием небольшой стрелочки внизу слева.
Панель задач.
Располагается в нижней части экрана. На ней находятся: кнопка Пуск, кнопки открытых окон, индикаторы и часы.
Окно.
Окно – один из главных элементов интерфейса Windows.

Рабочий стол. Как найти Рабочий стол? - спрашивают многие начинающие пользователи. Никак. В том смысле, что Рабочий стол не найти просто невозможно. Ибо все, что вы видите на своем экране после запуска Windows - это он и есть.

Название «Рабочий стол» выбрано крайне удачно. На своем обычном рабочем столе люди держат все необходимые им инструменты, документы и так далее. На виртуальном Рабочем столе Windows также собраны самые необходимые вам программы и инструменты, представленные в виде значков.

На нашем Рабочем столе пока что лежат лишь несколько небольших значков. Какие-то из них выглядят как прямоугольные папки желтого цвета, какие-то обозначены другими картинками. У одних в левом нижнем углу красуется значок в виде стрелочки, у других нет... Нетрудно запутаться.

Кроме значков, на Рабочем столе могут располагаться окна, контекстное меню и многое другое.

Значки . И программы, и документы обозначаются похожими друг на друга значками-иконками. Щелкнув по любому из них, вы можете запустить нужную вам программу и тут же открыть в ней документ. Все просто - сиди себе и щелкай по значкам!

Значок соответствует одному файлу - документу или программе. Программа часто состоит из нескольких сотен файлов, но Microsoft считает (и не без основания), что пользователю совершенно не нужно видеть их все. Хватит одного - того файла, который запускает программу. И это часто разумно.

Значки документа заменяют расширения файлов. Так что в подписи к значкам вы увидите только название файла.
У каждой программы, установленной в Windows, есть собственный, оригинальный значок. И значок этот, как правило, в той или иной мере присутствует в значке документа, созданного с помощью этой программы. Таким образом, глядя на значок, вы всегда узнаете, какому именно типу файлов он соответствует.

Значок может обозначать не только файл, но и папку. Или каталог, или директорию - кто как привык. Щелкнув по нему левой кнопкой мышки, вы можете раскрыть папку в виде окна. При этом все файлы, живущие в этой папке, будут представлены своеобразной «портретной галереей» - рядом значков с подписями.
Щелкнув по значку программы, вы дадите команду на ее выполнение - как говорят компьютерщики, «запустите».

Любые значки вы можете переименовывать, перемещать из папки в папку, удалять или копировать с помощью мышки. Однако помните, что любые операции над значками - это операции с оригинальными файлами программ или документом Удаляя значок с Рабочего стола или из любой папки, вы тем самым физически удаляете файл с диска - а это стоит делам только в том случае, если вы точно уверены в необходимости этого действия.

Ярлыки . Существуют, однако, и другие типы значков, любые операции с которыми ни как не отразятся на оригинальных файлах - ярлыки. Эти значки отличаются от обычных наличием маленькой черной стрелочки в левом нижнем углу.

Английский термин shortcut переведя словом «ярлык» не совсем удачно. Точнее было бы «указатель», поскольку этот самый shortcut на Рабочем столе указывая на файл, находящийся в другом месте, служит как бы его тенью, отражением.

Дело в том, что, несмотря на всю Красочность и новизну графического интерфейса Windows, под ним скрывается обычная, знакомая нам всем структура «дерева каталогов». Каждая программа лежит в своем собственном каталоге. И наш Рабочий стол - это, по сути дела, самый настоящий каталог.

Что происходит, если мы хотим пометить на наш Рабочий стол какую-нибудь программу, например, Microsoft Word? Программу запускает файл winword.exe, который находится вместе с другими файлами Word в папке C:\Program Files\Microsoft Office\Office\. И переместить файл ни в какую другую папку, в том числе и на Рабочий стол, нельзя - программа работать не будет... Но можно создать на Рабочем столе указатель - ярлык! Этот значок будет отличаться от значка самой программы только стрелочкой в уголке, но зато предоставит пользователю прямо-таки неограниченные возможности! Значок можно безбоязненно переименовывать или удалять, не опасаясь за судьбу самой программы или документа - при любых изменениях они останутся в добром здравии.
Ярлыки не требуют присутствия в папке, куда мы этот ярлык поместим, самой программы. Внутри ярлыка находится не сама программа, а лишь ссылка, содержащая точный адрес программы.

Для быстрого доступа к дискам, принтеру, часто используемым документам целесообразно создать на рабочем столе ярлыки. Ярлык отличается от значка тем, что обозначает объект, фактически расположенный не на Рабочем столе, а в некоторой другой папке. Стрелочка означает, что мы имеем не сам объект, а ссылку на него. Ярлыки создаются перетаскиванием значков объектов на Рабочий стол.

Панель задач. В нижней части экрана располагается Панель задач, на которой находятся кнопка Пуск, кнопки выполняемых задач и открытых папок, индикаторы и часы. Кнопка Пуск позволяет вызывать Главное меню, которое обеспечивает доступ практически ко всем ресурсам системы и содержит команды запуска приложений, настройки системы, поиска файлов и документов, доступа к справочной системе и др.

Windows является многозадачной операционной системой, то есть параллельно могут выполняться несколько приложений. Каждое запущенное приложение обозначается кнопкой на Панели задач, при этом переход от работы в одном приложении к работе в другом может производиться с помощью щелчка по кнопке. Работающее (активное) приложение изображается на панели задач в виде нажатой кнопки.

На панели задач можно отобразить различные панели.В крайней правой части Панели задач находится языковая панель, на которой указывается язык ввода символов. Например, индикатор Ru обозначает, что в текущий момент используется русская раскладка клавиатуры.
Область уведомлений (tray(трей)) используется для отображения значков некоторых программ, связанных с работой компьютера. Чтобы не загромождать панель задач, вместо значков редко используемых объектов, представленных в области уведомления, может быть видна кнопка со стрелкой. Для отображения всех значков щелкните по этой кнопке.
Цифровые часы на панели задач показывают текущее время. Чтобы увидеть текущую дату, месяц и год, достаточно подвести к часам указатель мыши.

Окна . Важнейшим элементом графического интерфейса Windows являются окна, действительно ведь «windows» в переводе означает «окна». Существуют два основных типа окон - окна приложений и окна документов.
Окно – это обрамленная часть экрана, в которой отображается приложение, документ или сообщение.
Окна приложений. В окне приложения выполняется любое запущенное на выполнение приложение или отражается содержимое папки. Открыть или закрыть окно приложения - то же, что и запустить программу на выполнение или завершить ее. Окна приложений можно перемещать на любое место Рабочего стола, разворачивать на весь экран или сворачивать в кнопки на панели задач.

Основными элементами окна приложения являются :
рабочая область: внутренняя часть окна, содержит вложенные папки или окна документов;
границы: рамка, ограничивающая окно с четырех сторон. Размеры окна можно изменять, перемещая границу мышью;
заголовок: строка непосредственно под верхней границей окна, содержащая название окна;
значок системного меню: кнопка слева в строке заголовка открывает меню перемещения и изменения размеров окна;
строка меню: располагается непосредственно под заголовком, содержит пункты меню, обеспечивает доступ к командам;
панель инструментов: располагается под строкой меню, представляет собой набор кнопок, обеспечивает быстрый доступ к некоторым командам;
кнопки Свернуть, Развернуть/Восстановить, Закрыть расположены в верхней правой части окна.
полосы прокрутки. Если текст или картинка полностью не помещается в окне программы, то для ее просмотра снизу или справа появляются полосы прокрутки, которые можно двигать, открывая участки, не помещающиеся на экране.

Окна документов. Окна документов предназначены для работы с документами и «живут» внутри окон приложений. Можно раскрывать, сворачивать, перемещать или изменять размеры этих окон, однако они всегда остаются в пределах окна своего приложения. Окно документа имеет те же кнопки управления, что и окно приложения.

Окно документа содержит зону заголовка (содержащую имя документа) и часто полосы прокрутки (появляющиеся, когда документ не помещается полностью в окне) и линейки.

Окно является активным (текущим), если с ним в данный момент работает пользователь. В противном случае окно будет пассивным (в пассивном состоянии). Если окно находится в пассивном состоянии (зона заголовка не выделена цветом), то, щелкнув по любой его части мышью, можно перевести его в активное состояние.

Меню является одним из основных элементов графического интерфейса и представляет собой перечень команд (как правило, тематически сгруппированных), из которых необходимо сделать выбор (поместив на пункт меню указатель мыши и произведя щелчок). Выбор пункта меню приводит к выполнению определенной команды. Если за командой меню следует многоточие, то ее выбор приведет к появлению диалоговой панели, которая позволяет пользователю получить или ввести дополнительную информацию.

Вопросы:
Что такое графический интерфейс пользователя?
С помощью чего происходит управление в Windows?
Какие действия можно произвести с помощью мыши?
Перечислите элементы графического интерфейса Windows.
Что такое рабочий стол?
В чем отличие между значками и ярлыками?
Как получить доступ ко всем программам установленным на компьютере и ко всем настройкам Windows?
Где находятся цифровые часы?
Как переключить язык ввода с помощью мыши?
Как узнать текущую дату?
Перечислите основные элементы окна.

III. Практическая часть.

Сегодня на практической части мы продолжим работу с программой Блокнот и научимся копировать и перемещать текст. Для этих целей мы будем использовать буфер обмена. Буфер обмена – это область ОЗУ, предназначенная для временного размещения данных при переносе из одного места в другое. Эту память нам выделяет операционная система.

Чтобы поместить какие-то данные в буфер обмена необходимо их сначала выделить. Выделить текст в Блокноте можно разными способами, например:
удерживая нажатой кнопку перемещаться по тексту с помощью кнопок со стрелочками;
выделить текст, удерживая нажатой левую (основную) кнопку мыши;
для выделения нескольких частей текста, выделяйте их с помощью мыши, удерживая нажатой кнопку на клавиатуре;
для выделения всего текста дайте команду Правка → Выделить все;
для выделения всего текста можно воспользоваться специальной комбинацией клавиш +[A]…

Чтобы снять выделение достаточно щелкнуть левой кнопкой мыши в любом месте текста или нажать любую курсорную клавишу, не нажимая .

Но что делать после того, как текст выделен? Давайте обратимся к справочной системе Блокнота и найдем информацию о копировании текста. Учащиеся работают со справкой…
Чтобы вырезать, скопировать, вставить или удалить текст:
Чтобы вырезать фрагмент текста для переноса в другое место, выделите нужный текст, а затем выберите в меню Правка команду Вырезать.
Чтобы скопировать фрагмент текста для его вставки в другое место, выделите нужный текст, а затем выберите в меню Правка команду Копировать.
Чтобы вставить скопированный или вырезанный фрагмент текста, поместите курсор в место вставки, а затем выберите в меню Правка команду Вставить.
Чтобы удалить текст, выделите его и выберите в меню Правка команду Удалить.

А теперь задание: некий ученик Иванов Иван к уроку литературы выучил наизусть стих А.С. Пушкина «Зимнее утро», но на уроке растерялся и перепутал все строчки. Помогите Иванову вспомнить стихотворение.
Файл со стихом (с перепутанными строчками) – C:\Наш урок\Урок12 Практика.txt. Результат работы сохраните в свою папку под именем «Зимнее утро».
Учащиеся выполняют задание.

IV. Д/з
Знать, элементы графического интерфейса Windows, уметь работать с окнами. Учащимся, имеющим компьютеры дома, продолжить осваивать «слепой десятипальцевый метод печати».

Дополнительное задание: узнать, как можно создать дополнительную панель с ярлыками часто используемых вами программ.

V. Вопросы учеников.
Ответы на вопросы учащихся.

VI. Итог урока.
Подведение итога урока. Выставление оценок.
На уроке мы рассмотрели элементы графического интерфейса Windows. Так же мы научились перемещать часть текста, используя буфер обмена Windows.

Consol::WriteLine(“Привет мир!”);

Обработка событий в программах, которые создаются не вручную, а в системах программирования, строятся с помощью обработчиков событий.

Обработчик – это автоматически сгенерированная функция, связанная с определенными событиями.

При разработке программ, использующих событийную технологию, не следует делать предположений о времени реакций со стороны ОС Windows на то, или иное событие.

Тема №2 «Объектно-ориентированный подход к программированию»

Одной из серьезных проблем проектирования программных систем, является их сложность.

Невозможность понять, воспринимать программный код целостным и логичным образом, создает серьезные трудности получения качественного программного продукта.

Борьба со сложностью ведется разными путями. Существуют общие и специфические пути.

К общим относят: декомпозицию системы на простые части, многоуровневую организацию, а также ряд других методов.

К специфическим относят технологии программирования.

Объектный подход является одним из хорошо зарекомендовавшим себя на практике подходов к построению сложных программных систем. На его основе разрабатываются ОС, создаются библиотеки прикладных программ. Многие из этих библиотек имеют объектную организацию, что заставляет прибегать к категориям объектов и классов, даже в том случае, если сам язык программирования не является объектно-ориентированным.

Объектный подход базируется на нескольких принципах. Все они направленны на то, что бы представлять любую систему совокупностью классов, связанных друг с другом определенными отношениями.

Абстрагирование – это выделение важного, существенного, которое характеризует свойства и поведение системы, или отдельное её части.

Целью абстрагирования является выделение объектов – сущностей, которые распознаются, выделяются из мира и которые ведут себя особым образом.

Абстрагирование носит достаточно субъективный характер. Это означает ее многовариантность. Выделить классы и отношения можно многими способами. Качество абстрагирования оценивается исходя из прикладной задачи.

Наследование отражает стремление представить систему в виде нескольких уровней. По этой причине чаще употребляют термин «иерархия наследования». Наследование между классами дает возможность передавать поведение, свойства, а так же структуру класса в целом.

Наследование может быть единичным или множественным.

Единичное Множественное

Различные объектно-ориентированные языки программирования используют один из видов наследования. Например, в С++ - множественное, а в Java - допускается только единичное наследование.


Принцип полиморфизма предполагает использование одних и тех же классов, методов для различных целей и наоборот.

Примером полиморфной операции является операция «суммирования», в зависимости от прикладной, операция «суммирования» применяется к числам, строкам, логическим значениям. И в каждом случае дает соответствующий осмысленный результат.

Полиморфизм улучшает восприятие и понимание программного кода.

Инкапсуляция заключается в том, что все детали программной реализации поведения объектов скрываются от внешних пользователей.

Пользователи – это программы и их функции, которые используют класс..

Инкапсуляция, в-первую очередь, скрывает данные. Любой набор данных определяет состояние объекта, если состояние объекта доступно внешним пользователям, то они могут его изменять. Поскольку класс не контролирует эти изменения, их последствия непредсказуемы.

При разработке класса свойства в виде данных скрываются путем введения методов Setxxx() и Getxxx().

Отношения между классами

Структура классов отображается, часто, с помощью нотации языка UML.

В UML класс обозначается как:

«+» - открытые

«-» - инкапсулированные (закрытые)

При наследовании в базовый класс относят то общее, что существует для его потомков, т.е. производных классов. Производные классы часто называют специализацией базового.

Тема №3 «Отношения между классами»

При разработке объектных моделей число уровней наследования стремятся ограничивать тремя. Это есть некоторый компромисс между сложностью результата и полезностью от унаследованных функций.

Второе соотношение, которое связывает классы – это агрегирование . Отношение агрегирования предусматривает, что экземпляры одного класса объектов могут включать экземпляр других классов.

Агрегируемые объекты способны реализовать свои функции через вызовы агрегирующего объекта. Например, через методы формы можно заблокировать кнопки.

Система в целом, таким образом, приобретает новую функциональность подобно тому, как это происходит путем наследования. Таким образом, наследование и агрегирование являются равноценными приобретениями новых функций.

Композиция классов – это отношения подобные агрегированию, но отличающиеся тем, что требуется обязательное существование экземпляров классов, входящих в отношения.

Отношение ассоциации (ассоциативная связь) – это отношение имеет место в тех случаях, когда методы одного класса используют свойства и методы другого класса.

Чаще всего ассоциацией изображается взаимодействие клиентов и серверов. Сервер является объектом, который представляет свои свойства и методы другим объектам.

Используя принципы объектного подхода, разработчик создает объектную модель своего приложения, в нее входят описание классов и отношение классов.

Процесс получения объектной модели называют, объектной декомпозицией.

Качество объектной декомпозиции оцениваются следующим образом:

ü Количество классов, не должно быть большим (порядка 10);

ü Число связей стараются минимизировать;

ü Однородность предполагает, что система состоит из одинаковых (очень похожих) элементов.

ü Регулярность заключается в том, что элементы и связи образуют повторяющиеся геометрические структуры.

ü Устойчивость к изменениям задачи.
Неустойчивость считается объектная модель, в которой новая функциональность требует изменение существующих классов.
Устойчивой считается та, в которой новая функциональность реализуется как дополнение.

ü Повторное использование.
Если классы или объектные модели в целом сконструированы разумно, то они могут быть применены повторно при разработке других систем. Чаще всего это является следствием абстрагирования.

Интерфейс и реализация класса.

Описание класса на многих языках программирования состоит из интерфейса и реализации.

Интерфейсом класса называют описание наименований и типов, его свойств и методов. Зная интерфейс можно получить ту функциональность, которая заложена в классе.

На С++ интерфейс, чаще всего, записывается в файлах с расширением .h .

Реализация класса состоит из программного кода методов.

На С++ реализацию помещают в файлы с расширением .cpp.

Если в классе имеются функции без реализации, то класс называется абстрактным.

Абстрактные классы используются в качестве базовых в иерархиях наследования.

Методы объявленные в базовых наполняются реализацией в произвольных классах.

Тема №4 «Конструктор и деструкторы»

Среди методов класса особую роль играют два типа методов: конструкторы и деструкторы.

Конструктор предназначен для выполнения всех действий необходимых для создания экземпляра объекта. Конструктор запрашивает все необходимые ресурсы, в которых нуждается экземпляр. Обычно это память для хранения свойств, а так же ссылки на программный код методов класса. Кроме этого могут устанавливаться сетевые соединения и выполняться какие-либо специальные процедуры связанные, например, с защитой и безопасностью.

В классе может быть произвольное число конструкторов. Один из них является конструктором по умолчанию. Этот конструктор не содержит параметров и не имеет возвращаемого значения. Все конструкторы именуются также как классы.

Конструкторы с параметрами предназначены для того, чтобы создавать непустые экземпляры объектов. В качестве параметра конструктора задаются исходные данные для конструирования. Ими могут быть в частности любые другие типы или классы. В программном коде компилятором перегружается нужный конструктор. Например, объект строка может иметь конструктор для целых чисел, чисел с плавающей точкой, символьных массивов и т.д.

При разработке конструкторов не рекомендуется генерировать исключения. Поскольку в вызвавшей программе это создает серьезную неопределенность при создании массивов объектов. Чтобы обойти такую проблему создают пустые экземпляры, а затем их инициализируют. Пустые экземпляры никогда не выбрасывают исключения.

Метод деструктор предназначен для уничтожения экземпляра объекта и возврата выделенных ресурсов ОС. Деструктор не имеет параметров и является единственным в классе. Деструкторы вызываются неявным образом при выходе из программного блока. Все локальные объекты, как известно, должны быть уничтожены. Деструкторы выполняют уничтожение и делают это единственным образом.

На языке С++ деструктор называется также как класс, но с символом тильда (~).

Графический интерфейс является значительно более эффективным, чем символьный интерфейс, однако, сложность программирования графических образов и диалогов также значительно превосходит сложность программирования консольных приложений. Современные системы программирования дают набор классов для построения графических интерфейсов, это позволяет сделать программу более надежной.

Современным подходом к разработке приложений для многозадачных систем с графическим интерфейсом является программирование использующее каркас приложения. Каркас, по сути является работающей программой в состав которой перед компиляцией может добавляться программный код. Программный код каркаса в приложениях для windows содержит средства для обработки потока сообщений, а также средства для работы графических элементов windows. В каркас могут добавляться экземпляры элементов управления, среда позволяет манипулировать свойствами и методами этих объектов.

В программном коде для облегчения вызовов методов и свойств используют указатель this. Он не требует описания, но всегда соответствует контексту того класса объектов, для которого пишется программный код.

Тема №5 «Коллекция объектов»

Коллекция объектов является высокоуровневой структурой данных, которая реализована во многих библиотеках в объектном стиле. Коллекции объектов позволяют оперировать множествами произвольных объектов, которые связаны между собой некоторыми смысловыми связями. Эти связи характерны для целых групп задач. Чтобы упростить манипулирование такими множествами, в библиотеки вводят понятие коллекции.

Достоинство коллекции проявляется в сравнении с другими структурами данных, например, массивы имеют фиксированный размер и допускают размещение элементов только одного типа. Контейнерные структуры – вектор, имеют переменную длину, но сохраняют ограничение на единственный тип. Коллекции имеют переменную длину и в тоже время допускают хранение различных типов, в том числе и коллекции.

Примером отношений, которые могут существовать между объектами являются очередь или стэк.

Очередь предполагает, что элементы организованы в последовательность, причем добавление и удаление происходит специфическим образом: добавляются элементы только в конец, а извлекаются только с начала.

Стэк также предусматривает наличие последовательности с той лишь разницей, что извлечение элементов происходит из конца последовательности. Эти специальные операции относят к методам соответствующего класса коллекции.

В библиотеке.Net классы коллекций доступны в пространстве имен system::collection.

Классы с буквы I – интерфейс классы, абстрактные, без реализации.

Класс ArrayList позволяет создавать коллекции объектов последовательного характера. Здесь имитируется отношение характерное для списковой структуры.

Среди свойств ArrayList имеются свойства связанные с отображением и управлением длиной коллекции.

Свойство count возвращает количество элементов коллекции, и используется только для чтения.

Свойство Capacity (ёмкость) позволяет указать верхнее граничное значение числа элементов коллекции. Попытка добавить дополнительный элемент приведет к генерации (выбросу) исключения.

Свойство Item позволяет обратить к конкретному элементу коллекции.

Все коллекции содержат методы добавления элементов.

Метод Add – позволяет добавить новый элемент в ArrayList, и это добавление осуществляется в конец коллекции.

В классе ArrayList имеется метод BinarySearch – дихотомического поиска (половинного деления), следует обратить внимание отсортирован ли ArrayList и как выполняется операция сравнения с эталоном поиска.

Метод Contains предназначен для определения того присутствует ли заданный экземпляр объекта в коллекции. При использовании этого метода необходимо обратить внимание на то, как понимается эквивалентность двух объектов. Например, самым слабым предположением об эквивалентности может быть принадлежность к одному и тому же классу объектов. Наиболее сильным предположением может считаться двоичное совпадение областей памяти занимаемых объектами.

Метод IndexOf используется для нахождения заданного элемента (эталона) в коллекции. Метод возвращает индекс найденного элемента.

Метод LastIndexOf делает тоже, что и IndexOf, но с конца коллекции.

Метод Remove для удаления в коллекции. Часто эти методы полиморфны, что позволяет удалять по индексу или по значению.

Метод Sort позволяет сортировать элементы коллекции. Чтобы это сделать должна быть определена операция сравнения.

Класс BirArray дает возможность оперировать битами. В классе BirArray присутствует методы для выполнения логических операций над байтами.

Тема №6 «Класс HashTable»

Элементы хэш-таблицы это пару значений, в которых одно является ключевым, другое не ключевым. Поместить элемент в хэш-таблицу можно только в том случае, если он имеет уникальный ключ.

Свойство Keys это элемент коллекции, отображающий все ключи, имеющиеся в данной коллекции.

Свойство Values аналогично является набором значений элементов хеш-таблицы.

Метод ContainsKey определяет, присутствует ли в коллекции элемент с указанным ключом. Данный метод используют, например, перед добавлением информации в хэш-таблицу с тем, чтобы избежать исключения, которое возникает в случае попытки добавления элемента с существующем ключом.

Метод ContainsValue определяет, содержится ли заданное значение, среди множества значений коллекции.

Класс Queue (Очередь)

Метод Enqueue добавляет элемент в очередь. Предполагается, что элемент размещается в конце очереди и постепенно продвигается к началу, по мере того, как другие элементы из очереди исключаются.

Метод Dequeue извлекает элемент из очереди. Извлекается всегда первый элемент, при этом все остальные сдвигаются.

Метод Peek показывает, какой элемент является в очереди первым, возвращает его значения без изменения порядка в очереди.

В коллекциях бывают методы для преобразования в другие типы. Например, в коллекции Queue имеется метод ToArray и ToString преобразующие очередь соответственно в массив или строку.

Метод TrimToSize позволяет установить емкость, выше которой в коллекцию ничего не добавляется.