Рассмотрим пример кода программы, выводящей в текстовом режиме диалог регистрации пользователя

//-----листинг программы----------------------------------------

#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. Вывод по теме выполненной работы