Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

По координатам




Программа с использованием текстового режима

Else

Реализация меню.

Меню, как способ выбора на некотором этапе вычислительного процесса, широко используется в программах.

Простейшее меню можно реализовать следующим образом:

// ------------------------------------------------------

// Простейшее меню - Easy Menu

// ------------------------------------------------------

#include "mylib.cpp"

void function_1() { cout<<"Input"; }

void function_2() { cout<<"Work"; }

void function_3() { cout<<"Print"; }

int main()

{ while(1)

{

clrscr();

int pos;

cout<<" 1.Input data"<<endl;

cout<<" 2.Work data"<<endl;

cout<<" 3.Print data"<<endl;

cout<<" 4.Exit "<<endl;

cout<<" -->"; cin>>pos;

switch (pos)

{

case 1: function_1(); break;

case 2: function_2(); break;

case 3: function_3(); break;

case 4: return 0;

}

getch();

}

}

//------------------------------------------------------

Вначале выводится нумерованный список функций, затем вводится номер выбранной функции, которая исполняется. Процесс повторяется до ввода номера выхода.

Более сложная реализация меню показана ниже. В этом случае выбор позиции выполняется перемещением метки по меню, активизация происходит по нажатию клавиш Enter или пробела.

Метка по меню перемещается клавишами курсора вверх (Up) и вниз (Down).

Интересно, что эти клавиши при нажатии возвращают два кода, вначале 0, затем 80 (Up) или 72 (Down). Поэтому вначале анализируется, клавиша из какой группы нажата, алфавитной или управляющей.

// -----------------------------------------------------

// Простое меню. Управление клавишами курсора.

// ------------------------------------------------------

#include "mylib.cpp"

const ms=4; // {- количество позиций меню -}

char L[ms][32]= // {- наименования позиций ----}

{"1.Input data",

"2.Work data",

"3.Print data",

"4.Exit "};

void CF(int c,int f) { textcolor(c); textbackground(f);}

void OutMenu(int j) // { вывод МЕНЮ на экран ------}

{ int i; // { j-местоположение курсора -}

for(i=0;i<ms;i++)

{ if (i==j-1)CF(0,7);else CF(7,0);

gotoxy(6,i+2); cprintf("%s",L[i]);}

}

int main() // {--------- MAIN ------------}

{

clrscr();

int j=1; int ch; int b1=0; int J;

OutMenu(1);

while (!b1)

{gotoxy(1,1);

ch=getch();

if(ch==0)

{ ch=getch();

switch (ch)

{case 80: if(j<ms)j++;

else j=1;

OutMenu(j); break; //-Up--

case 72: if (j>1) j--;

else j=ms;

OutMenu(j); break; //-Down-

}

}

{ switch (ch)

{case 13: b1=1; break; // {---- Enter -----}

case 32: b1=1; break; // {---- Space -----}

}

}

}

switch (j)

{case 1: gotoxy(10,12); printf("Procedure - 1"); break;

case 2: gotoxy(20,14); printf("Procedure - 2"); break;

case 3: gotoxy(30,16); printf("Procedure - 3"); break;

case 4: gotoxy(40,18); printf("Procedure - 4"); break;

}

getch();

}

// -----------------------------------------------------

 

В качестве примера приводим небольшую программу анимации "Tank", в которой используется работа с цветом:

 

// ------------------------------------------------

// Animation of text. Танковая атака

// ------------------------------------------------

#include "mylib.cpp"

void Tank(int x, int y, int c) // Отрисовка танка

{ textcolor(c);

gotoxy(x,y); cprintf("%s","_(#)==");

gotoxy(x,y+1); cprintf("%s","<oooo>");

}

void BaBax(int x, int y, int c) // Отрисовка снаряда

{ gotoxy(x,y); textcolor(c); cprintf("%s","*");}

void Wzriv(int x, int y, int c) // Взрыв снаряда

{ textcolor(c);

gotoxy(x,y-1); cprintf("%s","\\|/");

gotoxy(x,y); cprintf("%s"," 0");

gotoxy(1,1); delay(300); textcolor(0);

gotoxy(x,y-1); cprintf("%s","\\|/");

gotoxy(x,y); cprintf("%s"," 0");

}

//--------------------------------------------------

void main ()

{ int i,j; int CTank=2; int Tropa=10;

clrscr();

for (i=2;i<74;i++) // Основной цикл движения танка

if (i%20==0) // Через 20 шагов остановка и

выстрел!

{

Tank(i,Tropa,CTank);

gotoxy(1,1);

for (j=i+7;j<74;j++) // Цикл движения снаряда

{ BaBax(j,Tropa,12);

gotoxy(1,1); delay(50);

BaBax(j,Tropa,0);

}

Wzriv(j+2,Tropa,14); // Взрыв снаряда

Tank(i,Tropa,0);

}




Поделиться с друзьями:


Дата добавления: 2014-11-29; Просмотров: 376; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.008 сек.