Файл: «Варианты построения интерфейса программ: особенности и эволюция».pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 18.06.2023

Просмотров: 80

Скачиваний: 2

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

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

Выбор конкретной функции пользователем может осуществляться:

набором на клавиатуре требуемой директивы или ее сокращенного обозначения;

набором на клавиатуре номера необходимой функции;

подведением курсора в строку экрана с нужной пользователю функцией;

нажатием функциональных клавиш, запрограммированных на реализацию данной функции.

При наличии различных вариантов ответов на ввод функций пользователем в последующих шагах производится детализация, или уточнение действий, например, какая информация должна вводиться, в каком виде или на какое устройство желательно осуществить вывод и т.д. Частным случаем диалога типа «меню» является режим ответа «ДА/НЕТ», т.е. пользователю предлагаются два альтернативных варианта ответа: ДА или НЕТ.

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

1.3 Виды меню

На сегодняшний день существует большое разнообразие типов меню и видов интерфейсов. Объем работы не позволяет детально рассмотреть и исследовать все существующие на сегодня типы. По этому ‑ остановимся только на некоторых типах меню.

Исторически первыми применяемыми типами меню были меню в виде списка пунктов с предоставлением выбора пункта пользователю. Этот тип меню широко применялся для ОС без графического интерфейса или в консольных приложениях. Рассмотрим пример такого меню.

1.3.1 Консольное текстовое меню

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


Пример листинга вывода пунктов меню

static int menu()

{

int i=0;

Console.WriteLine("=============== М Е Н Ю ====================");

Console.WriteLine("(1)-Cоздать массив случайных эл.");

Console.WriteLine("(2)-Cоздать массив и ввести эл.");

Console.WriteLine("(3)-Cоздать массив и заполнить из файла");

Console.WriteLine("(4)-Выделить фрагмент массива");

Console.WriteLine("(5)-Сумма всех эл. фрагмента");

Console.WriteLine("(6)-Сумма эл. фрагмента по строкам");

Console.WriteLine("(7)-Сумма эл. фрагмента по столбцам");

Console.WriteLine("(8)-Индексы максимальных эл. фрагмента по строкам");

Console.WriteLine("(9)-Индексы максимальных эл. фрагмента по столбцам");

Console.WriteLine("(0)-Выход");

Console.WriteLine("====================================================");

Console.WriteLine("Ваш выбор:");

return i = Convert.ToInt32(Console.ReadLine());

}

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

Пример структуры ветвления на основе конструкции switch

int punct=menu();

while (punct!=0)

{

switch (punct)

{

case 1:

{

my_ar.setvalue(1);

Console.WriteLine("Исходный массив:");

my_ar.ShowAr();

break;

}

case 2:

{

Console.WriteLine("Введите эл. массива:");

my_ar.setvalue(2);

Console.WriteLine("Исходный массив:");

my_ar.ShowAr();

break;

}

Вид текстового меню в процессе выполнения программы представлен на следующем рисунке

Рисунок 1.4 – Текстовое меню

1.3.2 Псевдографические меню, меню с использованием DOS-графики

Разработчики всегда пытались привлечь внимание к своему продукту используя более яркий и привлекательный интерфейс. Естественно ограничиваясь только текстовыми выводами особого разнообразия добиться сложно. Появились интерфейсы в так называемом псевдографическом формате. При построении интерфейса используются псевдографические символы для формирования рамок, разделение зон и так далее. Ярким и широко известным представителем является файловый менеджер VolcovCommander.

Рисунок 1.5 – Псевдографический интерфейс

Другим подходом, который начал применяться во второй половине прошлого века, стал графический интерфейс на основе DOS-графики (16 или 256 цветов). Параллельно с использование графических элементов (в большей степени прямоугольные объекты) начали использовать и манипулятор мышь.


Рисунок 1.6 – Графический DOS интерфейс

Интерфейс строился на основе графических примитивов графической библиотеки выбранного языка разработки, например рассмотрим фрагмент построения меню представленного на рисунке 1.6 средствами языка С

Фрагмент кода:

int gdriver=DETECT,gmode,errorcode;

initgraph(&gdriver,&gmode,"");

errorcode = graphresult();

if (errorcode != grOk)

{

printf("Error: %s\n", grapherrormsg(errorcode));

getch();

exit(1);

}

//*******МЕНЮ**********************************************************

m1:

setcolor(15);

setfillstyle(1,1);

bar (1,1,640,480);

line(75,1,75,18);

outtextxy(10,10,"<<Back");

outtextxy(80,10,"Start game");

setcolor(15);

outtextxy(220,10,"-= GUESS A MELODY =-");

setcolor(0);

bar (250,462,400,480);

outtextxy(260,465,"About the program");

1.3.3 Оконные интерфейсы

После появления ОС Windows 98 и распространения графического интерфейса на основе окон, среды разработки программного обеспечения стали включать специальные редакторы – проектирование форм и интерфейсов. В разных средах разработки применяются разные подходы, но базовый набор компонентов достаточно похож. На рис. 1.7 представлено приложение в среде IDE Delphi 7 на этапе проектирования форм.

Рисунок 1.7 – проектирование интерфейса в среде Delphi

Пояснения к интерфейсным элементам:

1 – Категории продукта/сырья – ListBox (список пунктов)

2 – Список продуктов в категории – StringGrid (таблица для отображения и вывода)

3 – Реализация меню на основе Label

3.1-3.4 – Область отображения движения по складу –DBStringGrid (таблица для вывода данных из БД)

4 – меню выбора склад сырья/ склад продукции –ComboBox (выпадающий список)

На рисунке 1.8 приведены примеры использования контекстного меню и формы ввода данных.

Рисунок 1.8 – контекстное меню и форма ввода

1.3.4 Рисованное меню

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


Внешний вид главного окна (основного меню) представлен на рисунке 1.9.

Рисунок 1.9 – главное меню игры «Элита»

Меню использует заранее заготовленные графические элементы

Не выделенный пункт меню «Банк»

Выделенный пункт меню «Банк»

Не выделенный пункт меню «Расчет»

Выделенный пункт меню «Расчет»

Интерактивность и изменение внешнего вида в зависимости от реакции и действий пользователя реализуется следующим кодом.

Данная часть программы является главным меню программы. Реализована эта часть на основе компонента Image. На этом компоненте, по событию onClick, можно перейти на другую часть программы.

  • Сделать невидимой главную форму;
  • Вызвать форму в зависимости от действий и выбора пользователя.

Реализуется следующим кодом:

procedure TForm1.Image2Click(Sender: TObject);

begin

Form1.AlphaBlend := true;

Form1.AlphaBlendValue := 0;

Form2.ShowModal;

end;

Подсветка пунктов меню реализована следующим кодом

procedure TForm1.Image2MouseMove(Sender: TObject; Shift: TShiftState; X,

Y: Integer);

begin

Form1.Image1.Picture.LoadFromFile(getcurrentdir+'\Image\Fon\Банк_Сел.png');

end;

procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,

Y: Integer);

begin

Form1.Image7.Picture.LoadFromFile(getcurrentdir+'\Image\Fon\Банк.png');

Form1.Image6.Picture.LoadFromFile(getcurrentdir+'\Image\Fon\Рынок.png');

Form1.Image2.Picture.LoadFromFile(getcurrentdir+'\Image\Fon\Производство.png');

Form1.Image3.Picture.LoadFromFile(getcurrentdir+'\Image\Fon\Выход.png');

Form1.Image5.Picture.LoadFromFile(getcurrentdir+'\Image\Fon\Статистика.png');

end;

procedure TForm1.Image2Click(Sender: TObject);

begin

Form1.AlphaBlend := true;

Form1.AlphaBlendValue := 0;

Form2.ShowModal;

end;

Примеры других рисованных меню представлены в приложении 1.

1.4 Требования, учитываемые при проектировании

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


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

В табл. 1.1 представлены основные принципы, применимые при проектировании любых интерфейсов.

Таблица 1.1 ‑ Принципы проектирования интерфейсов

Принцип

Описание

Учет знаний пользователя

В интерфейсе необходимо использовать термины и понятия, взятые из опыта будущих пользователей системы.

Согласованность

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

Минимум неожиданностей

Поведение системы должна быть прогнозируемой.

Способность к восстановлению

Интерфейс должен иметь средства, позволяющие пользователям восстановить данные после ошибочных действий.

Руководство пользователя

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

Учет разнородности пользователей

В интерфейсе должны быть средства для удобного взаимодействия с пользователями, имеющими разный уровень и возможности.

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

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