Рассмотрим пример кода программы, выводящей в текстовом режиме диалог регистрации пользователя
//-----листинг программы----------------------------------------
#include <stdio.h> //библиотека стандартного ввода вывода
#include <conio.h> //библиотека консольного ввода вывода
//-----главная функция программы--------------------------------
int main(int argc, char* argv[])
{//main
//-----объявление локальых переменных---------------------------
int left=21; //расстояние от левой границы экрана
//до левого верхнего угла окна
int top=5; //расстояние от верхней границы экрана
//до левого верхнего угла окна
int width=40; //ширина окна
int height=17; //высота окна
char str[100]=
"Registration"; //текст заголовка
//-----рисуем шапку окна----------------------------------------
textbackground(BLUE); //определяем цвет заливки фона
gotoxy(left,top); //переводим курсор
for(int i=0;i<width;i++) //заполняем заливкой
cprintf(" "); //область заголовка
gotoxy(left,top+1); //переводим курсор
for(int i=0;i<width;i++) //заполняем заливкой
cprintf(" "); //область заголовка
//-----выводим имя окна-----------------------------------------
gotoxy(left+1,top+1); //переводим курсор
textcolor(WHITE); //определяем цвет текста
textbackground(BLUE); //определяем цвет заливки фона
cprintf("%s",str); //выводим заголовок окна
//-----рисуем верхнюю рамку-------------------------------------
gotoxy(left,top+2); //переводим курсор
textcolor(BLUE); //определяем цвет текста
textbackground(WHITE); //определяем цвет заливки фона
cprintf("%c",201); //выводим левый верхний уголок
for(int i=0;i<width-2;i++)//прорисовываем верхний контур окна
cprintf("%c",205); //двойной линией
cprintf("%c",187); //выводим верхний правый уголок окна
//-----рисуем среднюю часть окна--------------------------------
for(int i=0;i<height-5;i++) //прорисовываем окно по всей высоте
{//for
gotoxy(left,top+3+i); //переводим курсор
cprintf("%c",186); //выводим две вертикальные черты для
//формирования левой вертикальной
//границы окна
for(int i=0;i<width-2;i++)//заполняем область окна
cprintf(" "); //фоновой заливкой
cprintf("%c",186); //выводим две вертикальные черты для
//формирования правой вертикальной
//границы окна
}//end for
//-----рисуем нижнюю рамку--------------------------------------
gotoxy(left,top+height-2);//переводим курсор
textcolor(BLUE); //определяем цвет текста
textbackground(WHITE); //определяем цвет заливки фона
cprintf("%c",200); //выводим левый нижний уголок окна
for(int i=0;i<width-2;i++)//прорисовываем по нижнюю границу окна
cprintf("%c",205); //двойной линией
cprintf("%c",188); //выводим правый нижний уголок окна
gotoxy(left,top+height-1);//переводим курсор
for(int i=0;i<width;i++) //прорисовываем область
cprintf(" "); //уведомления
//-----приглашение для ввода------------------------------------
textcolor(BLACK); //определяем цвет текста
textbackground(WHITE); //определяем цвет заливки фона
gotoxy(left+6,top+5); //переводим курсор
cprintf("Name:"); //выводим текстовую строку
gotoxy(left+6,top+7); //переводим курсор
cprintf("Patronimic:"); //выводим текстовую строку
gotoxy(left+6,top+9); //переводим курсор
cprintf("Surname:"); //выводим текстовую строку
gotoxy(left+6,top+11); //переводим курсор
cprintf("Password:"); //выводим текстовую строку
//-----прорисовка полей для ввода-------------------------------
textcolor(BLACK); //определяем цвет текста
textbackground(BLACK); //определяем цвет заливки фона
gotoxy(left+18,top+5); //переводим курсор
cprintf(" ");//визуализируем область ввода
gotoxy(left+18,top+7); //переводим курсор
cprintf(" ");//визуализируем область ввода
gotoxy(left+18,top+9); //переводим курсор
cprintf(" ");//визуализируем область ввода
gotoxy(left+18,top+11); //переводим курсор
cprintf(" ");//визуализируем область ввода
//-----ждем заполнения полей------------------------------------
gotoxy(left+18,top+5); //переводим курсор в первое
//заполняемое поле
getch(); //задержка завершения работы приложения
return 0;
}//end main
//--------------------------------------------------------------
В начале текста программы подключаются заголовочные файлы библиотек для осуществления доступа к описанным в них функциям форматированного ввода вывода. Затем объявляется главная функция main, в которой и описываются основные действия, выполняемые программой. В самом начале блока операторов функции main объявляются константы, значения которых будут определять параметры выводимого окна. Затем посимвольно “прорисовывается” диалоговое окно. Для “рисования” окна применены подходящие символы. В конце программы курсор переведен в первую область ввода. Далее в текст данной программы можно включить процедуры обработки вводимых данных.
В результате выполнения программы на экране будет отображен диалог регистрации пользователя.
Результат выполнения программы
Для написания программы, реализующей подобные диалоги, может пригодиться таблица, в которой приведено соответствие между символам и их десятичными кодами. Данную таблицу способно генерировать приложение, листинг которого представлен ниже.
//-----листинг программы----------------------------------------
#include <stdio.h>
#include <conio.h>
int main(int argc, char* argv[])
{//main
int i; //код символа
int j=0;//количеств символов в строке
for(i=0;i<256;i++) //цикл вывода 256 символов
{//for
printf("%c=%3d ",i,i);//вывод символа
//и соответствующего ему кода
if(++j>=10) //формирование строк по 10 символов
{//if
j=0; //сбрасываем счетчик символов в строке
putchar('\n'); //переводим курсор на новую строку
}//end if
}//end for
getchar();
}//end main
//--------------------------------------------------------------
Результат выполнения программы
Задание
Используя представленные функции ввода вывода реализовать диалог пользователя для программы, выполненной в пред идущей работе.
Содержание отчета
1. Титульный лист
2. Наименование лабораторной работы
3. Цели и задания к выполнению лабораторной работы
4. Краткие теоретические сведения
5. Листинг разработанной программы с подробными комментариями
6. Вывод по теме выполненной работы