Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛР 01.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
69.63 Кб
Скачать

Void menu(void)

{

int i; /* Переменная цикла */

win(31,5,53,7); /* Прорисовка бордюра окна по координатам*/

textcolor(TC); /* Установка цвета символов */

for(i=0; i<NumPos; i++) /* Цикл по всем пунктам меню */

{

goto(xMenu[i],6); /* Установка курсора в нужную позицию */

cputs(TextMenu[i]); /* Вывод пункта меню */

}

}

/*******************************************************************/

/* Активизация соответствующего пункта меню */

/*******************************************************************/

void activ(int pos)

{

goto(xMenu[pos],6); /* Установка курсора в нужную позицию */

textcolor(TA); /* Установка цвета символа (светло-красный) */

cputs(TextMenu[pos]); /* Вывод слова в меню белым цветом */

}

/*******************************************************************/

/* Функция первого пункта меню */

/*******************************************************************/

Void func0(void)

{

win(27,15,52,18); /* Прорисовка бордюра окна по координатам */

goto(29,16); /* Установка курсора в нужную позицию */

textcolor(TC); /* Установка цвета текста */

cputs("Выбран пункт меню File"); /* Вывод сообщения */

goto(38,17); /* Установка курсора в нужную позицию */

cputs("OK"); /* Вывод сообщения */

getch(); /* Ожидание нажатия любой клавиши */

clear(27,15,52,18,BLACK); /* Очистка экрана */

}

/*******************************************************************/

/* Очистка экрана */

/*******************************************************************/

void clear(int left, int top, int right, int bottom, int BgColor)

{

window(left, top, right, bottom); /* Установка граний окна */

textbackground(BgColor); /* Установка цвета фона */

clrscr(); /* Очистка окна (заполнение цветом фона) */

window(1,1,80,25); /* Установка граний окна */

textbackground(BG); /* Установка цвета фона */

}

/*******************************************************************/

/* Функция второго пункта меню */

/*******************************************************************/

Void func1(void)

{

char text_str[256];

win(23,15,56,18); /* Прорисовка бордюра окна по координатам */

goto(25,15); /* Установка курсора в нужную позицию */

textcolor(TC); /* Установка цвета текста */

cputs("Редактирование исходных данных");

goto(26,17); /* Установка курсора в нужную позицию */

cputs("Введите C,мкФ (0.15)="); /* Вывод сообщения */

sprintf(text_str,"%2.3f",C); /* Преобразование значения в строку */

C=edit(47,17,8,text_str); /* Вызов функции ввода емкости */

clear(23,15,56,18,BLACK); /* Очистка экрана */

}

/*******************************************************************/

/* Функция третьего пункта меню */

/*******************************************************************/

Void func2(void)

{

char text_str[256];

win(23,15,56,18); /* Прорисовка бордюра окна по координатам */

goto(28,15); /* Установка курсора в нужную позицию */

textcolor(TC); /* Установка цвета текста */

cputs("Ввели следующие данные:");

goto(30,17); /* Установка курсора в нужную позицию */

sprintf(text_str,"%2.3f",C); /* Преобразование значения в строку */

cputs("C,мкФ (0.15)= "); /* Вывод сообщения */

cputs(text_str); /* Вывод сообщения */

getch(); /* Ожидание нажатия любой клавиши */

clear(23,15,56,18,BLACK); /* Очистка экрана */

}

/*******************************************************************/

/* Ввод значения емкости */

/*******************************************************************/

float edit(int x, int y, int kol, char *txt)

{

float f;

char str[30]; /* Строка для ввода данных */

char ch; /* Вводимый символ */

int kom=0; /* Количество введенных '.' */

int x1; /* Положение курсора */

int j; /* Переменная цикла */

_setcursortype(_NORMALCURSOR); /* Включение курсора */

strcpy(str,txt); /* Копируем начальные значения */

/* Устанавливаем позицию курсора */

x1 = x+strlen(str); /* Позиция символа в строке */

do

{

/* Кол-во точек в строке */

if(strchr(str,'.') != 0) kom=1; else kom=0;

goto(x,y); /* Установка курсора в нужную позицию */

/* Очистка области вывода */

for(j=x; j<x+kol;j++) putch(' ');

/* Вывод текущей строки */

goto(x,y); cputs(str); goto(x1,y);

/* Ввод символа с клавиатуры */

if((ch=getch()) == 0) ch = getch();

/* Ввод значения */

if(ch >= '0' && ch <= '9' || ch == '.')

{

if(ch == '.') if(++kom > 1) continue;

/*Превысили ли необходимую длину */

if(strlen(str) < kol)

{

/* Раздвигание строки */

for(j=strlen(str)+1;j >= x1-x;--j)

str[j] = str[j-1];

/* Запись символа */

str[x1-x] = ch; str[strlen(str)] = 0;

x1++; /* Увеличение позиции курсора */

}

}

if(ch == 8 && x1 != x) /* Нажата клавиша забой */

{

/* Удаление символа в строке */

for(j=x1-x-1; j <= strlen(str); j++)

str[j] = str[j+1];

/* Уменьшение позиции курсора */

if(--x1 < x) x1=x;

}

if(ch == 83) /* Нажата клавиша Delete */

{

/* Удаление символа в строке */

for(j=x1-x; j <= strlen(str); j++)

str[j] = str[j+1];

}

if(ch == 75) /* Нажата клавиша <- */

/* Уменьшение позиции курсора */

if(--x1 < x) x1=x;

if(ch == 77) /* Нажата клавиша -> */

if(++x1 > x+strlen(str)) x1 = x+strlen(str);

}

while(ch != 13 && ch != 27);

_setcursortype(_NOCURSOR); /* Выключение курсора */

return(atof(str));

}

5

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]