Категории
Самые читаемые книги
ЧитаемОнлайн » Компьютеры и Интернет » Программирование » Программирование. Принципы и практика использования C++ Исправленное издание - Бьёрн Страуструп

Программирование. Принципы и практика использования C++ Исправленное издание - Бьёрн Страуструп

Читать онлайн Программирование. Принципы и практика использования C++ Исправленное издание - Бьёрн Страуструп

Шрифт:

-
+

Интервал:

-
+

Закладка:

Сделать
1 ... 154 155 156 157 158 159 160 161 162 ... 337
Перейти на страницу:
нашли лучшего решения, постройте гистограмму. Помните об осях и метках. Запишите данные в файл и считайте их оттуда.

9. Найдите другой набор данных о росте людей (дюйм равен 2,54 см) и нарисуйте их с помощью программы, созданной при выполнении предыдущего упражнения. Например, найдите в веб распределение роста людей в США или попросите своих друзей измерить свой рост. В идеале вы не должны изменять свою программу, чтобы приспособить ее к новому набору данных. Для этого следует применить масштабирование данных. Считывание меток также позволит минимизировать количество изменений, если вы захотите повторно использовать программу.

10. Какие виды данных неудобно представлять с помощью графиков или гистограмм? Найдите пример и опишите способ представления таких данных (например, в виде коллекции помеченных точек).

11. Найдите среднюю температуру для каждого месяца в нескольких городах (например, Кембридж, Англия, и Кембридж, Массачусетс; в мире масса городов под названием Кембридж) и изобразите их на одном рисунке. Как всегда, помните об осях, метках, цвете и т.д.

Послесловие

Графическое представление данных очень важно. Мы лучше понимаем хорошо нарисованный график, чем совокупность чисел, на основе которых он построен. Когда нужно построить график, большинство людей используют какую-нибудь программу из какой-нибудь библиотеки. Как устроены такие библиотеки и что делать, если их нет под рукой? На каких идеях основаны простые графические инструменты? Теперь вы знаете: это не магия и не нейрохирургия. Мы рассмотрели только двумерные изображения; трехмерные графические изображения также весьма полезны в науке, технике, маркетинге и так далее и даже еще более интересны, чем двумерные. Исследуйте их когда-нибудь! 

Глава 16

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

“Вычисления — это уже не только компьютеры.

Это образ жизни”.

Николас Негропонте (Nicholas Negroponte)

Графический пользовательский интерфейс (graphical user interface — GUI) позволяет пользователю взаимодействовать с программой, щелкая на кнопках, выбирая пункты меню, вводя данные разными способами и отображая текстовые и графические элементы на экране. Именно это мы используем во время работы со своими компьютерами и веб-сайтами. В данной главе излагаются основы написания программ, управляющих приложениями с графическим пользовательским интерфейсом. В частности, мы покажем, как написать программу, взаимодействующую с элементами экрана с помощью функций обратного вызова. Возможности нашего графического пользовательского интерфейса “надстроены” над средствами системы. Низкоуровневые средства и интерфейсы описаны в приложении Д, в котором используются инструменты и методы, рассмотренные в главах 17–18. Здесь мы сосредоточимся лишь на их использовании.

16.1. Альтернативы пользовательского интерфейса

 

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

• Использовать консоль для ввода и вывода. Это хороший выбор для профессиональной работы, когда ввод имеет простую текстовую форму, а данные несложные (например, имена файлов или числа). Если вывод является текстовым, его можно вывести на экран или записать в файл. Для решения такой задачи удобно использовать потоки iostream из стандартной библиотеки С++ (см. главы 10-11). Если же результаты необходимо вывести в графическом виде, можно использовать графическую библиотеку (см. главы 12–15), не изменяя своему стилю программирования.

• Использовать библиотеку графического пользовательского интерфейса. Именно это мы делаем, когда хотим, чтобы взаимодействие пользователя с программой осуществлялось посредством манипулирования объектами на экране (указание, щелчки, перетаскивание и опускание, зависание и т.д.). Часто (но не всегда) этот стиль связан с интенсивным отображением графической информации на экране. Любой пользователь современных компьютеров может привести такие примеры. Любой пользователь, желающий “почувствовать” стиль приложения операционных систем Windows/Mac, должен использовать графический пользовательский интерфейс.

• Использовать интерфейс веб-браузера. В этом случае потребуются язык разметки (markup language), такой как HTML, а также язык сценариев (scripting language). Эта тема выходит за рамки рассмотрения нашей книги, но для приложений с удаленным доступом именно такой выбор часто оказывается самым удачным. В этом случае взаимодействие пользователя с программой также носит текстовый характер (на основе потоков символов). Браузер — это средство графического пользовательского интерфейса, которое переводит текст в графические элементы, транслирует щелчки мышью и другие действия пользователя в текстовые данные и отправляет их обратно программе.

 

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

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

16.2. Кнопка Next

Зачем мы предусмотрели кнопку Next, которая использовалась для управления графическими примерами в главах 12–15? В этих примерах фигуры рисовались после нажатия клавиши. Очевидно, что это простая форма программирования графического пользовательского интерфейса. Фактически она настолько проста, что некоторые люди могут сказать, что это ненастоящий графический пользовательский интерфейс. Однако посмотрим, как это было сделано, поскольку это приведет нас прямо к тому виду программирования, которое все признали как программирование графического пользовательского интерфейса.

Наш код в главах 12–15 был устроен примерно так:

// создаем объекты и/или манипулируем ими,

// изображаем их в объекте win класса Window

win.wait_for_button();

// создаем объекты и/или манипулируем ими,

// изображаем их в объекте win класса Window

win.wait_for_button();

// создаем объекты и/или манипулируем ими,

// изображаем их в объекте win класса Window

win.wait_for_button();

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

1 ... 154 155 156 157 158 159 160 161 162 ... 337
Перейти на страницу:
На этой странице вы можете бесплатно скачать Программирование. Принципы и практика использования C++ Исправленное издание - Бьёрн Страуструп торрент бесплатно.
Комментарии
КОММЕНТАРИИ 👉
Комментарии
Мишель
Мишель 31.01.2025 - 12:20
Книга очень понравилась. Интригующий сюжет 
Аннушка
Аннушка 16.01.2025 - 09:24
Следите за своим здоровьем  книга супер сайт хороший
Татьяна
Татьяна 21.11.2024 - 19:18
Одним словом, Марк Твен!
Без носенко Сергей Михайлович
Без носенко Сергей Михайлович 25.10.2024 - 16:41
Я помню брата моего деда- Без носенко Григория Корнеевича, дядьку Фёдора т тётю Фаню. И много слышал от деда про Загранное, Танцы, Савгу...