Реализовать меню, запускающее три разных программы - Free Pascal

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

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

Помогите пожалуйста! Есть меню : 1. пункт 1 2. пункт 2 3. пункт 3, в каждый пункт нужно впихнуть три разные программы, так чтобы при работе с меню можно было запустить пункт 1 и переходило к моей программе и т.д.

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

textual
Листинг программы
program menu2;
uses Crt;
const
     NORM=$17;
     SEL=$70;      N=4;
 
var
     f1:text;
     menu:array[1..N] of string;
     punkt:integer;
     ch:char;
     x,y:integer;
 
 
   Procedure punkt1;
begin
     ClrScr;
     writeln('Please ENTER for continue');
     readln;
end;
 
Procedure punkt2;
begin
     ClrScr;
     writeln('Please ENTER for continue');
     readln;
end;
Procedure punkt3;
begin
     ClrScr;
     writeln('Please ENTER for continue');
readln;
end;
 
Procedure MenuToScr;
var i:integer;
begin
     ClrScr;
     for i:=1 to N do begin
          GoToXY(x,y+i-1);
          write(menu[i]);
     end;
     TextAttr:=SEL;
     GoToXY(x,y+punkt-1);
     write(menu[punkt]);
     TextAttr:=NORM;
end;
 
begin
     menu[1]:=' Sortirovka Piramida ';
     menu[2]:=' Sortirovka Shella ';
     menu[3]:=' Zadacha 8 ferzei ';
 
     menu[4]:=' Exit ';
     punkt:=1;
     x:=5;
     y:=5; TextAttr:=NORM;
     MenuToScr;
     repeat
          ch:=ReadKey;
          if ch=char(0) then begin
               ch:=ReadKey;
               case ch of
                    chr(80):  {strelka vniz}
                    if punkt<N then begin
                              GoToXY(x,y+punkt-1);
                              write(menu[punkt]);
                              punkt:=punkt+1;
                              TextAttr:=SEl;
                              GoToXY(x,y+punkt-1);
                              write(menu[punkt]);
                              TextAttr:=NORM;
                         end;
                    chr(72):{ strelka vverx}
                         if punkt>1 then begin
                              GoToXY(x,y+punkt-1);
                              write(menu[punkt]);
                              punkt:=punkt-1;
                              TextAttr:=SEl;
                              GoToXY(x,y+punkt-1);
                              write(menu[punkt]);
                              TextAttr:=NORM;
                         end;
                 end;
              end
          else
               if ch=chr(13) then begin { najat <Enter> }
                    case punkt of
                         1:punkt1;
                         2:punkt2;
                         3:punkt3;
                         4:ch:=chr(27);{ Exit }
                    end;
                    MenuToScr;
               end;
     until ch=chr(27); { <Esc> }
end.

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

  1. Программа Sortirovka Piramida.
  2. Программа Sortirovka Shella.
  3. Программа Zadacha 8 ferzei.
  4. Программа Exit.
  5. Переменная NORM отвечает за атрибут текста по умолчанию.
  6. Переменная SEL отвечает за выделение текста при наведении на элемент меню.
  7. Переменная N отвечает за количество элементов в меню.
  8. Переменная f1 содержит текстовый файл с описанием меню.
  9. Переменная menu является массивом строк, содержащих названия пунктов меню.
  10. Переменная punkt отслеживает выбранный пункт меню.
  11. Переменная ch используется для чтения нажатий клавиш.
  12. Переменные x и y используются для позиционирования курсора на экране.
  13. Функция GoToXY используется для перемещения курсора на заданную позицию на экране.
  14. Функция write используется для вывода текста на экран.
  15. Функция readln используется для чтения ввода пользователя.
  16. Функция ReadKey используется для чтения нажатий клавиш.
  17. Ключ char(0) используется для обработки нажатия клавиши стрелка вниз.
  18. Ключ char(72) используется для обработки нажатия клавиши стрелка вверх.
  19. Ключ char(13) используется для обработки нажатия клавиши Enter.
  20. Ключ char(27) используется для обработки нажатия клавиши Escape.

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


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

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

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