Структурная диаграмма и спецификация программного комплекса. Данные для тестирования программного комплекса, страница 6

gotoxy(80, 25);

readkey;

menu; {вызов главного меню}

textbackground(0);

clrscr;

end.


{Модуль выполняет вспомогательные функции (формирование окна с тенью, вывод заголовка окна, вывод строки состояния, отображение ошибок ввода данных) посредством соответствующих процедур и функций. Также в нём описываются переменные и константы, используемые другими модулями.}

unit agsub;

{интерфейсная часть модуля}

interface

uses ctr, dos;

const

curyear = 2009; {текущий год}

filename = 'compet.dat'; {имя файла базы данных}

type

data = record {данные о соискателе – запись}

fio: string[33]; {фио}

spec: string[33]; {специальность}

byear: integer; {год рождения}

gender: integer; {пол: 1 – мужской,

2 – женский}

edu: integer; {вид образования: 1 – высшее,

2 – среднее специальное,

3 – среднее,

4 – неполное среднее,

5 – начальное}

exp: integer; {стаж работы}

day: integer; {день постановки на учет}

month: integer; {месяц постановки на учет}

year: integer; {год постановки на учет}

end; {data = record}

var

buf: data; {буфер для работы с текущим соискателем – запись типа data}

fildata: file of data; {база данных – файл типа data}

procedure windows(x1, y1, x2, y2, bgc: integer); {процедура формирования окна с тенью}

procedure top (i: word); {процедура вывода заголовка окна}

procedure bottom (i: word); {процедура вывода строки состояния}

function errors(i: word): char; {функция отображения ошибок ввода данных}

{раздел реализации модуля}

implementation

procedure windows;

var

x, y: integer;

begin

textcolor(15); textbackground(0);

for y:=y1+1 to y2+1 do

for x:=x1+1 to x2+1 do

begin

gotoxy(x, y); write(' ');

end; {for x:=x1+1 to x2+1}

textbackground(bgc);

gotoxy(x1, y1); write(' ');

gotoxy(x2, y1); write(' ');

gotoxy(x1, y2); write(' ');

gotoxy(x2, y2); write(' ');

for x:=x1+1 to x2-1 do

begin

gotoxy(x, y1); write(' '); gotoxy(x, y2); write(' ');

end; {for x:=x1+1 to x2-1}

for y:=y1+1 to y2-1 do

begin

gotoxy(x1, y); write(' '); gotoxy(x2, y); write(' ');

for x:=x1+1 to x2-1 do

begin

gotoxy(x, y); write(' ');

end; {for x:=x1+1 to x2-1}

end; {for y:=y1+1 to y2-1}

end; {windows}

procedure top;

var

x: integer;

begin

case i of

1,2,3,4,5,6,7,8,9,10,21,22,31,32,41,42,51,52: windows(12, 8, 65, 19, 1);

11,12,13,14,15,16,17,18,19: windows(12, 8, 65, 19, 2);

end; {case i}

textbackground(12);

for x:=12 to 65 do

begin

gotoxy(x, 9); write(' ');

end; {for x:=12 to 65}

gotoxy(21, 9); textcolor(15);

case i of

1,2,3,4,5,6,7,8,9:

begin

write('ДОБАВЛЕНИЕ НОВОГО СОИКАТЕЛЯ - ШАГ ',i);

end;

10: write('РЕДАКТИРОВАНИЕ ДАННЫХ СОИСКАТЕЛЯ');

11,12,13,14,15,16,17,18,19:

begin

write('РЕДАКТИРОВАНИЕ ДАННЫХ СОИКАТЕЛЯ - ШАГ ',i-10);

end;

21: begin gotoxy(28, 9); write('ОТЧЕТ НОМЕР 1 - ШАГ 1'); end;

22: begin gotoxy(28, 9); write('ОТЧЕТ НОМЕР 1 - ШАГ 2'); end;

31: begin gotoxy(28, 9); write('ОТЧЕТ НОМЕР 2 - ШАГ 1'); end;

32: begin gotoxy(28, 9); write('ОТЧЕТ НОМЕР 2 - ШАГ 2'); end;

41: begin gotoxy(28, 9); write('ОТЧЕТ НОМЕР 3 - ШАГ 1'); end;

42: begin gotoxy(28, 9); write('ОТЧЕТ НОМЕР 3 - ШАГ 2'); end;

51: begin gotoxy(28, 9); write('ОТЧЕТ НОМЕР 5 - ШАГ 1'); end;

52: begin gotoxy(28, 9); write('ОТЧЕТ НОМЕР 5 - ШАГ 2'); end;

end; {case i}

case i of

1,2,3,4,5,6,7,8,9,10,21,22,31,32,41,42,51,52: textbackground(1);

11,12,13,14,15,16,17,18,19: textbackground(2);

end; {case i}

gotoxy(14, 14);

end; {top}

procedure bottom;

var

x: integer;

begin

textbackground(4); textcolor(15);

for x:=1 to 79 do

begin

gotoxy(x, 25); write(' ');

end; {for x:=1 to 79}

gotoxy(2, 25);

case i of

1: write('Выберите режим работы');

2: write('Введите данные согласно шаблону');

3: write('Нажмите любую клавишу для возврата к вводу данных');

4: write('Введите ФИО для поиска соискателя');

5: write('Нажмите <Enter> для записи данных или другую',

' клавишу для отказа от изменений');

6: write('Нажмите <Enter> для редактирования или другую',

' клавишу для возврата в меню');

7: write('Выберите отчет');

10: write('Нажмите <Enter> для повторного ввода или другую',