Создание и вывод меню - Pascal ABC

Узнай цену своей работы

Формулировка задачи:

1.Вывести на экран монитора систему меню, расположенную горизонтально или вертикально. Перед выводом системы меню необходимо вывести заставку. 2. В любой момент времени должен быть выбран только один элемент меню, который должен выделяться с помощью другого цвета, повышенной или пониженной интенсивности свечения, выделения первой буквы в названии или иным способом. 3. Необходимо иметь возможность перемещаться по пунктам горизонтальной системы меню с помощью клавиш <Стрелка влево> и <Стрелка вправо>, а по пунктам вертикальной системы меню с помощью клавиш <Стрелка вверх> и <Стрелка вниз>. 4. Необходимо иметь возможность выбора элемента меню нажатием на клавишу <Enter> или какую-либо другую аналогичную клавишу. 5. Необходимо иметь возможность выхода из системы меню нажатием на клавишу <Esc> или какую-либо другую аналогичную клавишу. Заставка:Выбор учебного предмета; Элементы меню:1)Физика;2)Математика;3)Химия;4)Биология; Тип меню:Вертикальное Информационное сообщение:"Выбран учебный предмет<...>"

Решение задачи: «Создание и вывод меню»

textual
Листинг программы
uses crt;
{массив названий пунктов меню}
const vybor:array[1..5] of string=('1-Физика',
                                   '2-Математика',
                                   '3-Химия',
                                   '4-Биология',
                                   '5-Выход');
procedure Menyu(var k:byte;kol:byte);
var kod: char;
    i:byte;
begin
clrscr;
k:=1;
gotoxy(1,1);
repeat
  for i:=1 to kol do
   begin
     if i=k then
      begin
         textbackground(2);
         textcolor(1);
      end
     else
      begin
         textbackground(7);
         textcolor(0)
      end;
     gotoxy(1,i);
     write(vybor[i]);
   end;
  writeln;
  textbackground(0);
  textcolor(15);
  write('Для выхода можно нажать Esc..');
  repeat
  kod:=readkey;
  until kod in [#32, #72, #80,#27];
  case kod of
  #72: begin  {стрелка вверх}
       k:=k-1;
       if k=0 then k:=kol;{если верхний край, вниз}
       end;
  #80: begin  {стрелка вниз}
       k:=k+1;
       if k>kol then k:=1;{если нижний край, вверх}
       end;
  #27:begin{возможность выхода по Esc}
      k:=5;
      exit;
      end;
  end;
 until kod in [#32,#27];
end;
 
var k:byte;
begin
textbackground(3);
textcolor(14);
clrscr;
gotoXY(30,11);
write('ВЫБОР  УЧЕБНОГО  ПРЕДМЕТА');
gotoXY(25,12);
write('перемещение по меню стрелки вверх и вниз');
gotoXY(29,13);
write('выбор пункта меню клавиша ПРОБЕЛ');
textcolor(15);
gotoXY(35,15);
write('нажмите Enter');
readln;
repeat
   Menyu(k,5);{выводим меню}
   case k of{выбираем стрелками действие}
   1:begin
     clrscr;
     writeln('Выбран учебный предмет Физика');
     write('нажмите Enter');
     readln;
     end;
   2:begin
     clrscr;
     writeln('Выбран учебный предмет Математика');
     write('нажмите Enter');
     readln;
     end;
   3:begin
     clrscr;
     writeln('Выбран учебный предмет Химия');
     write('нажмите Enter');
     readln;
     end;
   4:begin
     clrscr;
     writeln('Выбран учебный предмет Биология');
     write('нажмите Enter');
     readln;
     end;
   end;
 until k=5;
end.

Объяснение кода листинга программы

  1. В начале кода объявлены две константы: vybor (массив названий пунктов меню) и kod (переменная для хранения выбранного ключа).
  2. Далее следует процедура Menyu, которая выводит меню на экран и обрабатывает нажатия клавиш для перемещения по меню.
  3. После этого объявлены две переменные: k (для хранения текущего выбранного пункта меню) и kol (для хранения количества элементов в меню).
  4. Затем следует основной блок кода, который начинается с вывода на экран сообщения ВЫБОР УЧЕБНОГО ПРЕДМЕТА и инструкций по использованию меню.
  5. Далее идет бесконечный цикл, который продолжается до тех пор, пока пользователь не нажмет Enter.
  6. Внутри цикла вызывается процедура Menyu, которая выводит меню на экран.
  7. После этого следует блок обработки выбора пользователя: если выбрана стрелка вверх, то текущий выбранный пункт меню становится предыдущим, если выбрана стрелка вниз, то текущий выбранный пункт меню становится следующим.
  8. Если выбран пробел, то выполняется соответствующая операция в зависимости от текущего выбранного пункта меню.
  9. Если выбрано действие (например, выбор пункта меню), то выполняется соответствующий блок кода.
  10. Если выбран выход по Esc, то выполняется выход из программы.
  11. Если выбран пункт меню Физика, то выводится сообщение Выбран учебный предмет Физика.
  12. Если выбран пункт меню Математика, то выводится сообщение Выбран учебный предмет Математика.
  13. Если выбран пункт меню Химия, то выводится сообщение Выбран учебный предмет Химия.
  14. Если выбран пункт меню Биология, то выводится сообщение Выбран учебный предмет Биология.
  15. Если выбран пункт меню Выход, то выполняется выход из программы.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 4.231 из 5
Похожие ответы