Программа и ее краткая характеристика.
Данная программа написана на языке Borland C++ и работает под ОС MS-DOS. При ее написании была учтена возможность легкого изменения различных пользовательских параметров программы, таких как цвета, структура меню. Для вызова меню используется клавиша F10, для перемещения подменю - курсорные клавиши (стрелки), для исполнения пункта меню – клавиша Enter. С помощью клавиши F8 производится вызов помощи. Выход из программы – клавиша F9. При исполнении какого-либо листового пункта меню на экран выводится сообщение, в котором указывается, какой именно пункт меню выполняется.
Ниже приведен текст данной программы с комментариями.
Menu1.
#include <graphics.h>
#include <string.h>
#include <stdio.h>
#include <conio.h>
#include <iostream.h>
#define null 0
#define s 122 //длина ячейки меню по Х
#define sh 25 //ширина ячейки меню по Y
#define fon 13 //цвет фона
//-------------Названия пунктов меню -----------------------------
char *versh[23][5]={{" Menu 1 "," Menu 2 "," Menu 3 "," Menu 4 "," Menu 5 "},
{" Menu 1.1>"," Menu 1.2>"," Menu 1.3","",""},
{" Menu 2.1"," Menu 2.2"," Menu 2.3>"," Menu 2.4>",""},
{" Menu 3.1>"," Menu 3.2>"," Menu 3.3"," Menu 3.4"," Menu 3.5>"},
{" Menu 4.1"," Menu 4.2>","","",""},
{" Menu 5.1>"," Menu 5.2>"," Menu 5.3","",""},
{" Menu 1.1.1"," Menu 1.1.2"," Menu 1.1.3","",""},
{" Menu 1.2.1"," Menu 1.2.2"," Menu 1.2.3"," Menu 1.2.4",""},
{" Menu 2.3.1"," Menu 2.3.2","","",""},
{" Menu 2.4.1"," Menu 2.4.2"," Menu 2.4.3"," Menu 2.4.4"," Menu 2.4.5"},
{" Menu 3.1.1"," Menu 3.1.2"," Menu 3.1.3"," Menu 3.1.4",""},
{" Menu 3.2.1"," Menu 3.2.2"," Menu 3.2.3"," Menu 3.2.4"," Menu 3.2.5"},
{" Menu 3.5.1"," Menu 3.5.2","","",""},
{" Menu 4.2.1"," Menu 4.2.2"," Menu 4.2.3"," Menu 4.2.4",""},
{" Menu 5.1.1"," Menu 5.1.2"," Menu 5.1.3","",""},
{" Menu 5.2.1"," Menu 5.2.2"," Menu 5.2.3"," Menu 5.2.4"," Menu 5.2.5"},
};
//----------------- Структура Меню ----------------
struct tree{
int x,y; // координаты пункта на экране
tree *next,*pred,*up,*doun; // Ссылки на соседние пункты меню
char *text; // Название пункта
};
//--------- Функция создания уровня меню ---------------
tree *menu(tree *koren,int n, int xc, int yc,char *st[])
{ tree *stvol,*list;
list=null;list=new tree;list->up=koren;
list->doun=null;
stvol=list;
stvol->x=xc; // создается первый пункт
stvol->y=yc;
stvol->text=st[0];
for(int i=1;i<n;i++)
{ list->next=new tree;list->next->pred=list;// Создаются остальные
list=list->next;list->up=koren;list->doun=null;// пункты уровня
list->x=xc;list->y=yc+sh*i;list->text=st[i]; }
stvol->pred=list;list->next=stvol;
return(stvol);
}
tree *makemenu() // Функция создания дерева меню
{ tree *list;
int xfir=13,yfir=13; //координаты начала меню по X,Y
//---------- Строится первый уровень
list=null;list=menu(list,5,xfir,yfir,versh[0]);
//---------- Строится второй уровень
list->doun=menu(list,3,xfir,yfir+sh+2,versh[1]);
list->next->doun=menu(list->next,4,xfir+s,yfir+sh+2,versh[2]);
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.