КАТЕГОРИИ: Архитектура-(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; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |