Организуйте перемещение по пунктам меню с помощью клавиш - Turbo Pascal

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

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

Организуйте перемещение по пунктам меню с помощью клавиш Стрелка вверх и Стрелка вниз. После выбора какого-нибудь пункта меню клавишей Enter выведите в окошко текст этого пункта(GROUP — номер вашей группы, NAME — ваше имя, FIO — вашу фамилию, DATA — системную дату (только год)). При выборе последнего пункта завершите программу

Решение задачи: «Организуйте перемещение по пунктам меню с помощью клавиш»

textual
Листинг программы
uses crt,dos;
const kol=5;{количество пунктов меню}
      {массив названий пунктов меню}
      vybor:array[1..kol] of string=
      ('1-GROUP','2-NAME ','3-FIO','4-DATA','5-EXIT');
 
procedure Menu(var k:byte);{создание и вывод на экран меню}
var kod: char;
    i:byte;
begin
window(1,1,80,25);
textbackground(0);
clrscr;
k:=1;
gotoxy(4,1);
write('Меню');
k:=1; {выведен первый пункт меню}
repeat
for i:=1 to kol do
 begin
  if i=k then {выделенный пункт}
   begin
    textbackground(3);
    textcolor(9);
   end
  else  {остальные}
   begin
    textbackground(0);
    textcolor(15)
   end;
gotoxy(1,i+1);{ставим курсор}
write(vybor[i]);{выводим пункты}
end;
repeat
kod:=readkey;
until Kod in [#13, #72, #80];
case Kod of
#72: begin{стрелка вверх}
     k:=k-1;
     if k=0 then k:=5;{если выше верха, вниз}
     end;
#80: begin {стрелка вниз}
     k:=k+1;
     if k=6 then k:=1;{если ниже низа, вверх}
     end;
end;
until kod=#13;{нажат Enter, выходим из меню в выбранную процедуру}
end;
 
 
{основная программа}
var k:byte;
    h,m,d,w:word;
begin
 repeat
   textbackground(0);
   textcolor(15);
   Menu(k);{выводим меню}
   clrscr;
   case k of{выбираем стрелками действие}
   1: begin
       write('Номер группы 1234');
       readln;
      end;
   2: begin
       write('Имя Юрий');
       readln;
      end;
   3: begin
       write('Фамилия Пупорев');
       readln;
      end;
   4: begin
       getdate(h,m,d,w);
       write('Год ',h);
       readln;
      end;
   5: exit;
  end;
 until k=5;
end.

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

  1. В начале кода подключаются необходимые библиотеки crt и dos.
  2. Затем определяется переменная kol, которая содержит количество пунктов меню.
  3. Далее определяется массив vybor, который содержит названия пунктов меню.
  4. Прописывается процедура Menu, которая создает и выводит на экран меню. Внутри этой процедуры переменная k используется для отслеживания текущего выбранного пункта меню.
  5. В цикле repeat-until происходит взаимодействие пользователя с меню. Если нажата клавиша #72 (стрелка вверх), то значение переменной k уменьшается на 1, а если k равно 0, то устанавливается равным 5 (для перехода к верхнему пункту меню). Если нажата клавиша #80 (стрелка вниз), то значение переменной k увеличивается на 1, а если k равно 6, то устанавливается равным 1 (для перехода к нижнему пункту меню).
  6. После выхода из цикла меню, программа переходит к основной части программы. Здесь определяется цикл repeat-until, внутри которого вызывается процедура Menu с текущим значением переменной k. Затем выполняется очистка экрана и происходит переход к следующему пункту меню в зависимости от значения k.
  7. В основной части программы также определены переменные h, m, d, w, которые используются для получения даты.
  8. В конце программы прописывается условие до тех пор, пока значение переменной k не станет равным 5, после чего программа завершается.

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

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