writeln ('Вы действительно хотите’,




’ закончить работу? (Y/N)');

readln (exit_ans);

if exit_ans = 'Y'

then F:=false;

end;

end; { case }

end; { While }

writeln ('Спасибо! До свидания!');

readln;

End.

PROGRAM Menu;

Var

exit_ans: string;

choice, code: integer;

F, Fl: boolean;

{Тело главной вызывающей программы}

Begin

{ clrscr; }

F:= true; { Флаг управления циклом меню }

while (F = true) do

Begin

Repeat

{ clrscr;}

writeln(' Заголовок меню');

writeln('1. Первый вариант действий');

writeln('2. Второй вариант действий ');

writeln('3. Третий вариант действий’);

writeln('4. Четвёртый вариант действий ');

writeln('5. Выход из программы');

writeln('Ваш выбор:');

readln (choice2);

val (choice2, choice, code);

if (code<>0)

then writeln ('Вы ввели не число!’,

’ Повторите ввод! ');

until code=0;

Case choice of

Begin

{ Реализация первого варианта действий }

{ операторы }

...

End;

Begin

{ Реализация второго варианта действий }

{ операторы }

...

End;

Begin

{ Реализация третьего варианта действий }

{ операторы }

...

End;

Begin

{Реализация четвёртого варианта действий }

{ операторы }

...

End;

Begin

Writeln ('Вы действительно хотите’,

’ закончить работу? (Y/N)');

readln (exit_ans);

if exit_ans = 'Y'

then F:=false;

end;

end; { case }

end; { While }

writeln ('Спасибо! До свидания!');

readln;

End.

 

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

Begin

{Реализация первого варианта действий }

Writeln (‘Выбран и работает 1 пункт меню’);

End;

И т.д. по порядку.

...

Case choice of

Begin

{ Реализация первого варианта действий }

Writeln (‘Выбран и работает 1 пункт меню’);

Readln;

...

End;

Begin

{ Реализация второго варианта действий }

Writeln (‘Выбран и работает 2 пункт меню’);

Readln;

...

End;

Begin

{ Реализация третьего варианта действий }

Writeln (‘Выбран и работает 3 пункт меню’);

Readln;

...

End;

Begin

{Реализация четвёртого варианта действий }

Writeln (‘Выбран и работает 4 пункт меню’);

Readln;

...

End;

Begin

Writeln ('Вы действительно хотите’,

’ закончить работу? (Y/N)');

readln (exit_ans);

if exit_ans = 'Y'

then F:=false;

end;

Else writeln ('Incorrect menu point',choice);

end; { case }

end; { While }

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

Case choice of

Begin

{ Ввод одномерного массива }

Writeln (‘Введите фактическое количество’,

‘ элементов массива, <= 30’);

Readln (N);

For i:= 1 to N do

Begin

Writeln (‘ Введите элемент №: ‘,i);

Readln (A [i]);

End;

End;

И так далее, по пунктам.

Расположение меню на экране

Данное описанное меню имеет недостаток, оно расположено в левом верхнем углу экрана.

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

Чтобы опустить текст по вертикали, надо добавлять перед операторами печати Writeln; - вывод пустой строки столько раз, сколько окажется нужным.

Repeat

Writeln;

Writeln;

Writeln;

Writeln;

writeln(' Заголовок меню');

writeln(' 1.Первый вариант действий');

writeln(' 2.Второй вариант действий ');

writeln(' 3.Третий вариант действий’);

writeln(' 4.Четвертый вариант действий’);

writeln(' 5. Выход из программы');

writeln(' Ваш выбор:');

...

Усовершенствованным способом управления расположением меню является следующий:

gotoxy(30,2); textcolor (13);

writeln('Заголовок меню ');

gotoxy(22,5);textcolor(11);

writeln('1. Первый пункт...... ');

gotoxy(22,7);

writeln('2. Второй пункт....');

gotoxy(22,9);

writeln('3. Третий пункт....');

gotoxy(22,11);

writeln('4. Четвёртый пункт......');

gotoxy(22,13);

writeln('5. Выход из программы........');

gotoxy(27,17); textcolor(3);

writeln('Ваш выбор: ');

Здесь используется процедура установки курсора в нужную позицию экрана GOTOXY (номер строки, номер символа в строке), за ней установка цвета шрифта, далее собственно печать текста. Этот способ требует подключения стандартной библиотеки (модуля) управления экраном CRT:

Program Labr1;

Uses CRT;

Далее как обычно.

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

РЕКОМЕНДАЦИЯ. Все возможные усовершенствования вида и размещения меню выполняются только после того, как полностью отлажена вся программа!!!

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2016-04-02 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: