
- •1. Общие положения
- •2. Требования к курсовой работе
- •2.1. Требования к отчету
- •2.2. Требования к программе
- •2.3. Требования к защите курсовой работы
- •3. Методические рекомендации
- •3.1. Структурное программирование
- •3.2. Виды меню
- •3.3. Заставка (текстовая, графическая)
- •4. Разработка информационно-поисковой системы (ипс)
- •5. Типовой пример
- •5.1. Постановка задачи
- •5.2. Описание базы данных
- •5.3. Структура программы
- •5.4. Первоначальные данные
- •5.5. Интерфейс программы
- •5.6. Разработка процедур
- •Пояснения к алгоритму
- •Программа процедуры
- •Пояснения к алгоритму
- •Программа процедуры
- •5.7. Текст программы
- •5.8. Результаты машинного тестирования
- •6. Литература
- •Оглавление
- •1. Общие положения…………………………………………….…2
- •2. Требования к курсовой работе……………………………….…3
3.2. Виды меню
Меню – это перечисление возможностей системы, из которого пользователь выбирает нужную в текущий момент. В программах оформлению меню с точки зрения структуры, дизайна и требований эргономики придается очень большое значение, так как именно через него реализуются функции управляющей программы.
Меню должно быть простым в работе и понятным для самого неподготовленного пользователя. Более сложная система имеет обычно несколько меню. Среди них выделяют главное. Каждый элемент главного меню может генерировать новое (вложенное) меню, являющееся второстепенным по отношению к главному. Уровень вложения меню ограничивается только логической структурой решаемой задачи.
Одним из главных моментов при разработке меню является обработка ситуаций, когда пользователь набирает неправильный идентификатор режима. Наиболее эффективны меню, которые жестко навязывают пользователю ответ, используя для управления только несколько клавиш (например, клавиши , , , , <Esc>, <Enter>) и автоматически игнорируя нажатие всех других.
Рассмотрим три вида меню: простой запрос с вводом идентификатора выбранного режима, горизонтальное и вертикальное меню с указанием нужного режима ярким полем, позволяющие строить древовидные меню.
Простой запрос представляет собой наиболее несложный вид меню, не требующей дополнительной информации. Подсказка дана в самом запросе о выборе режима. Нужная подпрограмма активизируется в зависимости от значения цифры, которую введет пользователь. Меню легко реализуется на предварительно очищенном экране с помощью оператора case. Программа может выглядеть следующим образом:
Program KURSOVIK; uses crt,graph;
{пункты основного меню описаны в разделе описания const:}
const punkt:array[1..6] of string=
('1 - sozdaniye i dopolneniye',
'2 – display',
'3 - plotnost naseleniya',
'4 - sum naseleniye kontinenta',
'5 – correction’, '6 - exit');
m='MAIN MENU'; v='Input number of punct ';
var {глобальные переменные}
procedure zastavka;
begin <тело процедуры> end;
. . . . . . .
begin
zastavka;
repeat
clrscr;
gotoXY (20,7); textcolor (red);
write (m); textcolor (yellow);
for i:=1 to 6 do
begin
gotoXY (15,10+i);
writeln (punkt[i])
end;
gotoXY (15,21); textcolor (white);
write (v); read (num);
case num of
1: create;
2: display
3: plotnst;
4: sumpop;
5: correct
else
begin gotoXY(15,23);
Write(‘Takogo puncta net. Repeat’);
Delay(1000)
end
end
until num=6
end.
Во время выполнения программы при нажатии клавиш, не идентифицирующих имена режимов, выдается сообщение, и меню снова выводится на экран. В данном примере реализация меню полностью занимает глобальный блок.
Вертикальное меню и горизонтальное меню отличаются друг от друга только расположением списка режимов, все остальные принципы построения совпадают. Один из режимов выделен цветом или яркостью фона. Выбор нужного режима осуществляется нажатием клавиш ↑ ↓ для вертикального меню и клавиш → ← для горизонтального меню, активизация режима – клавишей <Enter>.
Для построения вертикального меню воспользуемся следующей процедурой:
procedure menu(var punkt: integer);
var i:integer; key:char;
begin
gotoXY(30,7); write(‘ Menu ‘);
for i:=1 to k do
begin gotoXY(30,10+i); write(name[i]) end;
punkt:=1;
repeat
textbackground(6);
{6 – коричневый цвет фона, цвет символа белый}
gotoXY(30,10+punkt);{выделяем первую строку}
write(name[punkt]);
repeat until keypressed;
key:=readkey;
if key =#0 then key:=readkey;
textbackground(0);
gotoXY(30,10+punkt);
write(name[punkt]); {отмена выделения}
case key of
#72:punkt:=punkt-1;
#80:punkt:=punkt+1;
end;
if punkt>k then punkt:=1
else
if punkt<1 then punkt:=k
until key=#13;
clrscr
end;
Использование данной процедуры рассмотрим на примере:
Program zenit;
Uses crt;
Const k=6;
Name: array[1..k] of string[30]=
('1- …', '2- …', '3- …',…);
var m:integer;
procedure menu(var punkt: integer);
var i:integer; key:char;
begin <тело процедуры>end;
procedure zastavka;
begin <тело процедуры>end;
. . . . . . .
{глобальный блок}
begin
zastavka;
repeat
menu(m);
case m of
1: create;
2: out;
3: srw;
4: sort;
5: spisok
end
until m=6
end.
Процедура носит универсальный характер и может быть использована для большинства аналогичных по структуре задач. Программист обязан лишь следить за правильным указанием параметров, чтобы меню не вышло за пределы экрана.
Рекомендации по использованию меню: прежде чем начать писать программу по реализации поставленной задачи, программист должен решить, к какому из перечисленных ниже типов (с точки зрения меню) она относится.
Простая программа: реализует один или несколько алгоритмов (например, ряд вычислений). Меню в этом случае не требуется, так как нет логически обособленных элементов процесса решения.
Линейно организованная программа: реализует выполнение ряда логически завершенных блоков, различных по природе, но необходимых для реализации общей цели. Основная особенность этого типа программ — отсутствие подменю, так как управление осуществляется только на уровне режимов.
Структурированная программа: реализует всевозможные функциональные блоки различного уровня вложенности. Управление ведется на уровне режимов и подрежимов. Основная особенность – необходимость организации иногда довольно сложного структурированного меню.
Градация программ на три типа весьма условна, но, в общем, позволяет, исходя из постановки, быстро понять логическую структуру задачи.
Каждый из перечисленных типов программ предполагает наличие заставки с информацией, для чего данная программа предназначена и кто ее автор. Кроме того, в программах второго и третьего типа, рассчитанных для массового использования, желательно включать режим, позволяющий выводить на экран или печатающее устройство инструкции по эксплуатации, данной программы.