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